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:04minion端查看: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.items3> 几种管理:安装包管理、服务管理、用户管理、文件管理、远程命令管理安装包管理
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'
相关文章推荐
- CURL常用命令记录--用于简单测试接口
- 你必须学会的几个常用网络测试命令
- 必须掌握的几个常用网络测试命令!
- UNIX 常用命令简单说明
- LINUX常用网络测试命令
- SVN 常用命令集合及简单用法
- 如何用ping 命令简单测试网速
- 简单而常用的shell 命令
- 你必须学会的几个常用网络测试命令
- 实验——LINUX常用网络测试命令
- Iptables 之简单命令(初学者常用)
- 网络测试常用命令
- 必须学会的几个常用网络测试命令
- 附录UNIX 常用命令简单说明
- SVN 常用命令集合及简单用法
- 必须学会的几个常用网络测试命令
- 实验——Windows常用网络测试命令
- 一些常用的php简单命令代码集锦
- Linux常用测试命令
- 有关环境变量,网络常用预留端口,简单DOS命令