banner
NEWS LETTER

Ansible模块参数解释以及常用命令

Scroll down

本文作者:丁辉

Ansible模块参数解释以及常用命令

太多了,只记少数吧,累~

Ansible 基础命令

  • 查看 Ansible 的可用模块

    1
    ansible-doc -l
  • 测试主机的连通性

    1
    ansible all -m ping
  • 查看组下所有的IP

    1
    ansible all --list

使用 -i 指定 hosts 文件位置

1
-i /etc/ansible/hosts 

Ansible-Playbook 命令

  • 执行 Playbook

    1
    ansible-playbook demo.yml
  • 指定任务执行 Playbook

    1
    ansible-playbook demo.yml --start-at-task="指定任务"

Ansible 常用模块 Command

常用参数

参数 解释
command 要在远程主机上执行的命令。
creates 如果指定的文件或目录存在,则命令不会被执行。
removes 如果指定的文件或目录不存在,则命令不会被执行。
chdir 在执行命令之前,将当前工作目录更改为指定的目录。
executable 用于执行命令的可执行文件的路径。
warn 控制命令失败时的错误消息显示方式。
stdin 将输入发送到命令的标准输入。
stdin_add_newline 在发送到标准输入之前是否添加新行。
strip_empty_ends 控制在输出中删除空行的方式。
free_form 允许直接传递要执行的命令,无需使用command关键字。
  • 先切换目录,执行命令

    1
    ansible all -m command -a 'chdir=/mnt ls -la'
  • 检查节点的内存情况

    1
    ansible -m command -a "free -m " 'all'

Ansible 常用模块 Shell

常用参数

参数 解释
cmd 要在远程主机上执行的命令。
creates 如果指定的文件或目录存在,则命令不会被执行。
removes 如果指定的文件或目录不存在,则命令不会被执行。
chdir 在执行命令之前,将当前工作目录更改为指定的目录。
executable 用于执行命令的可执行文件的路径。
warn 控制命令失败时的错误消息显示方式。
stdin 将输入发送到命令的标准输入。
stdin_add_newline 在发送到标准输入之前是否添加新行。
strip_empty_ends 控制在输出中删除空行的方式。
free_form 允许直接传递要执行的命令,无需使用cmd关键字。
executable 用于执行命令的可执行文件的路径。
creates 如果指定的文件或目录存在,则命令不会被执行。
removes 如果指定的文件或目录不存在,则命令不会被执行。
  • 使用 /bin/bash 执行命令

    1
    ansible all -m shell -a 'executable=/bin/bash ls -la /mnt'

Ansible 常用模块 Script

常用参数

参数 解释
script 要在远程主机上执行的脚本文件的路径。
creates 如果指定的文件或目录存在,则脚本不会被执行。
removes 如果指定的文件或目录不存在,则脚本不会被执行。
chdir 在执行脚本之前,将当前工作目录更改为指定的目录。
warn 控制脚本失败时的错误消息显示方式。
executable 用于执行脚本的解释器的路径。
stdin 将输入发送到脚本的标准输入。
stdin_add_newline 在发送到标准输入之前是否添加新行。
strip_empty_ends 控制在输出中删除空行的方式。
free_form 允许直接传递要执行的脚本路径,无需使用script关键字。
  • 编写一个脚本

    1
    2
    3
    cat << EOF > demo.sh
    date
    EOF
  • 执行脚本

    1
    ansible all -m script -a "/etc/ansible/demo.sh"

Ansible 常用模块 Copy

常用参数

参数 解释
src 源文件路径。
dest 目标文件路径。
backup 是否备份目标文件。
remote_src 如果为true,则从控制节点的文件系统复制文件到远程主机。
checksum 控制是否使用校验和来判断文件是否需要复制。
content 如果为true,则在Ansible控制节点上生成文件内容并将其传输到远程主机上。
directory_mode 在创建目录时设置权限模式。
force 强制复制文件,即使目标文件存在。
owner 设置目标文件的所有者。
group 设置目标文件的所属组。
mode 设置目标文件的权限模式。
seuser 设置目标文件的SELinux用户。
serole 设置目标文件的SELinux角色。
setype 设置目标文件的SELinux类型。
selevel 设置目标文件的SELinux等级。
follow 是否跟随符号链接。
  • 拷贝文件

    1
    ansible all -m copy -a "src=/etc/ansible/demo.sh owner=root mode=777 dest=/mnt/demo.sh backup=yes"

Ansible 常用模块 File

常用参数

参数 解释
path 文件或目录的路径。
state 文件或目录的状态。可选值包括:file、directory、link、hard、absent。
owner 设置文件或目录的所有者。
group 设置文件或目录的所属组。
mode 设置文件或目录的权限模式。
dest 用于创建符号链接的目标文件路径。
src 用于创建硬链接的源文件路径。
state 设置文件或目录的状态。
follow 是否遵循符号链接。
recurse 是否递归操作,用于目录。
directory_mode 用于设置目录的权限模式。
force 是否强制执行。
selevel 设置目标文件的SELinux等级。
serole 设置目标文件的SELinux角色。
setype 设置目标文件的SELinux类型。
seuser 设置目标文件的SELinux用户。
  • 创建文件

    1
    ansible all -m file -a 'path=/mnt/demofile state=touch'
  • 创建目录

    1
    ansible all -m file -a 'path=/mnt/demodir state=directory'
  • 修改文件的所有人

    1
    ansible all -m file -a 'path=/mnt/demofile owner=docker'
  • 删除文件或目录

    1
    2
    ansible all -m file -a 'path=/mnt/demofile state=absent'
    ansible all -m file -a 'path=/mnt/demodir state=absent'

Ansible 常用模块 Archive

常用参数

参数 解释
path 要打包的文件或目录的路径。
dest 打包文件的目标路径,包括文件名和扩展名。
format 打包格式,可选值包括:tar、gz、bz2、tar.gz、tar.bz2。
owner 设置打包文件的所有者。
group 设置打包文件的所属组。
mode 设置打包文件的权限模式。
remote_src 如果为true,则从控制节点的文件系统打包文件到远程主机。
remove_path 在归档中排除的路径的前缀。
exclude 排除指定的文件或目录。
extra_opts 传递给归档命令的额外选项。
  • 打包文件

    1
    ansible all -m archive -a "path=/mnt/demo.sh dest=/mnt/demo.gz format=gz"

    解压使用

    1
    gzip -d demo.gz

Ansible 常用模块 Cron

常用参数

参数 解释
name Cron任务的名称。
minute 设置分钟字段。可接受数字(0-59)、星号(*,表示每分钟)或范围(例如:0-30,表示0到30分钟之间)。
hour 设置小时字段。可接受数字(0-23)、星号(*,表示每小时)或范围。
day 设置天字段。可接受数字(1-31)、星号(*,表示每天)或范围。
month 设置月份字段。可接受数字(1-12)、星号(*,表示每月)或范围。
weekday 设置星期字段。可接受数字(0-6,0代表星期日)、星号(*,表示每天)或范围。
job Cron任务要执行的命令或脚本。
state 设置Cron任务的状态。可选值包括:present(存在)或absent(不存在)。
disabled 是否禁用Cron任务。如果设置为yes,则Cron任务将被禁用。
user 设置Cron任务的所有者。
minute 设置分钟字段。
hour 设置小时字段。
day 设置天字段。
month 设置月份字段。
weekday 设置星期字段。
special_time 设置特殊时间值,如@reboot(重启时运行)或@daily(每天运行)。
  • 生成定时任务

    1
    ansible all -m cron -a 'job="echo hello" name=demo minute=*/2'
  • 禁止该定时任务

    1
    ansible all -m cron -a 'job="echo hello" name=demo minute=*/2 disabled=yes'
  • 重新开启该定时任务

    1
    ansible all -m cron -a 'job="echo hello" name=demo minute=*/2 disabled=no' 
  • 删除定时任务

    1
    ansible all -m cron -a 'job="echo hello" name=demo minute=*/2 state=absent'

Ansible 常用模块 Yum

常用参数

参数 解释
name 指定要安装或删除的软件包名称。
state 指定软件包的状态。可选值包括:present、latest、absent。
enablerepo 指定要启用的存储库。
disablerepo 指定要禁用的存储库。
disable_excludes 指定要禁用的软件包类型。
update_cache 是否更新缓存。
disable_gpg_check 是否禁用GPG检查。
installroot 安装软件包的根目录。
security 是否仅安装安全更新。
bugfix 是否只安装修复错误的更新。
enhancement 是否只安装增强更新。
ts 是否使用指定的事务ID。
  • 安装软件

    1
    ansible all -m yum -a "name=wget state=present"
  • 卸载软件

    1
    ansible all -m yum -a "name=wget state=absent"

Ansible 常用模块 Dnf

常用参数

参数 解释
name 指定要安装或删除的软件包名称。
state 指定软件包的状态。可选值包括:present、latest、absent。
enablerepo 指定要启用的存储库。
disablerepo 指定要禁用的存储库。
disable_excludes 指定要禁用的软件包类型。
update_cache 是否更新缓存。
disable_gpg_check 是否禁用GPG检查。
installroot 安装软件包的根目录。
security 是否仅安装安全更新。
bugfix 是否只安装修复错误的更新。
enhancement 是否只安装增强更新。
ts 是否使用指定的事务ID。

Ansible 常用模块 Service

常用参数

参数 解释
name 指定要管理的服务名称。
state 指定服务的状态。可选值包括:started、stopped、restarted、reloaded、enabled、disabled。
enabled 是否设置服务开机自启动。
pattern 用于匹配要操作的服务的模式。
sleep 在重新启动服务之前等待的时间(以秒为单位)。
arguments 传递给服务启动脚本的额外参数。
runlevel 设置服务在特定运行级别下的启用状态。
daemon_reload 在重启或重新加载服务之后是否重新加载守护程序。
force 是否强制执行操作。
  • 重启服务

    1
    ansible all -m service -a "name=docker state=restarted"

Ansible 常用模块 User

常用参数

参数 解释
name 用户名。
state 用户的状态。可选值包括:present、absent。
uid 用户的UID。
password 用户的密码。
group 用户所属的主组。
groups 用户所属的其他组。
append 是否追加用户到附加的组中。
shell 用户的登录Shell。
home 用户的主目录。
move_home 是否移动用户的主目录。
createhome 是否创建用户主目录。
system 是否创建系统用户。
update_password 是否更新密码。
expire 设置用户的账号过期日期。
remove 是否删除用户的主目录。
  • 创建用户

    1
    ansible all -m user -a "name=demo state=present"
  • 删除用户

    1
    ansible all -m user -a "name=demo state=absent"

I'm so cute. Please give me money.

其他文章
cover
Ansible加密
  • 70/01/01
  • 00:00
  • Kubernetes-CICD
cover
Ansible编写与配置
  • 70/01/01
  • 00:00
  • Kubernetes-CICD
目录导航 置顶
  1. 1. Ansible模块参数解释以及常用命令
    1. 1.1. Ansible 基础命令
    2. 1.2. Ansible-Playbook 命令
    3. 1.3. Ansible 常用模块 Command
    4. 1.4. Ansible 常用模块 Shell
    5. 1.5. Ansible 常用模块 Script
    6. 1.6. Ansible 常用模块 Copy
    7. 1.7. Ansible 常用模块 File
    8. 1.8. Ansible 常用模块 Archive
    9. 1.9. Ansible 常用模块 Cron
    10. 1.10. Ansible 常用模块 Yum
    11. 1.11. Ansible 常用模块 Dnf
    12. 1.12. Ansible 常用模块 Service
    13. 1.13. Ansible 常用模块 User
请输入关键词进行搜索