saltstack快速入门

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了saltstack快速入门相关的知识,希望对你有一定的参考价值。

saltstack使用python语言写的。

3种运行方式:

local

master/Minion(奴才)

salt  SSH

3大功能:

远程执行

配置管理     就是将安装的配置文件放到指定文件上,然后在所有主机上执行

云管理     支持云上面的操作


saltstack低层使用zeroMQ通信:MQ消息的发布与订阅特征。


安装:

首先在所有的minion和master上面执行:

 yum install http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-8.noarch.rpm

由于我们是测试环境,打算将使用两台,第一台上安装master和minion,第二台上安装minion

所以:

在第一台上面执行:

yum  install salt-master  salt-minion -y

在第二台上执行:

yum install salt-minion -y

将服务加入开机自启动,然后启动master服务,修改minion配置文件中master相关的配置,将ip指定master就好,大概在文件的16行,然后启动就好了;

当然还需要认证:

master:/etc/salt/pki/master

minion:/etc/salt/pki/minion

还可以使用tree命令在master这个目录路径下执行。查看相关的公钥在那个文件,在minion将自己的公钥发送给master的过程中,master也会将自己的公钥发送给minion。

可以使用salt-key  -A:同意所以minion认证

 到此认证完成。

需要注意的是上面认证的文件名是根据server_id,这个文件是在/etc/salt/minion_id这个文件中,默认是主机的ip,不过可以个人修改。修改server_id必须要将/etc/salt/pki这个目录下清空。然后修改server_id,然后重启服务。

这个server_id是很重要的,后面执行的远程命令有点依靠它的。

好了执行几个远程命令:

技术分享图片

命令分解:

"*":表示主机,此处匹配所有minion

"cmd.run"  表示使用cmd模块里面的run方法

屏幕上的结果是返回。


如上只能在salt执行命令,如果我们想要远程安装一个软件,那么就要写配置文件,文件的路径就需要打开,在master端上打开配置文件的file_roots, 下面的路径也是基础路径。

下来试试使用master在minion安装httpd服务。


下来试着安装一个apache,在/srv/salt目录下面编辑文件apache.sls,sls这是安装apache的固定格式;

书写格式如下:apache这个服务已经封装好了,centos使用yum安装,ubuntu使用的时apt安装;

书写第二部分的含义是启动服务,service.running是一个模块里面的方法

enable是开机启动,reload是重载这个服务。

技术分享图片

下面是执行这个文件:#salt  '*'  state.sls apache

  技术分享图片

这样只是安装一个apache状态,如果我们要安装多个状态,就要使用高级状态,定义入口文件:topfile

入口文件默认是/srv/salt/top.sls,可以修改,但是建议不要修改,并且这个入口文件要放到base下面,此时的base是/srv/salt文件下(master配置文件中定义过的):

*:表示在所有主机上执行

[[email protected] salt]# cat top.sls 
base:
  'web:tomcat':             #这里如果写成*,代表的是所有,此处是使用grain进行匹配键值是web:tomcat,然后给匹配到的安装apache 
    - match: grain
    - apache

然后执行salt '*' state.highstate高级匹配

技术分享图片

报错不影响,外面匹配了所有,里面匹配web:apache,所以第一个node报错。

以上是关于saltstack快速入门的主要内容,如果未能解决你的问题,请参考以下文章

快速入门SaltStack

saltstack快速入门

linux运维架构之路-SaltStack快速入门

带你快速入门SaltStack

saltstack 快速入门

saltstack快速入门