最新消息: 你生产环境的Composer是怎么样的?
您现在的位置是:群英 > 服务器 > 系统运维 >
SaltStack 工作原理及安装配置步骤
linuxe发表于 2020-10-29 15:25 次浏览
本文介绍了开源软件 SaltStack 自动化运维工具的工作原理和架构,并通过实例详述了如何使用 SaltStack 对云环境中的服务器进行命令的远程执行及配置管理,确保操作的安全性及高效性。

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的快速使用已经介绍完毕,一些高级使用将在后续中讲到!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐