RedHat9 | Ansible 模块参数记录

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)
  • 44
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meaauf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值