前边针对Saltstack进行了大量基础知识以及组件 、方法和state方面的介绍,该实战一次了,下边针对实际安装案例lamp安装做一个笔记。该笔记主要是lamp一个环境的安装实例,引入了ID声明和Names声明,以及source的路径问题。知道以后编写类型的功能,需要如何入手来进行规划。
首先先梳理一下流程,我将lamp设置到的是/srv/salt/dev这个开发环境中:
(1)要实现lamp的批量安装,需要yum一个包,那就用到pkg.installed。
(2)然后涉及一个匹配文件的统一,那么需要我们file.managed来实现。
(3)配置完以后我们需要将服务启动病设置系统自启动,需要用到service.running ,那么基本lamp就完成了。其中这三个组件也是上次笔记《Saltstack配置管理学习笔记:配置管理概述》已经对pkg file和service这三个组件的用法的实战练习。好了,动手搞:
1,我们先设置入口文件top.sls
[root@mastertest salt]# cat top.sls base: '*': - init.dns dev: 'miniontest': - lamp
top.sls这里指定了我们lamp.sls的目录位于dev这个环境,操作target为 saltstack-node2.example.com,指定的sls文件为lamp.sls (绝对路径/srv/salt/dev/lamp.sls)
2,开始写lamp.sls这个文件:
[root@mastertest dev]# vi lamp.sls 内容如下: lamp-pkg-install: pkg.installed: - names: - httpd - php - php-cli - php-common - mysql - mysql-server - php-mysql - php-pdo apache-service: file.managed: - name: /etc/httpd/conf/httpd.conf - source: salt://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://files/my.cnf - user: root - group: root - mode: 644 service.running: - name: mysqld - enable: True
我们这个lamp.sls 文件基本有如下内容:
(1)lamp-pkg-install 以及apache-servie mysql-service 都是一个ID声明,模块是禁止开头写的,注意下每个ID都是唯一的。如果同名,那么优先匹配到的ID会先执行。
(2)name声明。之前我们操作init.dns 的时候,我们是将/etc/resolv.conf 放到了第一位,这里我们file.managed的时候,下边通过-name 指定了操作对象。
(3)通过该文件书写,我们还练习了pkg.installed file.managed 以及service.running的用法。 当然里边的一些参数比如哪个用户运行 以及服务名定义,可以自己来指定,这里主要是做测试使用。
(4)对比文件我们放到了/srv/salt/dev/files目录中,里边file.managed的时候我们通过source: salt://file 进行了指定。注意这里已经选择了dev目录,不要写成salt://dev/files。其中httpd.conf my.cnf是我们已经配置好的文件为标准。注意下salt://为当前根目录,以top.sls指定的环境为基准。
3,执行结果
master端:salt ‘miniontest’ state.highstate 执行结果如下
---------- ID: lamp-pkg-install Function: pkg.installed Name: httpd Result: True Comment: Package httpd is already installed. Started: 00:55:22.265846 Duration: 545.714 ms Changes: ---------- ID: lamp-pkg-install Function: pkg.installed Name: mysql Result: True Comment: Package mysql is already installed. Started: 00:55:22.819381 Duration: 0.664 ms Changes: ---------- ID: apache-service Function: file.managed Name: /etc/httpd/conf/httpd.conf Result: True Comment: File /etc/httpd/conf/httpd.conf is in the correct state Started: 00:55:22.821636 Duration: 4.835 ms Changes: ---------- ID: mysql.service Function: file.managed Name: /etc/my.cnf Result: True Comment: File /etc/my.cnf is in the correct state Started: 00:55:22.863781 Duration: 5.222 ms Changes: ---------- ID: mysql.service Function: service.running Name: mysqld Result: True Comment: Service mysqld is already enabled, and is in the desired state Started: 00:55:22.869160 Duration: 53.577 ms Changes: Summary ------------- Succeeded: 13 Failed: 0 ------------- Total states run: 13
可以看到已经成功,限于篇幅,我这里省略了一些ID的显示。下边看下minion端的安装情况:
root@miniontest]# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1009/redis-server tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1047/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1123/master tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2477/mysqld tcp 0 0 :::80 :::* LISTEN 2539/httpd tcp 0 0 :::22 :::* LISTEN 1047/sshd tcp 0 0 ::1:25 :::* LISTEN 1123/master
可以看到服务apache mysql已经启动,下边我们看下服务随系统启动情况:
[root@miniontest]# chkconfig --list httpd httpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 [root@miniontest]# chkconfig --list mysqld mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
好了,安装lamp已经成功。
4,测试执行:
访问查看apache:
访问测试php环境:
查看mysql:
搞定,收工。 笔记到此结束。
转载请注明:云速博客www.ysidc.top» [原创]SaltStack配置管理学习笔记-LAMP自动化部署简单案例
https://www.ysidc.top 云速博客,数据库,云速,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top