[root@master prod]# tree . |-- modules | |-- application | | `-- php | | |-- files | | | |-- install.sh | | | |-- php-8.0.10.tar.gz | | | |-- 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 | | | |-- mysql.server | | | `-- mysqld.service | | `-- 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 | | `-- install.sh | `-- install.sls `-- zabbix |-- apache.sls |-- files | |-- index.php | |-- my.cnf | |-- mysql.conf | `-- vhosts.conf |-- main.sls |-- mysql.sls `-- zabbix |-- install.sh |-- zabbix-5.4.4.tar.gz `-- zabbix.sls
LAMP架构
PHP/srv/salt/prod/modules/application/php/install.sls
php-dep-package: pkg.installed: - pkgs: - epel-release - 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 - readline - readline-devel - libxslt - libxslt-devel - oniguruma-devel - libzip-devel - libsqlite3x-devel /usr/src/php-8.0.10.tar.gz: file.managed: - source: salt://modules/application/php/files/php-8.0.10.tar.gz - user: root - group: root - mode: '0644' salt://modules/application/php/files/install.sh: cmd.script cp: file.managed: - names: - /etc/init.d/php-fpm: - source: salt://modules/application/php/files/php-fpm - user: root - group: root - mode: '0755' - /usr/local/php8/etc/php-fpm.conf: - source: salt://modules/application/php/files/php-fpm.conf - /usr/local/php8/etc/php-fpm.d/www.conf: - source: salt://modules/application/php/files/www.conf - /usr/lib/systemd/system/php-fpm.service: - source: salt://modules/application/php/files/php-fpm.service php-fpm.service: service.running: - enable: true
/srv/salt/prod/modules/application/php/files/install.sh
#!/bin/bash cd /usr/src rm -rf php-8.0.10 tar xf php-8.0.10.tar.gz cd php-8.0.10 ./configure --prefix=/usr/local/php8 --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 installMySQL
/srv/salt/prod/modules/database/mysql/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' salt://modules/database/mysql/files/install.sh: cmd.script trasfer-files: file.managed: - names: - /usr/local/mysql/support-files/mysql.server: - source: salt://modules/database/mysql/files/mysql.server - /usr/lib/systemd/system/mysqld.service: - source: salt://modules/database/mysql/files/mysqld.service
/srv/salt/prod/modules/database/mysql/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
/srv/salt/prod/modules/database/mysql/files/mysqld.service
[Unit] Description=Mysql server daemon After=network.target [Service] Type=forking ExecStart=/usr/local/mysql/support-files/mysql.server start ExecStop=/usr/local/mysql/support-files/mysql.server stop ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.targetapache
/srv/salt/prod/modules/web/apache/install.sls
apache-dep-package: pkg.installed: - pkgs: - openssl - pcre-devel - expat-devel - gcc - gcc-c++ - libtool - make apache: user.present: - shell: /sbin/nologin - createhome: false - system: true apache-download: file.managed: - names: - /usr/src/apr-1.7.0.tar.gz: - source: salt://modules/web/apache/files/apr-1.7.0.tar.gz - /usr/src/apr-util-1.6.1.tar.gz: - source: salt://modules/web/apache/files/apr-util-1.6.1.tar.gz - /usr/src/httpd-2.4.48.tar.gz: - source: salt://modules/web/apache/files/httpd-2.4.48.tar.gz salt://modules/web/apache/files/install.sh: cmd.script /usr/lib/systemd/system/httpd.service: file.managed: - source: salt://modules/web/apache/files/httpd.service - user: root - group: root - mode: '0644' systemctl daemon-reload: cmd.run /usr/local/httpd/conf/httpd.conf: file.managed: - source: salt://modules/web/apache/files/httpd.conf - user: root - group: root - mode: '0644'
/srv/salt/prod/modules/web/apache/file/install.sh
#!/bin/bash cd /usr/src rm -rf apr-1.7.0 apr-util-1.6.1 httpd-2.4.48 tar xf apr-1.7.0.tar.gz tar xf apr-util-1.6.1.tar.gz tar xf httpd-2.4.48.tar.gz cd /usr/src/apr-1.7.0 sed -i '/$RM "$cfgfile"/d' configure ./configure --prefix=/usr/local/apr && make && make install cd ../apr-util-1.6.1 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install cd ../httpd-2.4.48 ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ && make && make install
/srv/salt/prod/modules/zabbix/main.sls
include: - zabbix.apache - zabbix.mysql - modules.application.php.install
/srv/salt/prod/modules/zabbix/apache.sls
"Development Tools": pkg.group_installed include: - modules.web.apache.install /usr/include/httpd: file.symlink: - target: /usr/local/apache/include /usr/local/httpd/htdocs: file.directory: - user: apache - group: apache - mode: '0755' - makedirs: true /usr/local/httpd/conf/extra/vhosts.conf: file.managed: - source: salt://zabbix/files/vhosts.conf - user: root - group: root - mode: '0644' /usr/local/httpd/htdocs/zabbix: file.directory: - user: root - group: root - mode: '0755' - makedirs: true /usr/local/httpd/htdocs/zabbix/index.php: file.managed: - source: salt://zabbix/files/index.php - user: apache - group: apache - mode: '0644' zabbix-apache-service: service.running: - name: httpd - enable: true
/srv/salt/prod/modules/zabbix/mysql.sls
lamp-dep-package: pkg.installed: - pkgs: - ncurses-devel - openssl-devel - openssl - cmake - mariadb-devel - ncurses-compat-libs include: - modules.database.mysql.install provides-mysql-file: file.managed: - user: root - group: root - mode: '0644' - names: - /etc/my.cnf: - source: salt://zabbix/files/my.cnf - /etc/ld.so.conf.d/mysql.conf: - source: salt://zabbix/files/mysql.conf /usr/local/include/mysql: file.symlink: - target: /usr/local/mysql/include mysqld-start: service.running: - name: mysqld - enable: true set-password: cmd.run: - name: /usr/local/mysql/bin/mysql -e "set password=password('123456');"
/srv/salt/prod/modules/zabbix/files/index.php
/srv/salt/prod/modules/zabbix/files/mysql.conf
/usr/local/mysql/lib 1 /srv/salt/prod/modules/zabbix/files/vhosts.confdocumentRoot "/usr/local/httpd/htdocs/zabbix" ServerName zabbix.example.com ProxyRequests Off ProxyPassMatch ^/(.*.php)$ fcgi://0.0.0.0:9000/usr/local/httpd/htdocs/zabbix/$1 Options none AllowOverride none Require all granted
/srv/salt/prod/zabbix/zabbix/zabbix.sls
zabbix-dep-package: pkg.installed: - pkgs: - net-snmp-devel - libevent-devel - make - gcc - gcc-c++ zabbix: user.present: - shell: /sbin/nologin - createhome: false - system: true /usr/src/zabbix-5.4.4.tar.gz: file.managed: - source: salt://zabbix/zabbix/zabbix-5.4.4.tar.gz - user: root - group: root - mode: '0644' salt://zabbix/zabbix/install.sh: cmd.script /var/lib/mysql: file.directory: - user: root - group: root - mode: '0755' - makedirs: true ln -s /tmp/mysql.sock /var/lib/mysql/: cmd.run zabbix_server: cmd.run zabbix_agentd: cmd.run service php-fpm restart: cmd.run cp -r /usr/local/zabbix-5.4.4/ui/* /usr/local/httpd/htdocs/zabbix/: cmd.run /usr/local/httpd/htdocs: file.directory: - user: apache - group: apache - mode: '0755' chmod 777 /usr/local/httpd/htdocs/zabbix/conf: cmd.run systemctl restart httpd: cmd.run
/srv/salt/prod/zabbix/zabbix/install.sh
#!/bin/bash rm -rf zabbix-5.4.4 cd /usr/src/ tar xf zabbix-5.4.4.tar.gz -C /usr/local /usr/local/mysql/bin/mysql -uroot -p123456 -e "create database zabbix character set utf8 collate utf8_bin;" && /usr/local/mysql/bin/mysql -uroot -p123456 -e "create user 'zabbix'@'localhost' identified by 'zabbix';" && /usr/local/mysql/bin/mysql -uroot -p123456 -e "grant all privileges on zabbix.* to 'zabbix'@'localhost';" && /usr/local/mysql/bin/mysql -uroot -p123456 -e "flush privileges;" cd /usr/local/zabbix-5.4.4/database/mysql /usr/local/mysql/bin/mysql -uroot -p123456 zabbix < schema.sql && /usr/local/mysql/bin/mysql -uroot -p123456 zabbix < images.sql && /usr/local/mysql/bin/mysql -uroot -p123456 zabbix < data.sql cd /usr/local/zabbix-5.4.4/ ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 && make install sed -i 's/# DBPassword=/DBPassword=zabbix/' /usr/local/etc/zabbix_server.conf
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)