您的位置:首页 > 其它

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

2017-03-29 14:58 417 查看
上篇文章说的是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 cmdminion:    - 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.remove
salt "minion" pkg.install "mysql"    ##以下类似
服务管理模块
service  如service.start  ,service.stop,   service.status
用户管理模块
user  如user.add
文件管理模块
file模块  如file.chown  增加权限等等
远程命令执行模块
cmd.run  salt 'minion' cmd.run 'ls'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: