您的位置:首页 > 其它

saltstack (2) 常用模块

2016-12-20 19:33 344 查看
1、crontab模块[root@redis01-jp ~]# salt 'redis02-jp' cron.raw_cron root 查看指定用户的计划任务redis02-jp:[root@redis01-jp ~]# salt 'redis02-jp' cron.set_job root '55' '14' '*' '*' '*' '/bin/echo "xxx" > /tmp/test.log' 创建任务redis02-jp: new[root@redis01-jp ~]# salt 'redis02-jp' cron.raw_cron root 再次查看任务redis02-jp: # Lines below here are managed by Salt, do not edit 55 14 * * * /bin/echo "xxx" > /tmp/test.log[root@redis01-jp ~]# salt 'redis02-jp' cron.rm_job root '/bin/echo "xxx" > /tmp/test.log' 删除任务redis02-jp: removed[root@redis01-jp ~]# salt 'redis02-jp' cron.raw_cron root 再次查看任务redis02-jp: # Lines below here are managed by Salt, do not edit[root@redis01-jp ~]#
2、远程运行命令cmd.run模块和名称解析dnsutil模块
[root@redis01-jp ~]# salt 'redis02-jp' cmd.run 'cat /etc/hosts'redis02-jp: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost6 localhost6.localdomain6 172.31.24.139 redis01-jp 172.31.24.140 redis02-jp 172.31.24.141 redis03-jp[root@redis01-jp ~]# salt 'redis02-jp' dnsutil.hosts_append /etc/hosts 1.1.1.1 www.example_salt.com 添加本地解析条目redis02-jp: The following line was added to /etc/hosts: 1.1.1.1 www.example_salt.com[root@redis01-jp ~]# salt 'redis02-jp' cmd.run 'cat /etc/hosts' 查看/etc/hostsredis02-jp: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost6 localhost6.localdomain6 172.31.24.139 redis01-jp 172.31.24.140 redis02-jp 172.31.24.141 redis03-jp 1.1.1.1 www.example_salt.com[root@redis01-jp ~]# salt 'redis02-jp' dnsutil.hosts_remove /etc/hosts www.example_salt.com 删除本地解析条目redis02-jp: None[root@redis01-jp ~]# salt 'redis02-jp' cmd.run 'cat /etc/hosts' 再次查看/etc/hostsredis02-jp: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost6 localhost6.localdomain6 172.31.24.139 redis01-jp 172.31.24.140 redis02-jp 172.31.24.141 redis03-jp[root@redis01-jp ~]#

3、网络模块network
[root@redis01-jp ~]# salt 'redis02-jp' network.dig www.qq.com 名称解析redis02-jp: ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.51.amzn1 <<>> www.qq.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43004 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.qq.com. IN A ;; ANSWER SECTION: www.qq.com. 60 IN CNAME qq.com.edgesuite.net. qq.com.edgesuite.net. 60 IN CNAME a1574.b.akamai.net. a1574.b.akamai.net. 11 IN A 96.17.151.16 a1574.b.akamai.net. 11 IN A 96.17.151.18 ;; Query time: 5 msec ;; SERVER: 172.31.0.2#53(172.31.0.2) ;; WHEN: Mon Dec 19 07:24:33 2016 ;; MSG SIZE rcvd: 123[root@redis01-jp ~]# salt 'redis02-jp' network.ping www.baidu.com 网络连通性测试redis02-jp: PING www.a.shifen.com (103.235.46.39) 56(84) bytes of data. 64 bytes from 103.235.46.39: icmp_seq=1 ttl=50 time=84.0 ms 64 bytes from 103.235.46.39: icmp_seq=2 ttl=50 time=84.1 ms 64 bytes from 103.235.46.39: icmp_seq=3 ttl=50 time=84.1 ms 64 bytes from 103.235.46.39: icmp_seq=4 ttl=50 time=84.9 ms --- www.a.shifen.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 84.068/84.321/84.935/0.459 ms[root@redis01-jp ~]# salt 'redis02-jp' network.traceroute www.qq.com 网络路径跟踪测试......[root@redis01-jp ~]# salt 'redis02-jp' network.hwaddr eth0 查看MAC地址redis02-jp: 06:cf:b1:b8:61:bf[root@redis01-jp ~]# salt 'redis02-jp' network.in_subnet 172.31.0.0/16 测试接口所在子网redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' network.interfaces 查看指定机器的网络接口[root@redis01-jp ~]# salt 'redis02-jp' network.ip_addrs 查看指定机器的IP地址redis02-jp: - 172.31.24.141[root@redis01-jp ~]# salt 'redis02-jp' network.subnets 查看指定机器的子网网段redis02-jp: - 172.31.16.0/20[root@redis01-jp ~]#

4、复制模块cp
[root@redis01-jp ~]# salt 'redis02-jp' cp.get_file salt://files/file1 /tmp/file1 文件复制redis02-jp: /tmp/file1[root@redis01-jp ~]# salt 'redis02-jp' cp.get_file salt://files/file2 /tmp/file2redis02-jp: /tmp/file2[root@redis01-jp ~]# ls /srv/salt/files/file1 file2 file3[root@redis01-jp ~]#[root@redis01-jp ~]# salt 'redis02-jp' cp.get_dir salt://files /tmp/ #将主控端file_roots指定位置下的目录复制到被控主机/tmp/目录下redis02-jp: - /tmp//files/file1 - /tmp//files/file2 - /tmp//files/file3[root@redis01-jp ~]#[root@redis01-jp ~]# salt '*' cp.get_url http://www.slashdot.ort /tmp/index.html #下载URL内容到被控主机指定位置(/tmp/index.html)[root@redis01-jp ~]# salt '*' cp.get_file salt://vimrc /etc/vimrc gzip=5 #传输时压缩文件Valid values are integers from 1 to 9, where 1 is the lightest compression and 9 the heaviest. In other words, 1 uses the least CPU on the master (and minion), while 9 uses the most.[root@redis01-jp ~]# salt '*' cp.get_file salt://vimrc /etc/vim/vimrc makedirs=True #如果没有目标目录,则创建

5、文件操作模块file
参考:http://docs.saltstack.cn/ref/modules/all/salt.modules.file.html#module-salt.modules.file[root@redis01-jp ~]# salt 'redis02-jp' file.get_sum /etc/fstab md5 # 查看文件md5值 redis02-jp: 44c60b006413b0fc1b98c061d4b339ff[root@redis01-jp ~]# salt 'redis02-jp' file.check_hash /etc/fstab md5:'44c60b006413b0fc1b98c061d4b339ff'redis02-jp: True[root@redis01-jp ~]#[root@redis01-jp ~]# salt 'redis02-jp' file.chown /tmp/file1 push push #修改文件属主、属组redis02-jp: None[root@redis01-jp ~]# salt 'redis02-jp' cmd.run 'ls -l /tmp/file1'redis02-jp: -rw-r--r-- 1 push push 0 Dec 19 04:12 /tmp/file1[root@redis01-jp ~]#[root@redis01-jp ~]# salt 'redis02-jp' file.copy /etc/passwd /tmp/passwd #远程主机复制文件redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' cmd.run 'ls /tmp/passwd'redis02-jp: /tmp/passwd[root@redis01-jp ~]# salt 'redis02-jp' file.file_exists /tmp/passwd #测试文件是否存在redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' file.directory_exists /tmp/files # 测试目录是否存在redis02-jp: True[root@redis01-jp ~]#
[root@redis01-jp ~]# salt 'redis02-jp' file.stats /tmp/passwd #查看文件meta信息redis02-jp: ---------- atime: 1482131501.34 ctime: 1482131501.34 gid: 0 group: root inode: 281103 mode: 0644 mtime: 1482131501.34 size: 1321 target: /tmp/passwd type: file uid: 0 user: root[root@redis01-jp ~]# salt 'redis02-jp' file.access /etc/passwd r #测试文件是否有r权限redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' file.access /etc/passwd x #测试文件是否有x权限redis02-jp: False[root@redis01-jp ~]#[root@redis01-jp ~]# salt 'redis02-jp' file.get_mode /tmp/passwd #查看文件权限redis02-jp: 0644[root@redis01-jp ~]# salt 'redis02-jp' file.set_mode /tmp/passwd 755 #设置文件权限redis02-jp: 0755[root@redis01-jp ~]# salt 'redis02-jp' file.mkdir /tmp/dir1 #创建目录redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' file.sed /tmp/passwd 'push' 'work' #替换文件内容redis02-jp: ---------- pid: 4621 retcode: 0 stderr: stdout:[root@redis01-jp ~]# salt 'redis02-jp' cmd.run 'tail -1 /tmp/passwd' redis02-jp: work:x:501:501::/home/work:/bin/bash[root@redis01-jp ~]# salt 'redis02-jp' file.append /tmp/passwd 'saltstack file append test' #追回文件内容redis02-jp: Wrote 1 lines to "/tmp/passwd"[root@redis01-jp ~]# salt 'redis02-jp' cmd.run 'tail -2 /tmp/passwd'redis02-jp: work:x:501:501::/home/work:/bin/bash saltstack file append test[root@redis01-jp ~]# salt 'redis02-jp' file.remove /tmp/file1 # 可以删除指定文件redis02-jp: True[root@redis01-jp ~]#[root@redis01-jp ~]# salt 'redis02-jp' file.remove /tmp/dir1 #可以删除空目录redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' file.remove /tmp/files # 可以删除非空目录redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' file.contains /etc/passwd 'push' # 测试文件中是否包含push字符串redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' file.contains /etc/passwd 'work' redis02-jp: False[root@redis01-jp ~]#[root@redis01-jp ~]# cp /etc/passwd /srv/salt/files/[root@redis01-jp ~]# salt 'redis02-jp' file.get_diff /etc/passwd salt://files/passwd #比较文件内容差异redis02-jp: --- /etc/passwd +++ salt://files/passwd @@ -23,6 +23,3 @@ sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin ec2-user:x:500:500:EC2 Default User:/home/ec2-user:/bin/bash -apache:x:48:48:Apache:/var/www:/sbin/nologin -nginx:x:498:497:Nginx web server:/var/lib/nginx:/sbin/nologin -push:x:501:501::/home/push:/bin/bash[root@redis01-jp ~]#[root@redis01-jp ~]# salt 'redis02-jp' file.grep /etc/passwd push #过滤内容redis02-jp: ---------- pid: 5124 retcode: 0 stderr: stdout: push:x:501:501::/home/push:/bin/bash[root@redis01-jp ~]#

6、包管理模块pkg与服务管理模块service
[root@redis01-jp ~]# salt 'redis02-jp' pkg.install php #安装指定的软件包redis02-jp: ---------- compat-gmp4: ---------- new: 4.3.2-1.14.amzn1 old: httpd: ---------- new: 2.2.31-1.8.amzn1 old: php: ---------- new: 5.3.29-1.8.amzn1 old: php-cli: ---------- new: 5.3.29-1.8.amzn1 old: php-common: ---------- new: 5.3.29-1.8.amzn1 old:[root@redis01-jp ~]#[root@redis01-jp ~]# salt 'redis02-jp' pkg.remove nginx #卸载包redis02-jp: ----------[root@redis01-jp ~]# salt 'redis02-jp' pkg.upgrade #系统更新
[root@redis01-jp ~]# salt 'redis02-jp' service.enable httpd #设置服务开机自启动redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' service.disable httpd #禁止服务开机自启动redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' service.start httpd #启动服务redis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' service.reload httpdredis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' service.restart httpdredis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' service.status httpdredis02-jp: True[root@redis01-jp ~]# salt 'redis02-jp' service.stop httpdredis02-jp: True[root@redis01-jp ~]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  saltstack 常用模块