本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告

自动化运维工具saltstack的安装、远程执行与配置管理教程

发布:TangLu2015-8-21 17:04分类: 自动化运维 标签: 自动化运维 saltstack

SaltStack的安装配置:

使用epel的yum源可以直接安装saltstack,简单省事。在服务器端安装salt-master,在所有客户端安装salt-minion

QQ图片20150820161916.png

 

安装好服务后会生成一些配置文件和目录,master为服务器端配置文件,minion为客户端配置文件,pki目录是一个认证密钥存放目录,后面会用到

[azureuser@test-node1 salt]$ pwd;ll
/etc/salt
-rw-r-----. 1 root root 29232 Jul  7 20:42 master
-rw-r-----. 1 root root 25854 Jul  7 20:42 minion
drwxr-xr-x. 3 root root  4096 Aug 20 08:43 pki


编辑minion配置文件,在16行位置指定master的具体地址,注意冒号后面有个空格

master: masterhostname


在服务器端和客户端分别启动master和minion服务

service salt-master start
service salt-minion start


由于安全性,服务启动后还需要进行认证操作。需要把minion端的公钥传输给master端,然后master端同意后才算认证完成,在pki目录下会有公钥和私钥文件

[root@test-node1 minion]# pwd;ll
/etc/salt/pki/minion
-r--------. 1 root root 1675 Aug 20 08:59 minion.pem
-rw-r--r--. 1 root root  451 Aug 20 08:59 minion.pub


在master端执行salt-key命令可以看到已经认证的key和未认证key

salt1.png

 

执行salt-key -a keyname 可以同意指定的key认证salt2.png

 

再次执行salt-key命令可以看到认证的key已经出现了

salt3.png

 

salt-key --help还可以看到很多参数,如-A 可以同意所有认证,适用于大量minion需要认证的情况,-d删除某个mino认证等

 

认证后在minion端的pki目录可以看到master的公钥文件也会传输过来

salt44.png

 

salt-stack的远程执行:

saltstack远程执行是一个比较重要的功能,简单点来说就是在master上执行一个命令让所有minion执行所需命令

salt '*' test.ping  #*代表是所有minion主机,也可以单独指定某主机,test.ping是salt内置模块,用于测试minion连接是否正常
salt5.png 


 

salt '*' cmd.run 'df -h'  #cmd.run也是一个内置模块,可以用于执行所有Linux命令
salt6.png 


 

salt-stack配置管理:

配置管理功能可以根据不同业务特性将minion端的配置进行集中化管理,如系统配置文件、软件包管理、分发文件等。

salt-stack用一个文件描述了服务器的状态,在操作该文件之前要打开配置管理功能。编辑/etc/salt/master配置文件,取消以下几行的注释,注意定格和原有空格数不能发生变化

salt7.png

重启salt-master

service salt-master restart


创建/srv/salt目录

mkdir /src/salt


进入/srv/salt目录后需要创建一个top.sls文件,top.sls是配置管理的入口文件,一切都是从这里开始,默认存放在/srv/salt/目录(在/etc/salt/master配置文件里可以指定),文件内容如下:

base:    #必须顶格
  '*':    #两个空格,然后*代表所有minion
    - apache    #4个空格,指定需要执行的sls文件名,不需要有sls后缀


在/srv/salt目录继续创建apache.sls,这里的后缀不能少

[root@test-node1 salt]# vi apache.sls
apache-service:    #定义一个id
  pkg.installed:    #salt的模块和方法
    - names:
      - httpd    #要安装的软件包
      - httpd-devel    #同上        


使用一个salt命令来执行刚才定义的操作

salt '*' state.highstate


到一台minion查看下,发现在执行yum安装命令了

salt8.png

 

当安装结束后在master上会返回以下信息,可以看到安装了哪些东西以及是否成功等

salt9.png

 

由于之前的apache.sls只定义了安装软件包的模块,服务并没有随之启动,我们可以在sls文件里增加一些内容,让其安装后自动启动  

[root@test-node1 ~]# cat /srv/salt/apache.sls
apache-service:
  pkg.installed:
    - names:
      - httpd
      - httpd-devel
  service.running:
    - name: httpd
    - enable: True


执行state.highstate模块来刷新配置

salt '*'  state.highstate


到此salt-stack的快速使用已经介绍完毕,一些高级使用将在后续中讲到!

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《自动化运维工具saltstack的安装、远程执行与配置管理教程
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-238.html  [生成短网址]

已有 0/3070 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~