SaltStack使用入门

SaltStack使用入门:目标匹配、分组,状态管理,远程执行,Grains,Pillar,salt-ssh。
摘要由CSDN通过智能技术生成

一、安装

SaltStack基于Master-Minion架构,采用消息队列ZeroMQ在Master和Minion之间传递消息。Master在4505端口发送消息,所有的Minion都会连接到Master的4505端口接收消息。当Master发送消息时,所有Minion都会收到Master发送的消息,然后Minion根据自身的信息判断是否匹配Master指定的Minion信息,匹配到则作出回应,不匹配则不作回应,Master在4506端口接收Minion的响应消息。
在主控端安装salt-master(CentOS7系统):

# yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
# yum -y install salt-master

salt-master基础配置:

# egrep -v '^$|^#' /etc/salt/master
default_include: master.d/*.conf
interface: 0.0.0.0
timeout: 5
file_roots:        #用来存放状态管理文件
  base:
    - /salt/

启动salt-master:

# systemctl enable salt-master
# systemctl start salt-master

在被控端安装salt-minion(CentOS7系统):

# yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
# yum -y install salt-minion

salt-minion基础配置:

# egrep -v '^$|^#' /etc/salt/minion 
master: 192.168.18.131  #Master地址
id: server01            #自定义的唯一标识一个Minion的ID号

启动salt-minion:

# systemctl enable salt-minion 
# systemctl start salt-minion

二、认证

Master和Minion启动后,都会生成一组密钥对,存放在“/etc/salt/pki”目录下。Minion启动后,会将自己的公钥(保存在minion.pub文件中)连同ID发送给配置文件中“master”配置项指定的Master。Master会将Minion发来的未接收的公钥先保存在“/etc/salt/pki/master/minions_pre/”目录下,以Minion的ID命名的文件中:

# ls /etc/salt/pki/master/minions_pre/
server01  server02

使用salt-key命令来管理这些公钥:

  • salt-key -l "pre":列出所有未接收的Key;
  • salt-key -l "accept":列出所有已经接收的Key;
  • salt-key -L:列出各种类型的所有Key;
  • salt-key -a "server01":接收“server01”发来的Key;
  • salt-key -A:接收所有Minion发来的Key‘’;
  • salt-key -r "server01":拒绝接收“server01”发来的Key;
  • salt-key -R:拒绝所有Minion发来的Key;
  • salt-key -d "server01":删除“server01”的Key;
  • salt-key -D:删除所有类型的所有Key。

Master接收Minion发来的公钥后,会将接收的Minion的公钥保存在“/etc/salt/pki/master/minions”目录下,以Minion的ID命名的文件中:

# ls /etc/salt/pki/master/minions
server01  server02

同时Master会将自己的公钥也发送给所有已经接收公钥的Minion,Minion将接收到的Master的公钥保存在“/etc/salt/pki/minion/minion_master.pub”文件中。
Master接收所有的Key之后,测试Master和Minion之间是否能够正常通信,使用以下命令向所有Minion发送一个消息:

# salt '*' test.ping

命令中的'*'代表匹配所有Minion,单引号''起到转义的作用,也可以将''替换为“\”等。
对所有的Minion执行一条Shell命令:

# salt '*' cmd.run "date"

使用cmd.run可以执行所有Shell命令,对命令中包含特殊字符的,需要转义后才能执行成功。

三、YAML语法

来自百度百科(YAML)中的一段

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值