SaltStack的安装配置:
使用epel的yum源可以直接安装saltstack,简单省事。在服务器端安装salt-master,在所有客户端安装salt-minion
安装好服务后会生成一些配置文件和目录,master为服务器端配置文件,minion为客户端配置文件,pki目录是一个认证密钥存放目录,后面会用到
1 | [azureuser@test-node1 salt]$ pwd;ll |
2 | /etc/salt |
3 | -rw-r-----. 1 root root 29232 Jul 7 20:42 master |
4 | -rw-r-----. 1 root root 25854 Jul 7 20:42 minion |
5 | drwxr-xr-x. 3 root root 4096 Aug 20 08:43 pki |
编辑minion配置文件,在16行位置指定master的具体地址,注意冒号后面有个空格
1 | master: masterhostname |
在服务器端和客户端分别启动master和minion服务
1 | service salt-master start |
2 | service salt-minion start |
由于安全性,服务启动后还需要进行认证操作。需要把minion端的公钥传输给master端,然后master端同意后才算认证完成,在pki目录下会有公钥和私钥文件
1 | [root@test-node1 minion]# pwd;ll |
2 | /etc/salt/pki/minion |
3 | -r--------. 1 root root 1675 Aug 20 08:59 minion.pem |
4 | -rw-r--r--. 1 root root 451 Aug 20 08:59 minion.pub |
在master端执行salt-key命令可以看到已经认证的key和未认证key
执行salt-key -a keyname 可以同意指定的key认证
再次执行salt-key命令可以看到认证的key已经出现了
salt-key --help还可以看到很多参数,如-A 可以同意所有认证,适用于大量minion需要认证的情况,-d删除某个mino认证等
认证后在minion端的pki目录可以看到master的公钥文件也会传输过来
salt-stack的远程执行:
saltstack远程执行是一个比较重要的功能,简单点来说就是在master上执行一个命令让所有minion执行所需命令
1 | salt '*' test.ping #*代表是所有minion主机,也可以单独指定某主机,test.ping是salt内置模块,用于测试minion连接是否正常 |
1 | salt '*' cmd.run 'df -h' #cmd.run也是一个内置模块,可以用于执行所有Linux命令 |
salt-stack配置管理:
配置管理功能可以根据不同业务特性将minion端的配置进行集中化管理,如系统配置文件、软件包管理、分发文件等。
salt-stack用一个文件描述了服务器的状态,在操作该文件之前要打开配置管理功能。编辑/etc/salt/master配置文件,取消以下几行的注释,注意定格和原有空格数不能发生变化
重启salt-master
1 | service salt-master restart |
创建/srv/salt目录
1 | mkdir /src/salt |
进入/srv/salt目录后需要创建一个top.sls文件,top.sls是配置管理的入口文件,一切都是从这里开始,默认存放在/srv/salt/目录(在/etc/salt/master配置文件里可以指定),文件内容如下:
1 | base: #必须顶格 |
2 | '*': #两个空格,然后*代表所有minion |
3 | - apache #4个空格,指定需要执行的sls文件名,不需要有sls后缀 |
在/srv/salt目录继续创建apache.sls,这里的后缀不能少
1 | [root@test-node1 salt]# vi apache.sls |
2 | apache-service: #定义一个id |
3 | pkg.installed: #salt的模块和方法 |
4 | - names: |
5 | - httpd #要安装的软件包 |
6 | - httpd-devel #同上 |
使用一个salt命令来执行刚才定义的操作
1 | salt '*' state.highstate |
到一台minion查看下,发现在执行yum安装命令了
当安装结束后在master上会返回以下信息,可以看到安装了哪些东西以及是否成功等
由于之前的apache.sls只定义了安装软件包的模块,服务并没有随之启动,我们可以在sls文件里增加一些内容,让其安装后自动启动
1 | [root@test-node1 ~]# cat /srv/salt/apache.sls |
2 | apache-service: |
3 | pkg.installed: |
4 | - names: |
5 | - httpd |
6 | - httpd-devel |
7 | service.running: |
8 | - name: httpd |
9 | - enable: True |
执行state.highstate模块来刷新配置
1 | salt '*' state.highstate |
到此salt-stack的快速使用已经介绍完毕,一些高级使用将在后续中讲到!
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2018 群英 版权所有 茂名市群英网络有限公司
增值电信经营许可证 :
B1.B2-20140078
粤ICP备09006778号-36
粤公网安备 44090202000006号
粤工商备P091701000595