Linux Ansible 常用模块教程详解

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:期望的状态(如directoryfilelinkabsent)。
  • mode:设置权限。
  • owner:设置所有者。
  • group:设置所属组。

示例:

ansible all -m file -a "path=/tmp/state state=directory"

5. User模块

User模块用于管理远程主机上的用户账户。

常用参数:

  • name:用户名。
  • statepresent表示创建用户,absent表示删除用户。
  • uid:用户ID。
  • group:基本组。
  • groups:附加组。
  • shell:默认shell。
  • home:家目录。

示例:

ansible all -m user -a "name=john state=present"

6. Group模块

Group模块用于管理远程主机上的用户组。

常用参数:

  • name:组名。
  • statepresent表示创建组,absent表示删除组。
  • gid:组ID。

示例:

ansible all -m group -a "name=developers state=present"

7. Service模块

Service模块用于管理远程主机上的服务。

常用参数:

  • name:服务名。
  • state:服务状态(如startedstoppedrestarted)。
  • enabled:是否设置为开机启动。

示例:

ansible all -m service -a "name=httpd state=started enabled=yes"

8. Yum模块

Yum模块用于在基于RPM的系统上管理软件包。

常用参数:

  • name:软件包名。
  • state:软件包状态(如presentlatestabsent)。

示例:

ansible all -m yum -a "name=nginx state=present"

9. Cron模块

Cron模块用于管理远程主机上的cron任务。

常用参数:

  • name:cron任务名称。
  • job:要执行的命令。
  • minutehourdaymonthweekday:cron表达式的时间设置。

示例:

ansible all -m cron -a "name='backup' job='/usr/bin/backup.sh' weekday=1"

这些模块是Ansible自动化中常用的模块,通过它们可以实现各种自动化任务。更多模块和详细用法可以参考Ansible官方文档。

猜你喜欢

转载自blog.csdn.net/qq_40797754/article/details/143257197