24.10 配置管理目录
24.11 配置管理远程命令
24.12 配置管理计划任务
24.13 其他命令
24.14 salt-ssh使用
24.10 配置管理目录
用saltstack把目录分发到客户机上执行
步骤
1.创建子和主配置文件
1 | [root@kun01 ~]# cd /srv/salt/ |
clean
加上它之后,源删除文件或目录,目标也会跟着删除,否则不会删除
2.创建对应目录
1 | [root@kun01 salt]# mkdir test/123 |
3.分发目录
1 | [root@kun01 salt]# salt 'kun02' state.highstate |
在kun02上1
2[root@kun02 ~]# ll -ad /tmp/testdir/
drwxr-x--- 2 root root 6 9月 9 11:25 /tmp/testdir/
在123目录下才创建个空目录和文件1
2
3
4
5[root@kun01 salt]# mkdir test/123/11
[root@kun01 salt]# touch test/123/11.txt
[root@kun01 salt]# ls test/123/
11 11.txt
[root@kun01 salt]# salt 'kun02' state.highstate
在kun02上1
2[root@kun02 ~]# ls /tmp/testdir/
11.txt
saltstack
只分发了文件 空目录是不会分发的
在11目录上创建文件再分发1
2[root@kun01 salt]# touch test/123/11/1.txt
[root@kun01 salt]# salt 'kun02' state.highstate
在kun02上1
2[root@kun02 ~]# ls /tmp/testdir/ ##有11目录
11 11.txt
因此 source对应的目录里有空目录的话,客户端上不会创建该目录
24.11 配置管理远程命令
用saltstack把shell脚本分发到客户机上执行
步骤
1.创建子和主配置文件
1 | [root@kun01 salt]# vim top.sls |
2.创建对应脚本
1 | [root@kun01 salt]# vim test/1.sh |
3.分发脚本
1 | [root@kun01 salt]# salt 'kun02' state.highstate |
在kun02上1
2
3[root@kun02 ~]# ls /tmp/
1122
1122.txt
24.12 配置管理计划任务
用saltstack把计划任务分发到客户机上执行
步骤
1.创建子和主配置文件
1 | [root@kun01 salt]# vim top.sls |
*
需要用单引号引起来。当然我们还可以使用file.managed
模块来管理cron,因为系统的cron都是以配置文件的形式存在的。
2.分发任务计划
1 | [root@kun01 salt]# salt 'kun02' state.highstate |
在kun02上1
2
3
4[root@kun02 ~]# crontab -l
# Lines below here are managed by Salt, do not edit
# SALT_CRON_IDENTIFIER:/bin/bash /tmp/111.txt
* 20 * * * /bin/bash /tmp/111.txt
提示# Lines below here are managed by Salt, do not edit 不能改动他们 否则就没法删除或者修改这个cron了
3.修改子配置文件删除任务计划
1 | [root@kun01 salt]# vim cron.sls |
4.删除任务计划
1 | [root@kun01 salt]# salt 'kun02' state.highstate |
在kun02上1
2[root@kun02 ~]# crontab -l
# Lines below here are managed by Salt, do not edit
24.13 其他命令
显示存活的minion
格式:salt-run manage.up
1
2
3[root@kun01 salt]# salt-run manage.up
- kun01
- kun02
拷贝master上的文件到客户端
格式:salt '主机名' cp.get_file salt://原文件 目标文件
1
2
3
4
5[root@kun01 salt]# salt '*' cp.get_file salt://test/1.txt /tmp/123.txt
kun02:
/tmp/123.txt
kun01:
/tmp/123.txt
拷贝目录到客户端
格式:salt '主机名' cp.get_dir salt://原目录 目标目录
1
2
3
4
5
6
7[root@kun01 salt]# salt '*' cp.get_dir salt://test/123 /tmp/
kun01:
- /tmp//123/11.txt
- /tmp//123/11/1.txt
kun02:
- /tmp//123/11.txt
- /tmp//123/11/1.txt
分发并执行脚本
格式:salt '主机名' cmd.script salt://原脚本路径
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17[root@kun01 salt]# salt '*' cmd.script salt://test/1.sh
kun02:
----------
pid:
2493
retcode:
0
stderr:
stdout:
kun01:
----------
pid:
7470
retcode:
0
stderr:
stdout:
24.14 salt-ssh使用
salt-ssh不需要对客户端做认证,客户端也不用安装salt-minion
步骤
1.安装saltstack yum源和salt-ssh包
1 | [root@kun01 ~]# yum install -y http://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm |
2.修改配置文件
1 | [root@kun01 ~]# vim /etc/salt/roster |
添加下面参数1
2
3
4
5
6
7
8kun01:
host: 192.168.80.101
user: root
passwd: 38003800
kun02:
host: 192.168.80.102
user: root
passwd: 38003800
3.使用salt-ssh执行命令
格式:salt-ssh [--key-deploy] '主机名' -r '命令'
1
2
3
4
5
6
7
8
9
10
11
12[root@kun01 ~]# salt-ssh --key-deploy '*' -r 'hostname'
kun02:
----------
retcode:
254
stderr:
stdout:
The host key needs to be accepted, to auto accept run salt-ssh with the -i flag:
The authenticity of host '192.168.80.102 (192.168.80.102)' can't be established.
ECDSA key fingerprint is SHA256:2dycAKJ+5BsHwXALskxaqtyNdNwRCFReWhmwJ2peUu0.
ECDSA key fingerprint is MD5:00:30:54:23:97:64:c3:1d:ee:65:a0:99:0f:f9:28:5c.
Are you sure you want to continue connecting (yes/no)?
这里需要先ssh登录机器确认 --key-deploy
是第一次执行把公钥放到客户机上1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[root@kun01 ~]# salt-ssh --key-deploy '*' -r 'hostname'
kun02:
----------
retcode:
0
stderr:
stdout:
kun02
kun01:
----------
retcode:
0
stderr:
stdout:
kun01
之后可以把配置文件中密码行给删除1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28[root@kun01 ~]# vim /etc/salt/roster
kun01:
host: 192.168.80.101
user: root
kun02:
host: 192.168.80.102
user: root
[root@kun01 ~]# salt-ssh '*' -r 'w'
kun02:
----------
retcode:
0
stderr:
stdout:
15:16:49 up 4:08, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.80.1 11:18 2:55m 0.04s 0.04s -bash
kun01:
----------
retcode:
0
stderr:
stdout:
15:16:49 up 4:08, 1 user, load average: 0.32, 0.16, 0.08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.80.1 11:18 1.00s 0.71s 0.01s /usr/bin/python /usr/bin/salt-ssh * -r w