一. archive 模块
实现系统层面的压缩包调用, 支持 gzip,gunzip,rar,tar,unrar,unzip 等
- archive.cmd_unzip
- archive.cmd_zip
- archive.gunzip
- archive.gzip
- archive.rar
- archive.tar
- archive.unrar
- archive.unzip
- archive.zip
cmd 模块
实现远程的命令行调用执行 (默认具备 root 操作权限, 使用时需评估风险)
- 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
ping 模块
cron 模块:
实现被控主机的 crontab 操作
- cron.list_tab
- cron.ls
- cron.raw_cron
- cron.rm
- cron.rm_env
- cron.rm_job
- cron.set_env
- cron.set_job
- cron.set_special
- cron.write_cron_file
- cron.write_cron_file_verbose
cp 模块
实现远程文件, 目录的复制, 以及下载 URL 文件等操作
- cp.cache_dir
- cp.cache_file
- cp.cache_files
- cp.cache_local_file
- cp.cache_master
- cp.get_dir
- cp.get_file
- cp.get_file_str
- cp.get_template
- cp.get_url
- cp.hash_file
- cp.is_cached
- cp.list_master
- cp.list_master_dirs
- cp.list_master_symlinks
- cp.list_minion
- cp.list_states
- cp.push
- cp.push_dir
- cp.recv
dnsutil 模块
实现被控主机通用 DNS 操作
file 模块
被控主机常见的文件操作, 包括文件读写, 权限, 查找, 校验
group 模块
- group.add
- group.adduser
- group.chgid
- group.delete
- group.deluser
- group.getent
- group.info
- group.members
network 模块
主要用来处理与 IP 网络有关的事务
pkg 模块
主要用于包管理完成, yum rpm which 等命令的使用
- pkg.available_version
- pkg.check_db
- pkg.clean_metadata
- pkg.del_repo
- pkg.diff
- pkg.download
- pkg.expand_repo_def
- pkg.file_dict
- pkg.file_list
- pkg.get_locked_packages
- pkg.get_repo
- pkg.group_diff
- pkg.group_info
- pkg.group_install
service 模块
主要是对服务进行管理
- service.available
- service.disable
- service.disabled
- service.enable
- service.enabled -
- service.execs
- service.force_reload
- service.get_all
- service.get_disabled
- service.get_enabled
- service.mask
- service.missing
- service.reload
- service.restart
- service.show
- service.start
- service.status
- service.stop
- service.systemctl_reload
- service.unmask
user 模块
主要用于用户管理, 如创建用户, 删除用户, 更改用户信息等
- salt '*' sys.list_functions user
- user.add
- user.chfullname
- user.chgid
- user.chgroups
- user.chhome
- user.chhomephone
- user.chloginclass
- user.chroomnumber
- user.chshell
- user.chuid
- user.chworkphone
- user.delete
- user.get_loginclass
- user.getent
- user.info
- user.list_groups
- user.list_users
- user.rename
iptables 模块
主要用于管理 iptables 规则, 比如增加, 删除等
sys 模块:
此模块主要用于获取帮助, 和查看可以使用的模块, 方法和状态 state
** 二. 搭建 salt stack**
开两台虚拟机 一台服务端 一台客户端
1. 设置 hostname
hostnamectl set-hostname saltstack 服务端
hostnamectl set-hostname client 客户端
2. 关闭 SElinux
- # 服务端和客户端都要配置
- VIM /etc/selinux/config
将 SELINUX=enforcing
改成 SELINUX=disabled
3. 编辑 hosts 文件
- # 服务端和客户端都要配置
- vi /etc/hosts
在里面添加
- 192.168.1.123 saltstrack
- 192.168.1.124 client
4. 添加 epel 源
- # 服务端和客户端都要配置
- wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
5. 安装
yum -y install salt-master salt-minion 服务端
yum -y install salt-minion 客户端
6. 配置 master
- # 服务端和客户端都要配置
- vi /etc/salt/minion
+16: master: 主机名 / ip
+78: id: 主机名
7. 服务端 启动服务
- systemctl enable salt-master
- systemctl enable salt-minion
- systemctl start salt-master
- systemctl start salt-minion
8. 客户端 启动服务
- systemctl enable salt-minion
- systemctl start salt-minion
9.VIM /etc/salt/minion 客户端
添加 master: 服务端 ip
id: 客户端主机名
10. 关闭防火墙
service firewalld stop 服务端
11. 关闭 SElinux
setenforce 0
12. 重启服务
systemctl restart salt-minion 客户端
13. 显示所有公钥
salt-key -L
14. 接受所有等待的 Key
- salt-key -A
- Proceed?[n/y] y
15. 显示所有公钥
salt-key -L
16. 检测通讯是否正常
salt '*' test.ping
来源: http://www.bubuko.com/infodetail-3106672.html