1、查看 ansible 支持的模块
ansible-doc -l
2、常用的模块
命令 | 功能 |
ping | 尝试连接主机,如果测试成功会返回‘pong’ |
COMMAND | 在远程节点执行命令,默认模块 |
YUM | 使用yum软件包管理工具管理软件包 |
SHEEL | 和command模块类似,执行命令,支持变量等符号 |
cron | 管理定时任务,计划任务 |
SYSTEMD | 管理程序服务 |
FILE | 设置文件属性 |
COPY | 复制本地文件到远程主机 |
script | 传送本地的一个脚本并在远程主机上执行 |
setup | 获取远程主机的参数信息 |
USER | 管理用户账户 |
group | 添加或者删除用户组 |
3、查看某模块的用法
ansible-doc -s yum
COMMAND
命令模块 适合使用简单的命令 无法支持"<",">","|",";","&"等符号
官方文档:ansible.builtin.command module – Execute commands on targets — Ansible Documentation
参数 | 选项/默认值 | 释义 |
---|---|---|
chdir | 在执行命令前,进入到指定目录中 | |
creates | 判断指定文件是否存在,如果存在,不执行后面的操作 | |
removes | 判断指定文件是否存在,如果存在,执行后面的操作 | |
free_form | 必须要输入一个合理的命令 |
ansible testgroup -m command -a "date"
# 也可以这样
ansible testgroup -a "date"
YUM
使用yum软件包管理器安装,升级,降级,删除和列出软件包和组。
官方文档:ansible.builtin.yum_repository module – Add or remove YUM repositories — Ansible Documentation
参数 | 选项/默认值 | 释义 |
---|---|---|
name(required) | 指定软件名称信息 | |
state | absent / removed | 将软件进行卸载 |
present / installed | 将软件进行安装 | |
latest | 安装最新的软件 yum update |
# sample
ansible testgroup -m yum -a "name=httpd state=installed"
SHEEL
类似command模块升级版—万能模块,可以使用"<",">","|",";","&"等符号特殊符号
官方文档:ansible.builtin.shell module – Execute shell commands on targets — Ansible Documentation
参数 | 选项/默认值 | 释义 |
---|---|---|
chdir | 在执行命令前,进入到指定目录中 | |
creates | 判断指定文件是否存在,如果存在,不执行后面的操作 | |
removes | 判断指定文件是否存在,如果存在,执行后面的操作 | |
free_form | 必须要输入一个合理的命令 |
ansible testgroup -m shell -a "ps -ef | grep sshd"
SYSTEMD
用于管理服务运行状态
官方文档:ansible.builtin.systemd module – Manage systemd units — Ansible Documentation
参数 | 选项/默认值 | 释义 |
---|---|---|
name | 设置要启动/停止服务名称 | |
enable | no/yes | 是否开机启动 |
state | reloaded | 平滑重启 |
restarted | 重启 | |
started | 启动 | |
stopped | 停止 |
ansible testgroup -m systemd -a "name=httpd state=started"
FILE
实现创建/删除文件信息 对数据权限进行修改
官方文档:ansible.builtin.file module – Manage files and file properties — Ansible Documentation
参数 | 选项/默认值 | 释义 |
---|---|---|
path | 定义文件目录的路径 | |
group | 设置文件属组用户信息 | |
mode | 设置数据的权限 0644 0755 | |
owner | 设置文件属主用户信息 | |
src | 要被软连接的源文件的路径,只适用于state=link的情况 | |
dest | 被连接到的路径,只适用于state=link的情况 | |
state | absent | 将数据进行删除 |
directory | 创建一个目录 | |
file | 查看指定目录信息是否存在 | |
touch | 创建一个文件 | |
hard/link | 创建链接文件 |
ansible testgroup -m file -a "path=/opt/opt.txt state=touch"
COPY
主要用于将管理主机上的数据信息传送给多台主机
官方文档:ansible.builtin.copy module – Copy files to remote locations — Ansible Documentation
参数 | 选项/默认值 | 释义 |
---|---|---|
src | 指定将本地管理主机的什么数据信息进行远程复制 | |
backup | no* yes | 默认数据复制到远程主机,会覆盖原有文件(yes 将源文件进行备份) |
content | 在文件中添加信息 | |
dest | 将数据复制到远程节点的路径信息 | |
group | 文件数据复制到远程主机,设置文件属组用户信息 | |
mode | 文件数据复制到远程主机,设置数据的权限 eg 0644 0755 | |
owner | 文件数据复制到远程主机,设置文件属主用户信息 |
ansible testgroup -m copy -a "src=/root/anaconda-ks.cfg dest=/opt"
USER
远程批量创建用户信息
官方文档:ansible.builtin.user module – Manage user accounts — Ansible Documentation
参数 | 选项/默认值 | 释义 |
---|---|---|
password | 请输入密码信息 | |
name | 指定用户名信息 | |
uid | 指定用户uid信息 | |
group | 指定用户主要属于哪个组 | |
groups | 指定用户属于哪个附加组信息 | |
shell | /bin/bash或/sbin/nologin | 指定是否能够登录 |
create_home | yes/no | 是否创建家目录信息 |
home | 指定家目录创建在什么路径 默认/home |
ansible testgroup -m user -a "name=tomma"