SaltStack实战之配置管理-LAMP自动化部署
1. 部署思路
将lamp分成3部分:软件包、配置文件、服务;
确认安装的软件包名、配置文件路径、服务名等;
按以上信息编写yaml文件;
2. 编写lamp.sls
[root@salt-master112 salt]# pwd /srv/salt [root@salt-master112 salt]# ls dev init prod test top.sls [root@salt-master112 salt]# cat dev/lamp.sls lamp-pkg-install: pkg.installed: - names: - httpd - php - php-fpm - mysql - mysql-server - php-mysql - php-pdo apache-service: file.managed: - name: /etc/httpd/conf/httpd.conf - source: - salt://dev/files/httpd.conf - user: root - group: root - mode: 644 service.running: - name: httpd - enable: True mysql-service: file.managed: - name: /etc/my.cnf - source: - salt://dev/files/my.cnf - user: root - group: root - mode: 644 service.running: - name: mysqld - enable: True php-fpm-service: service.running: - name: php-fpm - enable: True [root@salt-master112 salt]# cat top.sls base: '*': - init.dns dev: 'node*.test.com': - lamp [root@salt-master112 salt]# ls dev/ files lamp.sls [root@salt-master112 salt]# ls dev/files/ httpd.conf my.cnf [root@salt-master112 salt]#
执行salt '*' state.highstate
查看结果:
[root@salt-master112 salt]# salt-key -L Accepted Keys: master.test.com node1.test.com node2.test.com Denied Keys: Unaccepted Keys: Rejected Keys: [root@salt-master112 salt]# salt '*' state.highstate master.test.com: ---------- ID: /etc/resolv.conf Function: file.managed Result: True Comment: File /etc/resolv.conf is in the correct state Started: 23:20:50.495770 Duration: 23.706 ms Changes: Summary for master.test.com ------------ Succeeded: 1 Failed: 0 ------------ Total states run: 1 Total run time: 23.706 ms node1.test.com: ---------- ID: /etc/resolv.conf Function: file.managed Result: True Comment: File /etc/resolv.conf is in the correct state Started: 15:23:33.990342 Duration: 32.918 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: httpd Result: True Comment: Package httpd is already installed Started: 15:23:34.603609 Duration: 649.913 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-pdo Result: True Comment: Package php-pdo is already installed Started: 15:23:35.253716 Duration: 0.539 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-fpm Result: True Comment: Package php-fpm is already installed Started: 15:23:35.254347 Duration: 0.359 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql-server Result: True Comment: Package mysql-server is already installed Started: 15:23:35.254807 Duration: 0.346 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-mysql Result: True Comment: Package php-mysql is already installed Started: 15:23:35.255233 Duration: 0.367 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql Result: True Comment: Package mysql is already installed Started: 15:23:35.255688 Duration: 0.355 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php Result: True Comment: Package php is already installed Started: 15:23:35.256129 Duration: 0.348 ms Changes: ---------- ID: apache-service Function: file.managed Name: /etc/httpd/conf/httpd.conf Result: False Comment: Unable to manage file: none of the specified sources were found Started: 15:23:35.256569 Duration: 6.275 ms Changes: ---------- ID: apache-service Function: service.running Name: httpd Result: False Comment: Service httpd has been enabled, and is dead Started: 15:23:35.275736 Duration: 230.013 ms Changes: ---------- httpd: True ---------- ID: mysql-service Function: file.managed Name: /etc/my.cnf Result: False Comment: Unable to manage file: none of the specified sources were found Started: 15:23:35.505956 Duration: 6.35 ms Changes: ---------- ID: mysql-service Function: service.running Name: httpd Result: False Comment: Service httpd is already enabled, and is dead Started: 15:23:35.512412 Duration: 134.002 ms Changes: ---------- ID: php-fpm-service Function: service.running Name: php-fpm Result: True Comment: Service php-fpm is already enabled, and is running Started: 15:23:35.646635 Duration: 196.639 ms Changes: ---------- php-fpm: True Summary for node1.test.com ------------ Succeeded: 9 (changed=2) Failed: 4 ------------ Total states run: 13 Total run time: 1.258 s node2.test.com: ---------- ID: /etc/resolv.conf Function: file.managed Result: True Comment: File /etc/resolv.conf is in the correct state Started: 15:23:34.682679 Duration: 103.617 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: httpd Result: True Comment: The following packages were installed/updated: httpd Started: 15:23:38.021487 Duration: 46521.648 ms Changes: ---------- apr: ---------- new: 1.3.9-5.el6_2 old: apr-util: ---------- new: 1.3.9-3.el6_0.1 old: apr-util-ldap: ---------- new: 1.3.9-3.el6_0.1 old: httpd: ---------- new: 2.2.15-59.el6.centos old: httpd-tools: ---------- new: 2.2.15-59.el6.centos old: mailcap: ---------- new: 2.1.31-2.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-pdo Result: True Comment: The following packages were installed/updated: php-pdo Started: 15:24:24.562565 Duration: 8749.133 ms Changes: ---------- php-common: ---------- new: 5.3.3-49.el6 old: php-pdo: ---------- new: 5.3.3-49.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-fpm Result: True Comment: The following packages were installed/updated: php-fpm Started: 15:24:33.336866 Duration: 8477.529 ms Changes: ---------- php-fpm: ---------- new: 5.3.3-49.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql-server Result: True Comment: The following packages were installed/updated: mysql-server Started: 15:24:41.843441 Duration: 28414.553 ms Changes: ---------- mysql: ---------- new: 5.1.73-8.el6_8 old: mysql-libs: ---------- new: 5.1.73-8.el6_8 old: mysql-server: ---------- new: 5.1.73-8.el6_8 old: perl-DBD-MySQL: ---------- new: 4.013-3.el6 old: perl-DBI: ---------- new: 1.609-4.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php-mysql Result: True Comment: The following packages were installed/updated: php-mysql Started: 15:25:10.289755 Duration: 8122.46 ms Changes: ---------- php-mysql: ---------- new: 5.3.3-49.el6 old: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql Result: True Comment: Package mysql is already installed Started: 15:25:18.458202 Duration: 1.519 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: php Result: True Comment: The following packages were installed/updated: php Started: 15:25:18.459996 Duration: 14374.708 ms Changes: ---------- php: ---------- new: 5.3.3-49.el6 old: php-cli: ---------- new: 5.3.3-49.el6 old: ---------- ID: apache-service Function: file.managed Name: /etc/httpd/conf/httpd.conf Result: False Comment: Unable to manage file: none of the specified sources were found Started: 15:25:32.846614 Duration: 38.9 ms Changes: ---------- ID: apache-service Function: service.running Name: httpd Result: False Comment: Service httpd has been enabled, and is dead Started: 15:25:32.916084 Duration: 674.943 ms Changes: ---------- httpd: True ---------- ID: mysql-service Function: file.managed Name: /etc/my.cnf Result: False Comment: Unable to manage file: none of the specified sources were found Started: 15:25:33.591498 Duration: 23.162 ms Changes: ---------- ID: mysql-service Function: service.running Name: httpd Result: False Comment: Service httpd is already enabled, and is dead Started: 15:25:33.614954 Duration: 357.977 ms Changes: ---------- ID: php-fpm-service Function: service.running Name: php-fpm Result: True Comment: Service php-fpm is already enabled, and is running Started: 15:25:33.973402 Duration: 512.95 ms Changes: ---------- php-fpm: True Summary for node2.test.com ------------ Succeeded: 9 (changed=8) Failed: 4 ------------ Total states run: 13 Total run time: 116.373 s ERROR: Minions returned with non-zero exit code [root@salt-master112 salt]#
上面结果中有报错
Unable to manage file: none of the specified sources were found
需要修改路径,把dev
去掉。因为在top.sls
配置文件中,lamp
是定义在dev下面的,因此salt://
应该是从dev目录下为起始的。
- salt://files/httpd.conf