标签:tac rom 还需要 定义 install 命令 nio file 测试环境
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配置文件中定义过的):
*:表示在所有主机上执行
[root@localhost salt]# cat top.sls base: 'web:tomcat': #这里如果写成*,代表的是所有,此处是使用grain进行匹配键值是web:tomcat,然后给匹配到的安装apache - match: grain - apache
然后执行salt '*' state.highstate高级匹配
报错不影响,外面匹配了所有,里面匹配web:apache,所以第一个node报错。
标签:tac rom 还需要 定义 install 命令 nio file 测试环境
原文地址:http://blog.51cto.com/11726212/2071408