Ansible 是一款流行的开源自动化工具,它通过简单的模型来管理配置服务器、部署软件以及执行各种IT任务。Ansible 使用无代理(agentless)架构,这意味着不需要在被管理的节点上安装额外的软件。以下是一些常用的 Ansible 模块及其使用方法:
1. Command模块
Command模块用于在远程主机上执行命令。它不支持管道和重定向等复杂的shell特性。如果需要这些特性,可以使用Shell模块。
常用参数:
free_form
:要执行的命令。chdir
:执行命令前切换到的目录。creates
:如果指定的文件存在,则不执行命令。removes
:如果指定的文件不存在,则执行命令。
示例:
ansible all -m command -a "ls -l /tmp"
2. Shell模块
Shell模块与Command模块类似,但它在远程主机上执行shell命令,并支持管道和重定向。
常用参数:
free_form
:要执行的命令。chdir
:执行命令前切换到的目录。creates
:如果指定的文件存在,则不执行命令。removes
:如果指定的文件不存在,则执行命令。executable
:指定使用的shell,如/bin/bash
。
示例:
ansible all -m shell -a "ls -l /tmp | grep log"
3. Copy模块
Copy模块用于将文件从Ansible控制节点复制到远程主机。
常用参数:
src
:源文件路径。dest
:目标文件路径。content
:直接指定文件内容。owner
:设置文件所有者。group
:设置文件所属组。mode
:设置文件权限。
示例:
ansible all -m copy -a "src=/etc/hosts dest=/tmp/hosts"
4. File模块
File模块用于管理文件和目录的属性,如权限、所有者和链接。
常用参数:
path
:文件或目录的路径。state
:期望的状态(如directory
、file
、link
、absent
)。mode
:设置权限。owner
:设置所有者。group
:设置所属组。
示例:
ansible all -m file -a "path=/tmp/state state=directory"
5. User模块
User模块用于管理远程主机上的用户账户。
常用参数:
name
:用户名。state
:present
表示创建用户,absent
表示删除用户。uid
:用户ID。group
:基本组。groups
:附加组。shell
:默认shell。home
:家目录。
示例:
ansible all -m user -a "name=john state=present"
6. Group模块
Group模块用于管理远程主机上的用户组。
常用参数:
name
:组名。state
:present
表示创建组,absent
表示删除组。gid
:组ID。
示例:
ansible all -m group -a "name=developers state=present"
7. Service模块
Service模块用于管理远程主机上的服务。
常用参数:
name
:服务名。state
:服务状态(如started
、stopped
、restarted
)。enabled
:是否设置为开机启动。
示例:
ansible all -m service -a "name=httpd state=started enabled=yes"
8. Yum模块
Yum模块用于在基于RPM的系统上管理软件包。
常用参数:
name
:软件包名。state
:软件包状态(如present
、latest
、absent
)。
示例:
ansible all -m yum -a "name=nginx state=present"
9. Cron模块
Cron模块用于管理远程主机上的cron任务。
常用参数:
name
:cron任务名称。job
:要执行的命令。minute
、hour
、day
、month
、weekday
:cron表达式的时间设置。
示例:
ansible all -m cron -a "name='backup' job='/usr/bin/backup.sh' weekday=1"
这些模块是Ansible自动化中常用的模块,通过它们可以实现各种自动化任务。更多模块和详细用法可以参考Ansible官方文档。
标签:name,示例,ansible,state,Ansible,模块,Linux,详解 From: https://blog.csdn.net/qq_40797754/article/details/143257197