RedHat9 | Ansible 模块参数记录

avatar
作者
筋斗云
阅读量:0

1. file模块

设置权限、所有者、SElinux上下文及常规文件、符号连接、硬链接等

查询方式

ansible-navigator doc file -m stdout 

EXAMPLE 1

- name: Change file ownership, group and permissions   ansible.builtin.file:		# file模块     path: /etc/foo.conf		# 文件路径     owner: foo				# 文件所有者     group: foo				# 文件所属组     mode: '0644'			# 文件权限     state: touch			# 操作状态:创建文件     modification_time: now	# 设置文件修改时间     access_time: now		# 设置文件的访问时间 

EXAMPLE 2

- name: Create a symbolic link		# 创建一个符号链接   ansible.builtin.file:     src: /file/to/link/to			# 源文件     dest: /path/to/symlink			# 目的文件     owner: foo						# 文件所属者     group: foo						# 文件所属组     state: link						# 创建或更改符号链接 

文件权限的不同设置方式

设置方式说明
mode: ‘0644’设置权限
mode: u+rw,g-wx,o-rwx设置权限

state列表项的不同属性值

列表项说明
absent目录–>递归删除,符号链接–>取消链接
directory目录存在–>不做任何操作,目录不存在–>新建目录
file默认值,文件存在–>被修改,文件不存在–>不会修改
hard创建或更改硬链接
link创建或更改符号链接
touch文件存在–>不做任何操作,文件不存在–>创建文件

file模板列表项

列表项说明
modifycation_time设置修改时间【YYYYMMDDHHMM.SS】
access_time设置文件访问时间【YYYYMMDDHHMM.SS】
setypeSELinux安全上下文

2. lineinfile模块

主要功能:针对文件中的特定一行。

查询方式

ansible-navigator doc lineinfile -m stdout 

EXAMPLE 1

- name: Ensure SELinux is set to enforcing mode   ansible.builtin.lineinfile:		# lineinfile模块     path: /etc/selinux/config		# 文件路径     regexp: '^SELINUX='				# 匹配项(正则表达式语句)     line: SELINUX=enforcing			# 要插入/替换的行 

EXAMPLE 2

- name: Ensure the default Apache port is 8080   ansible.builtin.lineinfile:     path: /etc/httpd/conf/httpd.conf	# 文件路径     regexp: '^Listen '					# 匹配项(正则表达式语句)     insertafter: '^#Listen '			# 当找不到regexp项,才查找此项     line: Listen 8080					# 要插入/替换的行 

EXAMPLE 3

- name: Replace a localhost entry with our own   ansible.builtin.lineinfile:     path: /etc/hosts					# 文件路径     regexp: '^127\.0\.0\.1'				# 匹配项(正则表达式语句)     line: 127.0.0.1 localhost			# 要插入/替换的行     owner: root							# 修改文件的所有者     group: root							# 修改文件的所属组     mode: '0644'						# 修改文件的权限 

lineinfile模板列表项

列表项说明
path要修改的文件
regexp匹配项(可以使用正则表达式语句)
line文件中要插入/替换的行
insertafter需要和regexp一起使用,当regexp不匹配,则匹配此选项
owner修改文件的所有者
group修改文件的所属组
mode修改文件的权限
create默认情况下,如果操作文件不存在,会报错。设置create=True,当文件不存在时,会自动创建该文件

3. template模块

主要功能:可以获取变量的值和使用循环

查询方式

ansible-navigator doc template -m stdout 

EXAMPLE 1

- name: Template a file to /etc/file.conf   ansible.builtin.template:     src: /mytemplates/foo.j2		# 指定jinja2文件     dest: /etc/file.conf			# 操作的文件     owner: bin			# 修改文件所属者     group: wheel		# 修改文件所属组     mode: '0644'		# 设置文件权限 

EXAMPLE 2

- name: Update sshd configuration safely, avoid locking yourself out   ansible.builtin.template:     src: etc/ssh/sshd_config.j2		# 指定jinja2文件     dest: /etc/ssh/sshd_config		# 操作的文件     owner: root		# 设置文件所属者     group: root		# 设置文件所属组     mode: '0600'	# 设置文件权限     validate: /usr/sbin/sshd -t -f %s     backup: yes 

template模板列表项

列表项说明
src指定jinja2文件路径
dest操作的文件
owner设置文件所属者
group设置文件所属组
mode设置文件权限
validate执行命令前的验证选项
backup创建一个包含时间戳信息的备份文件,可以将原始文件找回,默认为False
newline_sequence指定用于模板文件的换行符序列,默认为\n

4. firewalld模块

主要功能:调整防火墙策略、富规则等与防火墙相关的操作

查询方式

ansible-navigator doc firewalld -m stdout 

EXAMPLE 1

- name: permit traffic in default zone for https service   ansible.posix.firewalld:     service: https				# 放行的服务名     permanent: yes				# 永久开启     state: enabled				# 添加服务 

EXAMPLE 2

- name: do not permit traffic in default zone on port 8081/tcp   ansible.posix.firewalld:     port: 8081/tcp			# 删除的端口号     permanent: yes			# 永久删除     state: disabled			# 删除放行端口 

Firewalld模板列表项

列表项说明
service添加/删除要放行的服务
port添加/删除要放行的端口
permanent永久生效【no/yes】
stateabsent删除、disabled关闭、enabled开启
rich_rule富规则
zone操作的区域
target防火墙区域目标
icmp_block在firewalld的区域中添加/删除的ICMP块
immediate立刻生效配置

5. dnf/yum模块

主要功能:安装、卸载、升级软件包,其中yum模块选项更多,dnf偏少,建议使用yum。

查询方式

ansible-navigator doc dnf -m stdout 

EXAMPLE 1

- name: Install the latest version of Apache   ansible.builtin.dnf:		     name: httpd			# 安装的服务名     state: latest		# 升级到最新版本 

EXAMPLE 2

- name: Install a modularity appstream with defined stream   ansible.builtin.dnf:     name: '@postgresql:9.6'		# 安装的软件包组     state: present 

state列表项的不同属性值

列表项说明命令比对
present确保安装install
latest升级到最新版本upgrade
absent删除remove
installed安装install

6. package_facts模块

主要功能:将已安装的软件包信息作为事实返回。

查询方式

ansible-navigator doc package_facts -m stdout 

EXAMPLE 1

- name: Gather the package facts   ansible.builtin.package_facts:     manager: auto		# 选择系统使用的包管理器 

manager列表项的不同属性值

列表项说明
auto自动匹配
rpmrpm包管理器
aptapt包管理器
portageportage包管理器
pkgpkg包管理器
pacmanpacman包管理器
apkAndroid应用程序包
pkg_infopkg_info包管理器

7. yum_repository模块

主要功能:配置yum仓库文件

查询方式

ansible-navigator doc yum_repository -m stdout 

模块名忘记查找方式

ansible-doc -l | grep yum 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

EXAMPLE 1

- name: Add multiple repositories into the same file (1/2)   ansible.builtin.yum_repository:     name: epel						# 仓库名称     description: EPEL YUM repo		# 仓库描述     file: external_repos		# 仓库文件名     baseurl: xxxx			# 仓库路径     gpgcheck: no		# 不启用gpgcheck 

yum_repository模板列表项

列表项说明
name仓库名称
description仓库描述信息
file仓库文件名
baseurl仓库邻居
gpgcheck是否对包执行GPG签名检查
gpgkeyGPG密钥文件的路径
enabled是否启用此仓库(默认为true)

8. rpm_key模块

主要功能:先rpm数据库添加/删除rpm公钥

查询方式

ansible-navigator doc rpm_key -m stdout 

EXAMPLE 1

- name: Import a key from a file   ansible.builtin.rpm_key:     state: present				# 添加     key: /path/to/key.gpg		# 导入的公钥路径 

state列表项的不同属性值

列表项说明
present导入
absent删除

9. user模块

主要功能:管理用户帐户和用户属性

查询方式

ansible-navigator doc user -m stdout 

EXAMPLE 1

- name: Add the user 'johnd'   ansible.builtin.user:     name: johnd				# 用户名     comment: John Doe		# 用户描述信息     uid: 1040				# UID     group: admin		# 所属组 

EXAMPLE 2

- name: Remove the user 'johnd'   ansible.builtin.user:     name: johnd		# 用户名     state: absent	# 删除     remove: yes		# 删除用户 

EXAMPLE 3

- name: Add the user 'james'    ansible.builtin.user:     name: james		# 用户名     shell: /bin/bash				# 指定shell     groups: admins,developers		# 附加组     append: yes		# 追加到附加组 

EXAMPLE 4

- name: Create a 2048-bit SSH key for user jsmith in ~jsmith/.ssh/id_rsa   ansible.builtin.user:     name: jsmith     generate_ssh_key: yes     ssh_key_bits: 2048     ssh_key_file: .ssh/id_rsa 

user模块列表项

列表项说明命令比对
name用户名
comment用户描述信息-c
uid设置用户ID-u
group设置用户所属组-g
shell默认shell终端-s
groups设置用户的附加组-G
appendyes:将用户添加到groups指定的组中,不会影响原来存在的附加组,相当于追加
no:将用户添加groups中,然后从其它组中移除,相当于替换
remove删除与用户关联的用户,需要和state=absent一起使用
home设置用户家目录-d
password设置用户密码-p
generate_ssh_key生成ssh密码
ssh_key_bits密钥的字节
ssh_key_file密码的存储路径
expires用户过期时间-e
password_expire_max更改密码的最大天数-f
password_expire_min更改密码的最小天数

10. group模块

主要功能:管理组

查询方式

ansible-navigator doc group -m stdout 

EXAMPLE 1

- name: Ensure group "somegroup" exists   ansible.builtin.group:     name: somegroup		# 指定组名     state: present		# 新建组 

EXAMPLE 2

- name: Ensure group "docker" exists with correct gid   ansible.builtin.group:     name: docker		# 指定组名     state: present		# 新建组     gid: 1750			# 指定GID 

state列表项的不同属性值

列表项说明命令比对
present新建组groupadd
absent删除组groupdel

group模块列表项

列表项说明
name指定组名
state对组的操作
gid指定组ID
system是否为系统组

11. at模块

主要功能:使用此模块可以安排命令或脚本文件在将来运行一次

at命令的特点就是计划任务的一次性特征,一旦设置的计划任务被执行,则该任务就会被从任务列表库中删除,因此常被用于仅需执行一次的工作。

查询方式

ansible-navigator doc at -m stdout 

EXAMPLE 1

- name: Schedule a command to execute in 20 minutes as root   ansible.posix.at:     command: ls -d / >/dev/null		# 执行的命令     count: 20			# 执行命令或脚本文件的间隔时间     units: minutes		# 执行的命令或脚本文件的单位类型 

EXAMPLE 2

- name: Match a command to an existing job and delete the job   ansible.posix.at:     command: ls -d / >/dev/null		# 执行的命令     state: absent		# 删除该任务 

EXAMPLE 3

- name: Schedule a command to execute in 20 minutes making sure it is uni>   ansible.posix.at:     command: ls -d / >/dev/null		# 执行的命令     count: 20		# 执行命令或脚本文件的单位数     units: minutes	# 执行的命令或脚本文件的单位类型     unique: yes		# 如果该工作存在则不添加,不存在则添加 

state列表项的不同属性值

列表项说明命令比对
present添加临时任务
absent删除临时任务at -r

utits列表项的不同属性值

列表项说明
minutes分钟
hours小时
days
weeks

at模块列表项

列表项说明
command要执行的命令
count间隔时间
units时间单位
uniqueyes:该任务存在则不添加;no:该任务不存在则添加
script_file要执行的脚本路径
state对一次性任务的操作

12. cron模块

主要功能:周期执行计划任务

查询方式

ansible-navigator doc cron -m stdout 

EXAMPLE 1

- name: Ensure a job that runs at 2 and 5 exists. Creates an entry like ">   ansible.builtin.cron:     name: "check dirs"		# 计划任务名     minute: "0"			# 分钟     hour: "5,2"			# 小时     job: "ls -alh > /dev/null"		# 执行的命令 

EXAMPLE 2

- name: Creates a cron file under /etc/cron.d   ansible.builtin.cron:     name: yum autoupdate		# 计划任务名     weekday: "2"		# 周     minute: "0"			# 分钟     hour: "12"			# 小时     user: root		# 修改crontab的用户     job: "YUMINTERACTIVE=0 /usr/sbin/yum-autoupdate"	# 任务     cron_file: ansible_yum-autoupdat	# 在指定路径下创建cron作业 

state列表项的不同属性值

列表项说明命令比对
present添加cron作业crontab -r
absent删除cron作业crontab -e

cron模块列表项

列表项说明
nameCron作业的标识
minute执行时间(分钟),不指定则默认为*
hour执行时间(小时),不指定则默认为*
day执行时间(日),不指定则默认为*
month执行时间(月),不指定则默认为*
weekday执行时间(周),不指定则默认为*
job要运行的命令
state对周期任务的操作
env管理crontab的环境变量
user指定cron作业的执行用户
insertafter在指定环境变量的声明之后插入环境变量,与state=present一起使用
cron_file指定cron作业的的存储路径

13. service模块

主要功能:控制受管主机上的服务

查询方式

ansible-navigator doc service -m stdout 

EXAMPLE 1

- name: Start service httpd, if not started   ansible.builtin.service:     name: httpd			# 服务名     state: started		# 启动服务 

EXAMPLE 2

- name: Enable service httpd, and not touch the state   ansible.builtin.service:     name: httpd			# 服务名     enabled: yes		# 加入到开启自启 

EXAMPLE 3

- name: Start service foo, based on running process /usr/bin/foo   ansible.builtin.service:     name: foo				# 服务名     pattern: /usr/bin/foo	# 指定服务进程     state: started			# 启动服务 

EXAMPLE 4

- name: Restart network service for interface eth0   ansible.builtin.service:     name: network			# 服务名     state: restarted		# 重启服务     args: eth0			# 指定网卡对象 

state列表项的不同属性值

列表项说明
reloaded重载服务
restarted重启服务
started启动服务
stopped停止服务

at模块列表项

列表项说明
name服务名
state对服务的操作
enabled是否设置为开机自启
pattern如果服务不响应状态命令,在ps中查找该选项值,如果找到则代表服务启动
args携带的其它参数

14. parted模块

parted模块默认不存在,需要安装对应的集合。

主要功能:使用’parted’命令行工具配置块设备分区

查询方式

ansible-navigator doc parted -m stdout 

EXAMPLE 1

- name: Create a new ext4 primary partition   community.general.parted:     device: /dev/sdb		# 操作的磁盘     number: 1				# 分区编号     state: present			# 新建分区     fs_type: ext4		# 分区类型 

EXAMPLE 2

- name: Create a new primary partition for LVM   community.general.parted:     device: /dev/sdb		# 操作的磁盘     number: 2				# 分区编号     flags: [ lvm ]		# 在分区上设置的标志的列表     state: present		# 新建分区     part_start: 1GiB	# 开始分区位置 

以事实变量的方式返回分区信息

- name: Read device information (always use unit when probing)   community.general.parted: device=/dev/sdb unit=MiB   register: sdb_info 

state列表项的不同属性值

列表项说明
absent新建分区
present删除分区
info返回设备信息

parted模块列表项

列表项说明
device操作的磁盘
number分区编号
state对分区的操作
unit分区的单位
fs_type为给定的分区设置文件系统类型
part_end分区的开始位置
part_start分区的结束位置

15. lvg模块

lvg模块默认不存在,需要安装对应的集合。

主要功能:创建、删除重新定位卷组

查询方式

ansible-navigator doc lvg -m stdout 

EXAMPLE 1

- name: Create a volume group on top of /dev/sda1 with physical extent size = 32MB   community.general.lvg:     vg: vg.services		# 卷组的名称     pvs: /dev/sda1		# 用作卷组成员设备的硬盘/分区     pesize: 32			# 块大小 

EXAMPLE 2

- name: Create a volume group on top of /dev/sdb with physical extent size = 128KiB   community.general.lvg:     vg: vg.services		# 卷组的名称     pvs: /dev/sdb		# 用作卷组成员设备的硬盘/分区     pesize: 128K # 块大小。必须是至少1扇区中的2个功率(扇区大小是VG中pesize当前使用的最大扇区大小),或者至少128KiB 

lvg模块列表项

列表项说明
vg卷组的名称
pvs用作卷组成员设备的硬盘/分区
state对卷组的操作
pvresize块大小

16. lvol模块

主要功能:创建、删除或调整逻辑卷大小

查询方式

ansible-navigator doc lvol -m stdout 

EXAMPLE 1

- name: Create a logical volume of 512m   community.general.lvol:     vg: firefly		# 指定卷组     lv: test		# 逻辑卷名     size: 512		# 逻辑卷大小 

EXAMPLE 2

- name: Create cache pool logical volume   community.general.lvol:     vg: firefly		# 指定卷组名称     lv: lvcache		# 逻辑卷的名称     size: 512m		# 逻辑卷的大小     opts: --type cache-pool		# 传递的参数 

EXAMPLE 3

 name: Extend the logical volume to consume all remaining space in the volume group   community.general.lvol:     vg: firefly			# 指定卷组的名称     lv: test			# 逻辑卷的名称     size: +100%FREE		# 逻辑卷的大小为:全部空余时间 

lvol模块列表项

列表项说明
vg卷组的名称
lv逻辑卷的名称
size逻辑卷的大小
pvs物理范围的大小
opts传递给lvcreate命令的选项
resizefs刷新逻辑卷的大小
force卷的减小或删除操作需要此开关。确保文件系统永远不会因错误而损坏/销毁。
shrink如果当前容量小于请求的容量,则缩小请求容量(默认yes)
snapshot快照卷的名称
active逻辑磁盘是否处于活跃状态,不活跃则主机不可见(默认yes)
thinpool精简卷名

17. filesystem模块

主要功能:创建文件系统

查询方式

ansible-navigator doc filesystem -m stdout 

EXAMPLE 1

- name: Create a ext4 filesystem on /dev/sdb1 and check disk blocks   community.general.filesystem:     fstype: ext4     dev: /dev/sdb1     opts: -cc 

EXAMPLE 2

- name: Blank filesystem signature on /dev/sdb1   community.general.filesystem:     dev: /dev/sdb1     state: absent 

EXAMPLE 3

- name: Create a filesystem on top of a regular file   community.general.filesystem:     dev: /path/to/disk.img     fstype: vfat 

state列表项的不同属性值

列表项说明
absent新建文件系统
present删除文件系统

filesystem模块列表项

列表项说明
fstype创建的文件系统
dev块设备的路径
opts传递给mkfs命令的选项列表
state对文件系统的操作
resizefs刷新空间

18. mount模块

主要功能:控制/etc/fstab中的配置

查询方式

ansible-navigator doc mount -m stdout 

EXAMPLE 1

- name: Mount DVD read-only   ansible.posix.mount:挂载点路径     path: /mnt/dvd		# 挂载点路径     src: /dev/sr0		# 挂载的设备     fstype: iso9660		# 文件系统类型(挂载设备的文件系统)     opts: ro,noauto		# 挂载选项     state: present		# 新增条目 

EXAMPLE 2

- name: Mount up device by UUID   ansible.posix.mount:     path: /home			# 挂载点     src: UUID=b3e48f45-f933-4c8e-a700-22a159ec9077     fstype: xfs			# 文件系统类型(挂载设备的文件系统)     opts: noatime		# 挂载选项     state: present		# 新增条目 

state列表项的不同属性值

列表项说明
absent删除fstab文件中条目,卸载设备并删除挂载点
present只写入fstab文件中
mounted设备会被主动挂载并写入fstab文件,如果挂载点不存在,会创建挂载点
unmounted卸载设备,但不修改fstab文件
remounted强制刷新设备并重新挂载

filesystem模块列表项

列表项说明
path挂载点路径
src挂载的设备
fstype文件系统类型(挂载设备的文件系统)
opts挂载选项
state挂载的相关操作
boot是否在引导时间挂载(默认True)

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!