saltstack

slatstack

一、优势

1、使用的最小最快的网络负载,使用python开发,提供简单的编程接口

2、通讯层使用的zeroMQ,实现是的它肯快速

 

salt -master  

master: 4505 发送

minion: 4506 返回结果  

 

二、 安装:

使用yum 安装需要epel源

master:

yum install salt-master

 

minion

yum install salt-minion

 

还可以使用源码安装和pip安装

 

 

三、配置文件


[root@vm2 rpm-gpg]# ls /etc/salt/
minion

 

# 指定master 位置
#master: salt  指定maste 的主机名或者ip

master: 10.0.2.4

 

# clusters.
#id:  salt - minion 需要唯一,默认不写是主机名

id: vm3.node.com 

 

minion 配置文件

 master:fqdn ,主机名,ip

      id:minion的主机名,只要是唯一能够表示minion主机即可

 

然后依次启动master 和minion 的slat服务

1
[root@vm1 yum.repos.d]# /etc/init.d/salt-master start

  

1
[root@vm1 yum.repos.d]# /etc/init.d/salt-minion start

  

*master 上修改配置文件不需要重启

 

 

 

master启动后会生成一些文件:

 

1
2
[root@vm1 yum.repos.d]# ls /etc/salt/pki/master/
master.pem  master.pub  minions(已认证的key)  minions_autosign  minions_denied  minions_pre(待认证的key)  minions_rejected(拒绝的key)

  

  [root@vm1 master]# ls minions
  vm3.node.com

  

 

1
2
[root@vm1 yum.repos.d]# ls /etc/salt/pki/master/master.pem
/etc/salt/pki/master/master.pem

  

1
2
[root@vm1 yum.repos.d]# ls /var/cache/salt/master/.root_key
/var/cache/salt/master/.root_key

  

1
2
[root@vm1 yum.repos.d]# ls /var/run/salt-master.pid
/var/run/salt-master.pid

 

minion端:

1
2
[root@vm2 rpm-gpg]# ls /etc/salt/pki/minion/
minion_master.pub(master 认证以后就会有master的公钥)  minion.pem(私钥)  minion.pub(公钥)

 

 

1
2
[root@vm2 rpm-gpg]# ls /etc/salt/
minion (配置文件)  minion.d  minion_id(默认是minion的主机名)  pki

  

  

  

 

 

四、命令

salt  让所有minion执行

salt-key 管理minion 秘钥

salt-cp  复制

salt-syndic 代理使用

 

salt-call :

  minion 端主动同步master配置文件

 

1、salt-key

  -L 列出所有的key

  -a 允许某台minion 

  -A 允许所有的minion 

  -r 拒绝莫一台

  -R 拒绝所有

  -d 删除指定的minion

  -D 删除所有minion

  -y 不用输入 “yes”

1
<br>查看
1
2
3
4
5
6
<br>[root@vm1 yum.repos.d]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
redir-proxy.core.ignum.cz
vm2.node.com

   

1
添加所有请求的minion申请
1
2
3
4
5
6
[root@vm1 yum.repos.d]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
redir-proxy.core.ignum.cz
vm2.node.com
Proceed? [n/Y] y

  

删除所有已经通过的申请

1
2
3
4
5
6
[root@vm1 yum.repos.d]# salt-key -D
The following keys are going to be deleted:
Accepted Keys:
redir-proxy.core.ignum.cz
vm2.node.com
Proceed? [N/y] y

 

测试所有minion 是否通 , (使用 test模块中的ping)

1
2
3
4
5
[root@vm1 yum.repos.d]# salt "*" test.ping
redir-proxy.core.ignum.cz:
    True
vm2.node.com:
    True

  

客户端修改主机名

1.修改主机名

2.修改minion端生成的minion_id  (这个文件是自动读取minion 主机名生成的)

1
2
[root@vm2 rpm-gpg]# cat /etc/salt/minion_id
vm2.node.com

3.master 删除已经注册的已修改的主机名的minion节点key重新认证

 

练习修改主机名:

 

4、 查看minion执行过程

  

  

 

五、执行命令

1
salt "*" cmd.run "cat /etc/issus"

  

 

 

 

 六、return 你日志模块

 

七、执行分组:

 

执行:

1
salt -N sec-web test.ping

  

 

 

 

八,模块:

查看模块

1
salt 'web-site-15-170.dev.xesv5.com' sys.doc

             

         

 

 

 九、执行脚本

1
salt "*" cmd.script salt://etc/script/*

 

脚本文件的编写

/etc/resolv.conf:    #同步到的位置
  file.managed:  #模块名称
    - source: salt://xes/hosts/files/resolv.conf   #源文件的位置 在salt的相对目录下
    - user: root        
    - group: root
    - mode: 644

 

  

复制代码
[root@vm1 salt]# cat resove.sls
/tmp/resove.conf:
  file.managed:
    - source: salt://etc/resolv.conf
    - user: root
    - group: root
    - mode: 600

[root@vm1 salt]# cat top.sls
base:
  '*':
    - resove
复制代码
1
下面的两个命令都可以将上面的/etc/resolve.conf  同步到 minion 主机的tmp目录下<br><br>[root@vm1 salt]# salt '*' state.highstate[root@vm1 salt]# salt '*' state.sls resove  这样指定配置文件执行就不需要top了。

  

 

cron

 添加定时任务脚本rm-roommsg: #传输一个脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<em id="__mceDel">  file.managed:
    - name: /root/scripts/rm_laoshi_roomsg_img.sh
    - source: salt://xes/files/rm_laoshi_roomsg_img.sh
    - mode: 755
    - user: root
    - group: root
 
  cron.present:      #定义一个定时任务,每两天执行一次这个脚本<br>
    - name: /bin/bash rm_laoshi_roommsg_img.sh >/dev/null 2>&1
    - identifier: del laoshi roommsg 2 days ago img file
    - user: root
    - minute: '0'
    - hour: '1'
    - daymonth: "*/2"
    - require:
      - file: rm-roommsg
</em>

 

得到的结果

复制代码
# SALT_CRON_IDENTIFIER:del laoshi roommsg 2 days ago img file
0 1 */2 * * /bin/bash rm_laoshi_roommsg_img.sh >/dev/null 2>&1

 
crontab -l
复制代码

 

1
<em id="__mceDel">identifier: 参数决定了是新增任务还是修改任务,如果不该这个参数后面的值,而只修改name 或者minute 等值,则他会查找 crontab中有没有相同的 indentifier 的任务,如果有则修改,没有则添加<br><br></em>

 

  

 

 

 

 

 

 

 

  

 

posted @   wawahan  阅读(311)  评论(0编辑  收藏  举报
编辑推荐:
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
阅读排行:
· 后端思维之高并发处理方案
· 想让你多爱自己一些的开源计时器
· 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
· 上周热点回顾(3.24-3.30)
点击右上角即可分享
微信分享提示