部署LNMP
文件结构
[root@master prod]# tree lnmp/
lnmp/
├── files
│ ├── index.PHP
│ ├── my.cnf
│ └── Nginx.conf
├── install.sls
├── MysqL.sls
└── Nginx.sls
[root@master prod]# tree modules/
modules/
├── app
│ └── PHP
│ ├── files
│ │ ├── install.sh
│ │ ├── oniguruma-devel-6.8.2-2.el8.x86_64.rpm
│ │ ├── PHP-7.4.24.tar.xz
│ │ ├── PHP-fpm
│ │ ├── PHP-fpm.conf
│ │ ├── PHP-fpm.service
│ │ └── www.conf
│ └── install.sls
├── database
│ └── MysqL
│ ├── files
│ │ ├── install.sh
│ │ ├── MysqL-5.7.34-linux-glibc2.12-x86_64.tar.gz
│ │ ├── MysqLd.service
│ │ └── MysqL.server
│ └── install.sls
└── web
├── apache
│ ├── files
│ │ ├── apr-1.7.0.tar.gz
│ │ ├── apr-util-1.6.1.tar.gz
│ │ ├── httpd-2.4.48.tar.gz
│ │ ├── httpd.conf
│ │ ├── httpd.service
│ │ ├── index.PHP
│ │ └── install.sh
│ └── install.sls
└── Nginx
├── files
│ ├── install.sh
│ ├── Nginx-1.21.3.tar.gz
│ └── Nginx.service
└── install.sls
[root@master ~]# vim /etc/salt/master
pillar_roots:
base:
- /srv/pillar/base
prod:
- /srv/pillar/prod
[root@master ~]# mkdir -p /srv/pillar/prod
[root@master ~]# systemctl restart salt-master.service
[root@master prod]# tree
.
├── MysqL.sls
├── Nginx.sls
├── PHP.sls
└── top.sls
Nginx安装
[root@master Nginx]# cat install.sls
usradd.Nginx:
user.present:
- name: Nginx
- shell: /sbin/nologin
- system: true
- createhome: false
'Development Tools':
pkg.group_installed
Nginx-dep-packages:
pkg.installed:
- pkgs:
- pcre-devel
- openssl
- openssl-devel
- gd-devel
- gcc
- gcc-c++
copy_Nginx:
file.managed:
- names:
- /usr/src/Nginx-1.21.3.tar.gz:
- source: salt://modules/web/Nginx/files/Nginx-1.21.3.tar.gz
- /usr/lib/systemd/system/Nginx.service:
- source: salt://modules/web/Nginx/files/Nginx.service
- template: jinja
install-Nginx:
cmd.script:
- name: salt://modules/web/Nginx/files/install.sh {{ pillar['install_dir'] }}
- unless: test -d {{ pillar['install_dir'] }}
MysqL安装
[root@master MysqL]# cat install.sls
MysqL:
user.present:
- shell: /sbin/nologin
- system: true
- createhome: false
ncurses-compat-libs:
pkg.installed
/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
/opt/data:
file.directory:
- user: MysqL
- group: MysqL
- mode: '755'
install-MysqL:
cmd.script:
- name: salt://modules/database/MysqL/files/install.sh
- unless: test -d /usr/local/MysqL
copy-MysqL-soft:
file.managed:
- names:
- /usr/lib/systemd/system/MysqLd.service:
- source: salt://modules/database/MysqL/files/MysqLd.service
- user: root
- group: root
- mode: 644
- {{ pillar['MysqL_dir'] }}/support-files/MysqL.server:
- source: salt://modules/database/MysqL/files/MysqL.server
- user: MysqL
- group: MysqL
- mode: 755
- template: jinja
- require:
- cmd: install-MysqL
PHP安装
[root@master PHP]# cat install.sls
PHP-dep-packages:
pkg.installed:
- pkgs:
- 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
- PHP-MysqLnd
- libsqlite3x-devel
- libzip-devel
/usr/src/oniguruma-devel-6.8.2-2.el8.x86_64.rpm:
file.managed:
- source: salt://modules/app/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: rpm -q oniguruma-devel
/usr/src/PHP-7.4.24.tar.xz:
file.managed:
- source: salt://modules/app/PHP/files/PHP-7.4.24.tar.xz
install-PHP:
cmd.script:
- name: salt://modules/app/PHP/files/install.sh {{ pillar['PHP_dir'] }}
- unless: test -d /usr/local/PHP
copy-PHP-soft:
file.managed:
- names:
- /etc/init.d/PHP-fpm:
- source: salt://modules/app/PHP/files/PHP-fpm
- user: root
- group: root
- mode: '0755'
- {{ pillar['PHP_dir'] }}/etc/PHP-fpm.conf:
- source: salt://modules/app/PHP/files/PHP-fpm.conf
- {{ pillar['PHP_dir'] }}/etc/PHP-fpm.d/www.conf:
- source: salt://modules/app/PHP/files/www.conf
- /usr/lib/systemd/system/PHP-fpm.service:
- source: salt://modules/app/PHP/files/PHP-fpm.service
- require:
- cmd: install-PHP
PHP-fpm.service:
service.running:
- enable: true
- reload: true
- require:
- cmd: install-PHP
- file: copy-PHP-soft
- watch:
- file: copy-PHP-soft
部署lnmp文件配置
[root@master lnmp]# cat Nginx.sls
include:
- modules.web.Nginx.install
copy_Nginx_files:
file.managed:
- names:
- {{ pillar['install_dir'] }}/conf/Nginx.conf:
- source: salt://lnmp/files/Nginx.conf
- user: root
- group: root
- mode: 644
- {{ pillar['install_dir'] }}/html/index.PHP:
- source: salt://lnmp/files/index.PHP
- require:
- cmd: install-Nginx
Nginx:
service.running:
- enable: true
- reload: true
- require:
- cmd: install-Nginx
- watch:
- file: copy_Nginx_files
[root@master lnmp]# cat MysqL.sls
include:
- modules.database.MysqL.install
copy-lnmp-MysqL-file:
file.managed:
- user: root
- group: root
- mode: 0644
- names:
- /etc/my.cnf:
- source: salt://lnmp/files/my.cnf
- require:
- cmd: install-MysqL
MysqLd:
service.running:
- enable: true
- reload: true
- require:
- cmd: install-MysqL
- file: copy-MysqL-soft
- watch:
- file: copy-lnmp-MysqL-file
set-MysqL-passwd:
cmd.run:
- name: {{ pillar['MysqL_dir'] }}/bin/MysqL -e "set password=password('123');"
- require:
- service: MysqLd
- unless: {{ pillar['MysqL_dir'] }}/bin/MysqL -uroot -p123 -e "exit"
[root@master lnmp]# cat install.sls
include:
- lnmp.Nginx
- lnmp.MysqL
- modules.app.PHP.install
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。