list复制到另一个list_一文总结saltstack的十一个常用模块,附实例讲解

概述

SaltStack 通过模块来实现管理,具备丰富的模块功能,命令形式也比较自由。

今天主要介绍一下saltstack常见的一些模块。

常用执行模块如下:

cron模块archive模块cmd模块cp模块dnsutil模块file模块group模块network模块service模块pkg模块user模块

一、cron模块


1、功能

实现被控主机的crontab操作

2、用法

salt '*TEST*' sys.list_functions cronsalt '*TEST*' sys.doc cron.list_tab
566961c40764b152a07f7d466b436a6c.png

3、实例

3.1、为指定的用户设置cron定时任务

 salt '*TEST*' cron.set_job root '*' '*' '*' '*' 1  /root/a.sh

3.2、查看minion端定时任务

 salt '*TEST*' cron.list_tab root
c4fc12843ac0505d8dd21a953ca04a9a.png

二、archive模块

1、功能

实现系统层面的压缩包调用,支持gzip、gunzip、rar、tar、unrar、unzip等

2、用法

salt '*TEST*' sys.list_functions archivesalt '*TEST*' sys.doc archive.cmd_unzip
731fe2ecd1a3610b18ce52f58e0e0ce1.png

3、实例

3.1、zip/unzip解压及压缩

##采用zip压缩源文件1,源文件2到目的文件.zip,注意压缩后会带上路径名salt '*' archive.zip 目的文件.zip 源文件1,源文件2#采用unzip解压源文件.zip到目的路径salt '*' archive.unzip 源文件.zip 目的路径
ef9fdafad172d656e116b34a79b92998.png

3.2、tar压缩

注:tar不支持模块解压

 salt '*' archive.tar zcvf /opt/file.tar.bz /tmp/file_1,/tmp/file_2

3.3、gzip/gunzip解压及压缩

#采用gzip压缩/tmp/sourcefile.txt文件,sourcefile.txt 是在客户端存在的文件# salt '*' archive.gzip /tmp/sourcefile.txt#采用gunzip解压/tmp/sourcefile.txt.gz包# salt '*' archive.gunzip /tmp/sourcefile.txt.gz

三、cmd模块

1、功能

实现远程的命令行调用执行(默认具备root操作权限,使用时慎重)

2、用法

 salt '*TEST*' sys.list_functions cmd
da2807f99595e5e06c6636bd17e62e0e.png

3、实例
3.1、查看内存

 salt '*' cmd.run 'free -m'   
64840b1b9d883c3d981d8d2fb6488f3b.png

3.2、执行脚本

 salt '*TEST*' cmd.script  /home/scripts/t.sh
652094f7908c2f801cbc34650d4cc54d.png

3.3、执行shell命令

 salt '*TEST*' cmd.shell "sed -i s/who/who2/g /home/scripts/t.sh"salt '*TEST*' cmd.shell "cat /home/scripts/t.sh"
6774baf9e3fea91f9bd32a445c6c375a.png

四、cp模块

1、功能

实现远程文件、目录的复制,以及下载URL文件等操作

2、用法

 salt '*' sys.list_functions cp
cd25e71482f22dd2cdb9c08dc8c5f4ea.png

3、实例

3.1、将master端的/etc/hosts文件复制到minion端的salt cache目录(/var/cache/salt/minion/localfiles/)

 salt '*TEST*' cp.cache_local_file /etc/hosts
e2c5906967c251b8dc606474c1828684.png

3.2、将master端salt主目录下面的目录复制到minion端的/opt目录下

 salt '*TEST*' cp.get_dir salt://user/ /opt/

3.3、下载URL内容到被控主机指定位置(/tmp/index.html)

 salt '*TEST*' cp.get_url http://www.baidu.com /tmp/index.html
3dad856cfa9099008100e663fdf0e6ba.png

五、dnsutil模块

1、功能

实现被控主机通用DNS操作
2、用法

 salt '*TEST*' sys.list_functions dnsutil
9d08dd0179a9710b7548d0531d97aeb6.png

3、实例

3.1、添加minion端的hosts域名解析信息

 salt '*TEST*' dnsutil.hosts_append /etc/hosts 10.1.6.16 www.baidu.com

3.2、删除minion端的hosts域名解析信息

 salt '*TEST*'  dnsutil.hosts_remove /etc/hosts www.baidu.com
19e3ef956f69b33e954509d1af4c6363.png

六、file模块

1、功能

被控主机常见的文件操作,包括文件读写、权限、查找、校验
2、用法

 salt '*' sys.list_functions file
5dd03be5911c34854a9657cc6776caf4.png

3、用法

3.1、修改所有minion端的/etc/passwd文件的属组、用户权限,等价于chown root:root /etc/passwd

  salt '*' file.chown /etc/passwd root root
52d7aa08e3cc425a2bab1de8bc05bad3.png

3.2、复制文件/文件夹

#将所有minion端的/root/a.sh文件复制到/opt/目录下salt '*' file.copy /root/a.sh /opt/a.sh#将所有minion端的/root/mysql目录复制到/opt目录下salt '*' file.copy /root/mysql  /opt/mysql  recurse=True

3.3、检查所有被控主机/etc目录是否存在,存在则返回True,检查文件是否存在使用file.file_exists方法

 salt '*' file.directory_exists /etc
2a6646face0b15bd13e5221128792e3c.png

3.4、获取所有被控主机/etc/passwd的stats信息

 salt '*' file.stats /etc/passwd
bd9172033570029a3f4e7d4be89bec09.png

3.5、获取及修改权限

#获取所有被控主机/etc/passwd的权限mode,如755,644salt '*' file.get_mode /etc/passwd#修改所有被控主机/etc/passwd的权限mode为0644salt '*' file.set_mode /etc/passwd 0644
acaec28f09cc9fbda1020030b2d863ec.png

3.6、在所有被控主机创建/opt/test目录

 salt '*' file.mkdir /opt/test
af9be015907801cdb3cda36ba1e24217.png

3.7、将所有被控主机/etc/httpd/httpd.conf文件的LogLevel参数的warn值修改为info

 salt '*' file.sed /etc/httpd/httpd.conf 'LogLevel warn' 'LogLevel info'

3.8、给所有被控主机的/tmp/test/test.conf文件追加内容‘maxclient 100’

 salt '*' file.append /tmp/test/test.conf 'maxclient 100'

3.9、删除所有被控主机的/tmp/foo文件

 salt '*' file.remove /tmp/foo

3.10、在所有的minion端的/opt目录下创建c.txt文件

 salt '*' file.touch /opt/c.txt

3.11、将所有minion端/root目录下的a.sh文件移动到/opt目录下

 salt '*' file.move /root/a.sh  /opt

3.12、将所有minion端的/root目录下的a.sh文件重命名为/opt目录下的b.sh

 salt '*' file.rename /root/a.sh /opt/b.sh

3.13、查找所有minion端/opt目录下所有以.tar.tz结尾的且文件大小大于2m的文件

 salt '*' file.find /opt type=f name=*.tar.gz size=+2m
45c15248fe874bebfcdd44da10493d15.png

3.14、查找所有minion端的/var目录下30天以内且大于10m的文件

 salt '*' file.find /var mtime=-30d size=+10m print=path,size,mtime 
6bf6f4582c4dc49b746cc5fa5bbe18f9.png

七、network模块

1、功能

返回被控主机网络信息。

2、用法

 salt '*' sys.list_functions network
1c216f7b21212dd10ada319f9fb1680c.png

3、实例

3.1、查询minion端dig、ping、traceroute目录域名信息

salt '*' network.dig www.sina.comsalt '*' network.ping www.sina.comsalt '*' network.traceroute www.sina.com

3.2、查询minion端网卡ens160的物理地址

 salt '*' network.hw_addr ens160
287b26bea03a0eddf4fd9ceb33d010e1.png

3.3、查询minion端的ip地址

 salt '*' network.ip_addrs

3.4、查询minion端主机的子网信息

 salt '*' network.subnets

八、pkg模块

1、功能

被控主机程序包管理,如yum、apt-get等

2、用法

 salt '*' sys.list_functions pkg
ed0e22f82ed0c44ba4f39ae65f5a4271.png

3、用法

3.1、在所有的minion端安装httpd服务

 salt '*' pkg.install httpd

3.2、卸载所有minion端的httpd服务

 salt '*' pkg.remove httpd

3.3、在所有minion端下载httpd软件包

 salt '*' pkg.download httpd

九、service模块

1、功能

被控主机程序包服务管理。

2、用法

 salt '*' sys.list_functions service
6015f11445588dddceee06b822880d08.png

3、实例

3.1、在所有的minion端启动httpd服务

 salt '*' service.start httpd

3.2、在所有的minion端关闭httpd服务

 salt '*' service.stop httpd

3.3、在所有的httpd端查看httpd服务的状态

 salt '*' service.status httpd

3.4、在所有的httpd端重新加载一次服务

 salt '*' service.reload httpd

十、group模块

1、功能

被控主机用户组管理。

2、用法

 salt '*' sys.list_functions group
84f9d3a015440c49ddfe032abc300076.png

3、实例

3.1、在所有的minion端创建一个gid为500的test组

 salt '*' group.add test 500

3.2、返回test用户组信息

 salt '*' group.info test

3.3、在所有的minion端删除test组

 salt '*' group.delete test
2d4086f520f61da0deac2994500c3f36.png

3.4、添加一个用户到指定组中。(必须是一个已经存在的组和已存在的用户)

 salt '*' group.adduser user1 group1

十一、user模块

1、功能

被控主机用户管理

2、用法

 salt '*' sys.list_functions user
035471124970a2fd5b6019e5e1e0b353.png

3、实例

3.1、在minion端上创建一个用户test

用法:salt '*' user.add name

 salt '*' user.add test 610 605 test /home/test /bin/bash
803ac4d2151a0521948a1d8eba377779.png

3.2、返回用户信息

 salt '*' user.info test
ad010d5a3b7b105ddccf5a3bb69a004c.png

3.3、在minion端删除一个用户

 salt '*' user.delete test
a1d02c790da22469a4ccb54ab868d8ce.png

觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

dd590cc5ad0fedb59686d0837e7b30bf.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值