当前位置: 首页 > 运维技术 > 正文

SaltStack基础使用教程

Mr.linus 发表于2016年5月29日 17:08

介绍
这个教程是我中秋休息的时候所做,为大家学习了解saltstack。
SaltStack名字是由它的故乡美国盐城。
SaltStack是为我们批量管理千万台机器的基础工具,拓展起来也十分方便。SaltStack可以进行动态的编辑,配置管理,远程执行命令等等。
Saltstack包括master和minion,master是控制端,minion是被管理节点。
这里先不废话,简单介绍安装(下面说到的salt就是咱们所说的SaltStack).

这里有两个节点
salt-master:10.0.0.11
salt-minion:10.0.0.21

这里先给两个节点安装个epel源,方便salt网络安装。
[root@salt-master ~] rpm -ivh http://mirrors.ustc.edu.cn/centos/6/extras/x86_64/Packages/epel-release-6-8.noarch.rpm

10.0.0.11(master)节点操作
安装salt-master,暂时不需要配置。
[root@salt-master ~]# hostname
salt-master
[root@salt-master ~]# yum -y install salt salt-master salt-minion
安装配置salt-minion
[root@salt-master ~]# egrep -v '^#|^$' /etc/salt/minion
master: 10.0.0.11
[root@salt-master ~]# /etc/init.d/salt-minion start
Starting salt-minion daemon: [确定]

10.0.0.21节点操作
安装配置salt-minion
[root@salt-minion1 ~]# hostname
salt-minion1
[root@salt-master ~]# yum -y install salt salt-minion
[root@salt-master ~]# egrep -v '^#|^$' /etc/salt/minion
master: 10.0.0.11
[root@salt-minion1 ~]# /etc/init.d/salt-minion start
Starting salt-minion daemon: [确定]

10.0.0.11(master)节点操作
查看salt-master接收到的密钥,分别是“10.0.0.11”和“10.0.021”,master通过这些密钥
salt-key -L 查看当前密钥
-A 接受所有来自客户端密钥
--accept=example.com 接受指定的密钥

[root@salt-master ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
salt-master
salt-minion1
Rejected Keys:

[root@salt-master ~]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
salt-master
salt-minion1
Proceed? [n/Y] y
Key for minion salt-master accepted.
Key for minion salt-minion1 accepted.

验证salt-master是否可以控制各个minion节点(查看本机的IP)
[root@salt-master ~]# salt '*' network.ip_addrs
salt-master:

添加salt-master配置
刚刚只是把salt-minion加入到了salt-master管理,就像老板招聘了一群员工现在老板可以向员工发号命令了,如果老板有一部分多步骤且重复的指令,老板一般就会用到邮件和文档来让员工操作了,
salt-master是通过写sls配置管理minion上重复指令的,服务状态等等。这里需要先配置一下:

创建配置文件目录
[root@salt-master srv]# mkdir -p /srv/salt/base
在master配置里面指定配置文件目录
[root@salt-master ~]# vim /etc/salt/master
file_roots:
base:

salt-master默认会读取上面指定配置目录下的top.sls。(这个是在master配置文件下的state_top: top.sls决定的)
现在写一个

[root@salt-master base]# tree
.
├── system
│   ├── files
│   │   └── hosts
│   └── hosts.sls
└── top.sls

2 directories, 3 files
[root@salt-master base]# cat top.sls
base: #这里指定的环境是base,所以这个top.sls在/srv/salt/base目录下
"": # “”是所有主机的意思,指定单个主机直接写“salt-minion1”

[root@salt-master base]# cat system/hosts.sls
/etc/hosts: #这个是配置ID和文件存放位置,是不可重复的
file.managed: #这里调用了“file.managed”salt的文件管理模块

下面执行一下上面的配置文件状态
[root@salt-master system]# salt 'salt-minion1' state.highstate #salt “执行节点” 执行模块
下面是执行结果
salt-minion1: #执行节点

 ID: /etc/hosts                                             #配置ID
Function: file.managed                                   #模块
  Result: True                                                    #执行结果True为成功
 Comment: File /etc/hosts updated            #文件执行操作【更新】
 Started: 14:15:55.120499                            #执行命令开始时间
Duration: 24.284 ms                                      #执行的时长
 Changes:                                                         #是否产生更改
          ----------
          diff:
              ---  
              <a name="more"></a>  
              @@ -1,2 +1,4 @@
               127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
               ::1         localhost localhost.localdomain localhost6 localhost6.localdomain
              +salt-master 10.0.0.11                      #在这个带有“+”号的行是增加的,"-"号为减少行
              +salt-minion1 10.0.0.21

Summary

Succeeded: 1 (changed=1) #执行成功1个,有一个文件状态发生更改
Failed: 0 #执行失败0个

Total states run: 1 #执行状态个数

全文完
本文标签:
本文标题: SaltStack基础使用教程
本文链接: http://www.90qj.com/m/?post=360

〓 随机文章推荐

共有5084阅 / 0我要评论
  1. 还没有评论呢,快抢沙发~

发表你的评论吧返回顶部

!评论内容需包含中文


请勾选本项再提交评论