salt的链接、简单测试和常用命令

上篇文章说的是salt的安装和配置,在做好之后那么就需要来测试一下是不是可以正常运行。

一、master给minion签发证书

master端和minion端是需要通过签证通信的,即minion端在启动后会链接master端,并请求master为其签发证书,待签证后完成后,代表了master端信任了minion,并且他们之间的通信是加密的。

可以使用salt-key来检查查看管理minion秘钥。

查看master和minion之间的状态:salt-key -L

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

这种状态是可以看到master和minion已经可以通信了,并且已经获得了minion的公钥,但是master还没有接受minion的秘钥,属于不能接受的key.下面就需要master给minion进行签证。

首先需要查看master端的minion秘钥和minion端的秘钥是否一致,秘钥不一致不能签证。

master端查看:salt-key -f minion

[root@master ~]# salt-key -f minion
Unaccepted Keys:
minion:  8b:54:bb:a5:e0:c7:ba:30:64:d4:88:8e:29:b0:0c:04

minion端查看:salt-call --local key.finger

[root@minion ~]# salt-call --local key.finger
local:
    8b:54:bb:a5:e0:c7:ba:30:64:d4:88:8e:29:b0:0c:04

上述的秘钥是一致的,那么master接受minion的秘钥,可以给minion签证。

在master端使用:salt-key -a minion

[root@master ~]# salt-key -a minion
The following keys are going to be accepted:
Unaccepted Keys:
minion
Proceed? [n/Y] Y
Key for minion minion accepted.
[root@master ~]# salt-key -L
Accepted Keys:
minion
Denied Keys:
Unaccepted Keys:
Rejected Keys:

签证完成。

上述过程是一个签发证书的过程,注意防火墙的阻拦。如果想要自动签发证书,那么需要在master的配置文件(/etc/salt/master)里,找到下面的自动接受,将#去掉。

#auto_accept: true

二、签证成功,那么可以进行简单的测试:

[root@master ~]# salt '*' test.ping
minion:
    True
[root@master ~]# salt 'minion' test.ping
minion:
    True
这是一个简单测试ping的命令,返回true说明可以ping通。


三、常用命令参数

salt的语法格式由五部分组成: salt+参数+'对象或者目标字符串'+模块函数+执行函数的参数

如:salt --summary '*' cmd.run "uptime"

常用参数

(1)-v或者--verbose  显示命令的运行详细过程    

(2)--summary        显示一条salt命令的概要

(3)--out         运行输出的格式结果

如:salt --out=yaml           以yaml格式输出结果  salt --out=yaml "minion" cmd.run_all "echo my salt" 

[root@master ~]# salt --out=yaml "minion" cmd.run_all "echo my salt"
minion:
  pid: 2086
  retcode: 0
  stderr: ''
  stdout: my salt

(4)salt --help 查看salt的命令帮助

(5)-E  可以匹配正则表达式  如 salt -E "正则" .......

(6)-L  列表匹配,指定多个主机   salt -L "minion-one,minion-two,minion-three"  test.ping

(7)-N 匹配主机组    salt -N "qunzu" test.ping 

(8)查看模块包含哪些函数  salt "minion" sys.list_functions cmd   #加cmd只匹配出带有cmd的模块

[root@master ~]# salt "minion" sys.list_functions cmd
minion:
    - cmd.exec_code
    - cmd.exec_code_all
    - cmd.has_exec
    - cmd.retcode
    - cmd.run
    - cmd.run_all
    - cmd.run_chroot
    - cmd.run_stderr
    - cmd.run_stdout
    - cmd.script
    - cmd.script_retcode
    - cmd.shell
    - cmd.shells
    - cmd.tty
    - cmd.which
    - cmd.which_bin

(9)查看某个函数的用法  salt "minion" sys.doc test.echo

(10)使用某个函数  salt "minion" tes.echo "hello world"   #输出hello world

其他命令:

1> 从master拷贝文件到minion端

   cp.get_file  拷贝文件  如: salt '*' cp.get_file salt://test/1.txt /tmp/2.txt   ###拷贝/srv/salt/test目录下的1.txt到minion端下的/tmp下并修改命名2.txt

   cp.get_dir   拷贝目录       ##salt://相当于/srv/salt/

2> salt-run manage.up  查看有哪些minion存活

3>cmd.script    执行master上的shell脚本

(11)以下转载

1> grains文件 是 机器属性的静态数据,例如:服务器的系统版本、内存大小等.属一种key-value类型的数据

列出所有Grains数据

salt 'minion-one' grains.items
[root@master ~]# salt "minion" grains.items
minion:
    ----------
    SSDs:
    biosreleasedate:
        07/02/2015
    biosversion:
        6.00
    cpu_flags:
        - fpu
        - vme
        - de

查询某个grains数据,如查看os的版本

salt 'minion-one' grains.item os

-G参数对Grains数据进行匹配
如:匹配系统是centos的主机,而其他们版本的服务器不进行匹配

salt -G 'os:CentOS' test.ping 

自定义Grains,grains.setval自定义设置数据

salt 'node' grains.setval cpu_num 8  #这样就给minion端设置cpu的数量是8,这个数据记录在minion端的/etc/salt/grains下,删除这个文件重启minion可恢复。

复杂一些

salt 'node' grains.setval cpu_info '['intel','xenon','8']'   #设置使用json语法


2> pillars和grains类似,可以一种key-values类型的存储数据

 列出全部信息

salt 'node' pillars.items


3> 几种管理:安装包管理、服务管理、用户管理、文件管理、远程命令管理

安装包管理

pkg模块,如pkg.install,pkg.removesalt "minion" pkg.install "mysql"    ##以下类似

服务管理模块

service  如service.start  ,service.stop,   service.status

用户管理模块

user  如user.add
文件管理模块file模块  如file.chown  增加权限等等
远程命令执行模块cmd.run  salt 'minion' cmd.run 'ls'
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值