saltstack部署lnmp状态文件

├── files

│ ├── install.sh

│ ├── nginx-1.20.1.tar.gz

│ └── nginx.service.j2

└── install.sls

1 directory, 4 files

[root@master nginx]# cat install.sls

nginc-dev-package:

pkg.installed:

  • pkgs:

  • pcre-devel

  • openssl

  • openssl-devel

  • gd-devel

  • gcc

  • gcc-c++

  • make

  • wget

nginx:

user.present:

  • shell: /sbin/nologin

  • createhome: false

  • system: true

/usr/src/nginx-1.20.1.tar.gz:

file.managed:

  • source: salt://modules/web/nginx/files/nginx-1.20.1.tar.gz

nginx-installsh:

cmd.script:

  • name: salt://modules/web/nginx/files/install.sh

  • unless: test -d {{ pillar[‘nginx_install_dir’] }}/nginx/

/usr/lib/systemd/system/nginx.service:

file.managed:

  • source: salt://modules/web/nginx/files/nginx.service.j2

  • user: root

  • group: root

  • mode: ‘0644’

  • template: jinja

nginx编译脚本

[root@master nginx]# cat files/install.sh

#!/bin/bash

cd /usr/src

rm -rf nginx-1.20.1

tar xf nginx-1.20.1.tar.gz

cd nginx-1.20.1

./configure \

–prefix=“{{ pillar[‘nginx_install_dir’] }}”/nginx \

–user=nginx \

–group=nginx \

–with-debug \

–with-http_ssl_module \

–with-http_realip_module \

–with-http_image_filter_module \

–with-http_gunzip_module \

–with-http_gzip_static_module \

–with-http_stub_status_module \

–http-log-path=/var/log/nginx/access.log \

–error-log-path=/var/log/nginx/error.log && make && make install

启动文件nginx.service

[root@master nginx]# cat files/nginx.service.j2

[Unit]

Description=nginx server daemon

After=network.target

[Service]

Type=forking

ExecStart={{ pillar[‘nginx_install_dir’] }}/nginx/sbin/nginx

ExecStop={{ pillar[‘nginx_install_dir’] }}/nginx/sbin/nginx -s stop

ExecReload=/bin/kill -HUP $MAINPID

[Install]

WantedBy=multi-user.target

mysql


//项目结构

[root@master mysql]# tree

.

├── files

│ ├── install.sh

│ ├── mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

│ ├── mysqld.service.j2

│ └── mysql.server

└── install.sls

1 directory, 5 files

[root@master mysql]# cat install.sls

ncurses-compat-libs:

pkg.installed

create-mysql-user:

user.present:

  • name: mysql

  • createhome: false

  • system: true

  • shell: /sbin/nologin

create-datadir:

file.directory:

  • name: /opt/data

  • user: mysql

  • group: mysql

  • mode: ‘0755’

  • makedirs: true

/usr/src/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz:

file.managed:

  • source: salt://modules/database/mysql/files/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

  • user: root

  • group: root

  • mode: ‘0644’

mysql-installsh:

cmd.script:

  • name: salt://modules/database/mysql/files/install.sh

  • unless: test -d {{ pillar[‘mysql_installdir’] }}/mysql

{{ pillar[‘mysql_installdir’] }}/mysql/support-files/mysql.server:

file.managed:

  • source: salt://modules/database/mysql/files/mysql.server

/usr/lib/systemd/system/mysqld.service:

file.managed:

  • source: salt://modules/database/mysql/files/mysqld.service.j2

  • template: jinja

mysql解压

[root@master mysql]# cat files/install.sh

cd /usr/src

tar xf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /usr/local

ln -s mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql

chown -R mysql.mysql /usr/local/mysql*

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/

echo “export PATH=/usr/local/mysql/bin:$PATH” > /etc/profile.d/mysqld.sh

启动文件mysql.service

[root@master mysql]# cat files/mysqld.service.j2

[Unit]

Description=Mysql server daemon

After=network.target

[Service]

Type=forking

ExecStart={{ pillar[‘mysql_installdir’] }}/mysql/support-files/mysql.server start

ExecStop={{ pillar[‘mysql_installdir’] }}/mysql/support-files/mysql.server stop

ExecReload=/bin/kill -HUP $MAINPID

[Install]

WantedBy=multi-user.target

php


//项目结构

[root@master php]# tree

.

├── files

│ ├── install.sh

│ ├── oniguruma-devel-6.8.2-2.el8.x86_64.rpm

│ ├── php-7.4.24.tar.gz

│ ├── php-fpm

│ ├── php-fpm.conf

│ ├── php-fpm.service

│ ├── php.ini

│ └── www.conf

└── install.sls

1 directory, 9 files

[root@master php]# cat install.sls

/usr/src/oniguruma-devel-6.8.2-2.el8.x86_64.rpm:

file.managed:

  • source: salt://modules/application/php/files/oniguruma-devel-6.8.2-2.el8.x86_64.rpm

  • user: root

  • group: root

  • mode: ‘0644’

cmd.run:

  • name: yum -y install /usr/src/oniguruma-devel-6.8.2-2.el8.x86_64.rpm

  • unless: yum -y provides oniguruma-devel

dnf -y install epel-release:

cmd.run

dep-pkckages-install:

pkg.installed:

  • pkgs:

  • sqlite-devel

  • libzip-devel

  • libxml2

  • libxml2-devel

  • openssl

  • openssl-devel

  • bzip2

  • bzip2-devel

  • libcurl

  • libcurl-devel

  • libicu-devel

  • libjpeg-turbo

  • libjpeg-turbo-devel

  • libpng

  • libpng-devel

  • openldap-devel

  • pcre-devel

  • freetype

  • freetype-devel

  • gmp

  • gmp-devel

  • libmcrypt

  • libmcrypt-devel

  • readline

  • readline-devel

  • libxslt

  • libxslt-devel

  • mhash

  • mhash-devel

/usr/src/php-7.4.24.tar.gz:

file.managed:

  • source: salt://modules/application/php/files/php-7.4.24.tar.gz

  • user: root

  • group: root

  • mode: ‘0644’

php-installsh:

cmd.script:

  • name: salt://modules/application/php/files/install.sh

  • unless: test -d {{ pillar[‘php_installdir’] }}/php7

copy-php:

file.managed:

  • names:

  • /etc/init.d/php-fpm:

  • source: salt://modules/application/php/files/php-fpm

  • user: root

  • group: root

  • mode: ‘0755’

  • /usr/local/php7/etc/php-fpm.conf:

  • source: salt://modules/application/php/files/php-fpm.conf

  • /usr/local/php7/etc/php-fpm.d/www.conf:

  • source: salt://modules/application/php/files/www.conf

  • /etc/php.ini:

  • source: salt://modules/application/php/files/php.ini

/usr/lib/systemd/system/php-fpm.service:

file.managed:

  • source: salt://modules/application/php/files/php-fpm.service.j2

  • template: jinja

php-fpm.service:

service.running:

  • enable: true

  • reload: true

  • require:

  • cmd: php-installsh

  • file: copy-php

php编译

[root@master php]# cat files/install.sh

#!/bin/bash

cd /usr/src

rm -rf php-7.4.24

tar xf php-7.4.24.tar.gz -C /usr/local

cd /usr/local/php-7.4.24

./configure --prefix=/usr/local/php7 \

–with-config-file-path=/etc \

–enable-fpm \

–disable-debug \

–disable-rpath \

–enable-shared \

–enable-soap \

–with-openssl \

–enable-bcmath \

–with-iconv \

–with-bz2 \

–enable-calendar \

–with-curl \

–enable-exif \

–enable-ftp \

–enable-gd \

–with-jpeg \

–with-zlib-dir \

–with-freetype \

–with-gettext \

–enable-mbstring \

–enable-pdo \

–with-mysqli=mysqlnd \

–with-pdo-mysql=mysqlnd \

–with-readline \

–enable-shmop \

–enable-simplexml \

–enable-sockets \

–with-zip \

–enable-mysqlnd-compression-support \

–with-pear \

–enable-pcntl \

–enable-posix && make && make install

启动文件php-fpm.service

[root@master php]# cat files/php-fpm.service.j2

[Unit]

Description=php-fpm server daemon

After=network.target

[Service]

Type=forking

ExecStart={{ pillar[‘php_start’] }}/php-fpm start

ExecStop={{ pillar[‘php_start’] }}/php-fpm stop

ExecReload=/bin/kill -HUP $MAINPID

[Install]

WantedBy=multi-user.target

lnmp


最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
-user.target

lnmp


最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-SS5rEJOo-1715571379683)]

[外链图片转存中…(img-JhwM8So2-1715571379684)]

[外链图片转存中…(img-Qo8TjTzF-1715571379684)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值