如何使用Salt 的各种状态值

如何使用Salt 的各种状态值,第1张

salt的安装:

master端:

#yum install salt-master -y salt主控端安装

# vim /etc/salt/mastersalt主配置文件修改

interface: 服务监听IP

auto_accept: True(可选,key通过‘salt-key -a keyname’命令手动进行认证)

注意:keyname 就是客户端中设置的id标识(可以查看salt-minion端的配置)

#salt-master -l debug debug模式,查看salt都进行哪些 *** 作

#/etc/init.d/salt-master restart 重启salt服务

#/etc/init.d/salt-master status 查看状态

#netstat -antlp | grep 4505确保消息发布端口正常

#netstat -antlp | grep 4506确保客户端与服务端通信端口正常

#/etc/init.d/salt-master restart

# /etc/init.d/salt-master status

# salt-key 查看认证相关信息

# salt-key -a wy-pe2 手动添加认证key(给wy-pe2主机添加认证)

#iptables -F 关闭防火墙以免影响认证

#salt-key -a wy-pe2

#salt-key -L 查看认证信息(会有显示已经认证和未认证的相关信息)

[root@wy-pe1 ~]# salt-key -L

Accepted Keys:

wy-pe2已经允许的key(表示wy-pe2已经允许认证了)

Unaccepted Keys:

Rejected Keys:

#cd /etc/salt/pki/master/minions在master中的minions目录中生成认证的key

#setenforce 0暂时关闭selinux

#/etc/init.d/salt-master restart

执行远程命令(使用salt内建的模块):

#salt ‘wy-pe2′ test.ping测试master和minion进行通信(在master端进行ping响应测试)

[root@wy-pe1 ~]# salt ‘wy-pe2′ test.ping如果能ping通,则为True

wy-pe2:

True

#lsof -i:4505 查看到minion端都和4505保持建立

[root@wy-pe1 ~]# lsof -i:4505

COMMANDPID USER FD TYPE DEVICE SIZE/OFF NODE NAME

salt-mast 8568 root 12u IPv4 63217 0t0 TCP *:4505 (LISTEN)

salt-mast 8568 root 14u IPv4 65101 0t0 TCP wy-pe1:4505->wy-pe2:51237 (ESTABLISHED)(表示建立连接了)

注意:如果认证那块没做好,就会影响相关的链接

客户端安装:

minion端安装配置:

#yum install salt-minion -y

#vim /etc/salt/minion修改minion客户端主配置

master: 服务端主机名

id: 客户端主机名(其实也就是认证key的名字)用来和master进行认证

#/etc/init.d/salt-minion restart 重启服务

#cd /etc/salt/pki/minion/在这个目录底下会生成两个认证文件(minion.pub minion.pem)

salt-minion端不能正常启动的解决步骤:(一般就是iptables和selinux的影响)

#/etc/init.d/salt-minion restart

# tail -f /var/log/messages

#/etc/init.d/salt-minion restart

#iptables -F

#tail -f /var/log/salt/minion

#salt-minion -l debug

#setenforce 0

#/etc/init.d/salt-minion restart

安装完毕,在master和minion认证完毕之后会在minion主机上的/etc/salt/pki/minion/目录底下生成新的minion_master.pub

问题1:档master和minion进行认证的时候,master没有接收到public key(minion)

(这个在后来的链接过程中会造成master和minion不能链接)

问题2:辅机salt-minion总是在查看服务状态的时候显示失败(but pid exits!)

# salt-minion -l debug 查看salt客户端详细信息

salt的简单使用:

salt可以直接让minion执行模块命令,也可以直接执行shell命令

1.salt -C ‘wy-pe1 and wy-pe2 or wy-peN’ test.ping-C表示多参数(表示在测试多台主机的存活状态)

# salt ‘*’ disk.usage查看磁盘使用情况(使用内建模块查看所有minion端的磁盘使用情况)

#salt ‘*’ cmd.run ‘df -h’ 使用cmd.run直接调用远程shell命令(功能同上)

# salt ‘*’ cmd.run “cat /root/lall”查看客户端主机的/root/lall文件

2.nodegroup对minion进行分组:

nodegroups:

group1: ‘L@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com’

group2: ‘G@os :Debian and foo.domain.com’

group3:’wy-pe2′

进行分组测试:

# salt -N group3 test.ping

wy-pe2:

True

3.grains对minion基本信息的管理:

salt ‘wy-pe2′ grins.ls查看grains分类

salt ‘wy-pe2′ grins.items 查看minnon基本信息(硬件参数)

4.pillar对敏感信息的管理,只有匹配到的节点才能获取和使用

默认pillar数据定义文件存储路径:/srv/pillar

状态管理:

1.salt基于minion进行状态的管理(state)

类似于pupet的pp文件功能,salt的state文件扩展文件名为.sls,采用的是和puppet一样的设计思路。即以master

端的文件状态来确定minion端的一些状态信息设置。(安装的软件包,服务的运行状态以及需要同步的文件配置)

注意:salt默认的根目录在/srv/salt中,如果没有需要进行建立。

top.sls:这个文件类似于puppet的site.pp文件,作为“最高同步” *** 作的入口文件,执行“最高同步” *** 作时,将从此sls文件中获取状态对minion进行同步

示例:(注意,salt文件完全采用ymal格式,对代码的缩进有着严格的要求)

#vim /srv/salt/servers_package.sls

httpd:项目名

pkg: 类型

– installed动作(表示安装httpd包)

service:

– running

– enable:True

vim-enhanced:

pkg:

– installed

tomcat环境

openjdk-7-jdk:

pkg:

– installed

tomcat7:

pkg:

– installed

– require:

– pkg: openjdk-7-jdk

# salt ‘wy-pe2′ state.sls servers_package 按照sls文件中的配置对wy-pe2进行服务配置

管理配置文件

httpd:

pkg:

– installed

file.managed:文件管理(文件同步 *** 作)

– name: /etc/httpd/conf/httpd.conf

– source: salt://httpd/httpd.conf

# salt ‘wy-pe2′ state.highstate应用修改(给minion永久添加状态)

3.使用salt schedule对minion进行实时更新,让minion自觉的保持某个状态

4.实时管理

有时候我们需要临时的查看某个机器上的某个文件,或者执行某个命令

cmd.run方式:(salt ‘$targeting’ cmd.run ‘$cmd’)用来远程执行shell命令

# salt ‘wy-pe2′ cmd.run ‘ifconfig eth0′ 查看某台主机的网络接口

cmd.script方式:可以向远程主机执行脚本

#salt ‘*’ cmd.script salt://useradd.sh 向minion主机上执行useradd.sh脚本(salt://是salt的默认发布目录,即/srv/salt)

pkg.install方式:制定主机安装软件

#salt ‘wy-pe2′ pkg.install vsftpd 指定主机安装软件

# salt ‘*’ network.interfaces查看远程主机接口

# salt-cp ‘wy-pe2′ salt-cmd /home/xxb2复制文件到指定的系统上(当前目录的salt-cmd)

salt是主命令,一般用来执行命令模块。

salt-cp用来复制文件到制定的系统上去

salt-key用来和minion之间进行身份验证

salt-master为服务端的主守护进程用于控制minion

salt-run为前端命令执行

module方式:(模块查看方式#salt ‘*’ sys.doc)

#salt ‘*’ disk.usage查看磁盘使用情况

# salt ‘*’ grains.item os/osrelease/oscodename

# salt ‘*’ user(group).info xxb2

# salt ‘*’ ip.get_interface eth0

#salt ‘*’ lvm.vgdisplay

salt相关管理命令:

salt-run manage.up 查看存活的minion

salt-run manage.down查看死掉的minion

salt-run manage.down removekeys=True查看down掉的minion,并将其删除

salt-run manage.status查看minion的相关状态

salt-run manage.versions查看slat的所有master和minion的版本信息

1. Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc2. salt命令,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个Jodid,根据jobid获取命令执行结果。

3. master接收到命令后,将要执行的命令发送给客户端minion。

4. minion从消息总线上接收到要处理的命令,交给minion._handle_aes处理

5. minion._handle_aes发起一个本地线程调用cmdmod执行ls命令。线程执行完ls后,调用minion._return_pub方法,将执行结果通过消息总线返回给master

6. master接收到客户端返回的结果,调用master._handle_aes方法,将结果写的文件中

7.

salt.client.LocalClient.cmd_cli通过轮询获取Job执行结果,将结果输出到终端。

1、首先辑配置文件,添加下面的这一行 。

2、然后编辑/etc/passwd文件,添加下面的信息 。

3、然后创建家目录/home/zouni,然后再将/etc/skel当中的文件都拷贝过去。

4、然后我们再去设置用户的密码,我们可以使用openssl 的这个工具来进行生成,其中-1 表示的是使用MD5的方式,-salt 表示进行加盐。

5、最后复制上面生成的密码,将其复制到我们的/etc/shadow文件当中就完成了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7186076.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存