常用服务模块:
模块 | 功能 |
---|---|
copy | 拷贝文件到被控端 |
cron | 定时任务 |
fetch | 拷贝被控端文件到本地 |
file | 文件模块 |
group | 用户组模块 |
user | 用户模块 |
hostname | 主机名模块 |
script | 脚本模块 |
service/systemd | 服务启动模块 |
command | 远程执行命令模块 |
shell | 远程执行命令模块,command高级用法 |
yum | 安装包组模块 |
setup | 查看主机系统信息 |
一、常用模块参数详解
1、copy–拷贝文件到被控端
- src:指定要复制的源文件路径。可以是绝对路径或相对路径。如果是相对路径,则相对于playbook文件的位置。
- dest:指定目标文件的路径。可以是绝对路径或相对路径。如果是相对路径,则相对于目标主机的工作目录。
- backup:指定是否在复制文件之前备份目标文件。可以是yes或no。默认值为no。
- force:指定是否强制覆盖目标文件。可以是yes或no。默认值为no。
- mode:指定目标文件的权限模式。可以是字符串(如"0644")或整数(如644)。
- owner:指定目标文件的所有者。可以是用户名或用户ID(UID)。
- group:指定目标文件的所属组。可以是组名或组ID(GID)。
- validate:指定在复制文件之前验证源文件的哈希值。可以是哈希值字符串或文件路径。
- follow:指定是否跟随源文件的符号链接。可以是yes或no。默认值为no。
- remote_src:指定源文件是否位于目标主机上。可以是yes或no。默认值为no。
- content:指定要复制的文件内容。可以是字符串或字典。
2、cron–定时任务
- name:指定任务的名称。
- minute:指定任务应在哪些分钟运行。可以是整数、星号(*)或逗号分隔的值。
- hour:指定任务应在哪些小时运行。可以是整数、星号(*)或逗号分隔的值。
- day:指定任务应在哪些日运行。可以是整数、星号(*)或逗号分隔的值。
- month:指定任务应在哪些月运行。可以是整数、星号(*)或逗号分隔的值。
- weekday:指定任务应在哪些星期几运行。可以是整数(0表示星期日)、星号(*)或逗号分隔的值。
- user:指定应该运行任务的用户。如果省略,则任务将在当前用户的crontab中运行。
- job:指定要运行的命令。可以是命令字符串或列表。
- state:指定任务应该是"present"(存在)还是"absent"(不存在)。如果任务不存在,将创建它。
- cron_file:指定crontab文件的位置。默认情况下,cron模块将任务添加到用户的crontab中,但您可以使用该参数指定其他crontab文件的位置。
3、fetch–拷贝被控端文件到本地
- name:指定任务的名称。
- minute:指定任务应在哪些分钟运行。可以是整数、星号(*)或逗号分隔的值。
- hour:指定任务应在哪些小时运行。可以是整数、星号(*)或逗号分隔的值。
- day:指定任务应在哪些日运行。可以是整数、星号(*)或逗号分隔的值。
- month:指定任务应在哪些月运行。可以是整数、星号(*)或逗号分隔的值。
- weekday:指定任务应在哪些星期几运行。可以是整数(0表示星期日)、星号(*)或逗号分隔的值。
- user:指定应该运行任务的用户。如果省略,则任务将在当前用户的crontab中运行。
- job:指定要运行的命令。可以是命令字符串或列表。
- state:指定任务应该是"present"(存在)还是"absent"(不存在)。如果任务不存在,将创建它。
- cron_file:指定crontab文件的位置。默认情况下,cron模块将任务添加到用户的crontab中,但您可以使用该参数指定其他crontab文件的位置。
4、file–文件模块(用于从远程主机复制文件到控制节点)
- src:指定要从远程主机复制的源文件路径。可以是绝对路径或相对路径。如果是相对路径,则相对于远程主机的工作目录。
- dest:指定目标文件的路径。可以是绝对路径或相对路径。如果是相对路径,则相对于控制节点的工作目录。
- flat:指定是否将源文件复制到目标路径中的最高层级目录。可以是yes或no。默认值为no。
- validate:指定在复制文件之后验证目标文件的哈希值。可以是哈希值字符串或文件路径。
- backup:指定是否在复制文件之前备份目标文件。可以是yes或no。默认值为no。
- force:指定是否强制覆盖目标文件。可以是yes或no。默认值为no。
- mode:指定目标文件的权限模式。可以是字符串(如"0644")或整数(如644)。
- owner:指定目标文件的所有者。可以是用户名或用户ID(UID)。
- group:指定目标文件的所属组。可以是组名或组ID(GID)。
- selevel:指定目标文件的SELinux安全级别。
- serole:指定目标文件的SELinux安全角色。
- setype:指定目标文件的SELinux类型。
- seuser:指定目标文件的SELinux用户
5、group–用户组模块(用于管理组)
- name:指定组的名称。
- gid:指定组的GID。如果未指定,Ansible将为该组自动分配一个GID。
- state:指定组应该是"present"(存在)还是"absent"(不存在)。如果组不存在,将创建它。
- system:指定组是否应该是系统组。可以是yes或no。默认值为no。
- members:指定属于该组的用户列表。可以是用户名称或用户ID(UID)。
- append:指定是否将用户添加到组的现有成员列表中。可以是yes或no。默认值为no。
6、user–用户模块(用于管理用户)
- name:指定用户的名称。
- comment:指定用户的注释。
- uid:指定用户的UID。如果未指定,Ansible将为该用户自动分配一个UID。
- group:指定用户所属的组。可以是组名称或组ID(GID)。
- groups:指定用户所属的其他组。可以是组名称或组ID(GID)的列表。
- home:指定用户的主目录路径。
- shell:指定用户的默认shell。
- password:指定用户的密码。可以是明文密码或加密密码。
- generate_ssh_key:指定是否为该用户生成SSH密钥对。可以是yes或no。默认值为no。
- ssh_key_bits:指定生成的SSH密钥位数。默认值为2048。
- state:指定用户应该是"present"(存在)还是"absent"(不存在)。如果用户不存在,将创建它。
- create_home:指定是否为用户创建主目录。可以是yes或no。默认值为yes。
7、hostname–主机名模块(用于设置主机名)
- name:指定要设置的主机名。
- state:指定主机名应该是"present"(存在)还是"absent"(不存在)。如果主机名不存在,将创建它。
- update_hostname:指定是否将主机名写入/etc/hostname文件中。可以是yes或no。默认值为yes。
- update_etc_hosts:指定是否将主机名和IP地址写入/etc/hosts文件中。可以是yes或no。默认值为yes。
- remove_from_etc_hosts:指定是否从/etc/hosts文件中删除旧主机名和IP地址。可以是yes或no。默认值为no。
- set_static_hostname:指定是否将主机名写入/etc/hostname文件和/etc/machine-info文件中。可以是yes或no。默认值为no。
8、script–脚本模块(用于在远程主机上运行本地脚本)
- chdir:指定运行脚本时要更改到的目录。默认值为远程主机的主目录。
- creates:指定要检查的文件路径。如果该文件存在,将不会运行脚本。可以是文件路径或目录路径。
- executable:指定要在远程主机上运行的脚本文件的名称。
- free_form:指定要在远程主机上运行的命令字符串。这个参数和script参数不能同时使用。
- removes:指定要删除的文件路径。如果该文件存在,将在运行脚本之前删除它。
- script:指定要在远程主机上运行的脚本文件的路径。这个参数和free_form参数不能同时使用。
- stdin:将标准输入传递给远程主机的脚本。
- strip_empty_ends:指定是否删除输出中的空行。可以是yes或no。默认值为yes。
- warn:指定是否在脚本执行时打印警告信息。可以是yes或no。默认值为yes。
9、systemd/service/upstart–服务启动模块(用于在远程主机上管理系统服务)
- name:指定要管理的服务的名称。
- state:指定服务应该是"started"(启动)还是"stopped"(停止)。
- enabled:指定服务是否应该在系统启动时自动启动。可以是yes或no。
- daemon_reload:在启用或禁用服务时,是否应该运行systemd的daemon-reload命令。可以是yes或no。默认值为no。
- pattern:指定用于查找进程的模式。可以是正则表达式或通配符。
- sleep:在重新启动服务之前等待的秒数。默认值为0。
- arguments:指定传递给服务的附加参数。
- force:在停止服务时,是否强制终止进程。可以是yes或no。默认值为no。
10、command–远程执行命令模块(用于在远程主机上运行命令)
- chdir:指定运行命令时要更改到的目录。默认值为远程主机的主目录。
- creates:指定要检查的文件路径。如果该文件存在,将不会运行命令。可以是文件路径或目录路径。
- free_form:指定要在远程主机上运行的命令字符串。
- removes:指定要删除的文件路径。如果该文件存在,将在运行命令之前删除它。
- stdin:将标准输入传递给远程主机的命令。
- warn:指定是否在命令执行时打印警告信息。可以是yes或no。默认值为yes。
注意,command模块不会自动在远程主机上使用shell,因此您需要在命令中包含任何必需的shell元素
11、shell–远程执行命令模块,command高级用法
- chdir:指定运行命令时要更改到的目录。默认值为远程主机的主目录。
- creates:指定要检查的文件路径。如果该文件存在,将不会运行命令。可以是文件路径或目录路径。
- executable:指定要在远程主机上使用的shell程序。默认值为"/bin/sh"。
- free_form:指定要在远程主机上运行的shell命令字符串。
- removes:指定要删除的文件路径。如果该文件存在,将在运行命令之前删除它。
- stdin:将标准输入传递给远程主机的shell命令。
- warn:指定是否在命令执行时打印警告信息。可以是yes或no。默认值为yes。
** command模块不同,shell模块将自动在远程主机上使用shell,因此您无需在命令中包含shell元素**
12、yum/apt/dnf–安装包组模块
- name:指定要安装或卸载的软件包名称,也可以是逗号分隔的多个软件包名称。
- state:指定软件包的状态。可以是present(安装软件包)、absent(卸载软件包)、latest(安装最新版本)等。
- enablerepo:指定要启用的仓库。可以是仓库名称、通配符、逗号分隔的多个仓库等。
- disablerepo:指定要禁用的仓库。可以是仓库名称、通配符、逗号分隔的多个仓库等。
- installroot:指定要安装软件包的根目录。可以是绝对路径或相对路径。
- disable_gpg_check:指定是否禁用软件包的GPG检查。默认值为false。
- exclude:指定要排除的软件包。可以是软件包名称、通配符、逗号分隔的多个软件包等。
- update_cache:指定是否在安装软件包之前更新缓存。默认值为true。
- validate_certs:指定是否验证SSL证书。默认值为true。
13、setup–查看主机系统信息(setup模块将自动在远程主机上收集系统信息和环境变量)
- fact_path:指定要存储收集的事实(facts)的路径。默认值为"/etc/ansible/facts.d".
- filter:指定要过滤的事实名称。可以是一个字符串或一个列表。
- gather_subset:指定要收集的主机信息的子集。可以是一个字符串或一个列表。默认情况下,收集所有可用的信息。
- gather_timeout:指定收集信息的超时时间。默认值为10秒。
- cache_valid_time:指定收集的信息的缓存有效时间。默认情况下,信息缓存有效期为0秒,意味着每次收集信息时都会重新获取。
14、unarchive–提取压缩包文件(用于从归档文件(如.tar,.gz,.zip)中提取文件)
- src:指定要解压缩的归档文件的路径。这个参数是必需的。
- dest:指定将文件提取到的目标目录的路径。如果未指定该参数,则默认解压缩文件到当前目录。
- remote_src:如果设置为True,则从远程主机中复制归档文件到本地进行解压缩。默认为False。
- format:指定归档文件的格式。如果未指定该参数,则会自动检测格式。支持的格式包括“zip”、“tar”、“gztar”和“bztar”。
- exclude:指定要从归档文件中排除的文件或目录的列表。