文件结构
[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
修改master配置文件
[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] 举报,一经查实,本站将立刻删除。