ansible模块示例及说明

  1. 文件操作:

复制文件到目标主机:

  • name: Copy a file

ansible.builtin.copy:

src: /path/to/source/file

dest: /path/to/destination/file

创建目录:

  • name: Create a directory

ansible.builtin.file:

path: /path/to/directory

state: directory

删除文件或目录:

  • name: Remove a file or directory

ansible.builtin.file:

path: /path/to/file_or_directory

state: absent

  1. 软件包管理:

安装软件包:

  • name: Install a package

ansible.builtin.package:

name: package_name

state: present

卸载软件包:

  • name: Remove a package

ansible.builtin.package:

name: package_name

state: absent

  1. 服务管理:

启动服务:

  • name: Start a service

ansible.builtin.service:

name: service_name

state: started

停止服务:

  • name: Stop a service

ansible.builtin.service:

name: service_name

state: stopped

重新启动服务:

  • name: Restart a service

ansible.builtin.service:

name: service_name

state: restarted

  1. 用户管理:

创建用户:

  • name: Create a user

ansible.builtin.user:

name: username

state: present

修改用户密码:

  • name: Change user password

ansible.builtin.user:

name: username

password: "{{ 'new_password' | password_hash('sha512') }}"

删除用户:

  • name: Remove a user

ansible.builtin.user:

name: username

state: absent

  1. 远程命令执行:

执行 Shell 命令:

  • name: Run a shell command

ansible.builtin.shell: ls -l /path/to/directory

执行远程脚本:

  • name: Run a remote script

ansible.builtin.script:

src: /path/to/script.sh

  1. 系统信息:

获取主机信息:

  • name: Gather system facts

ansible.builtin.setup:

显示主机名:

  • name: Display hostname

ansible.builtin.debug:

var: ansible_hostname

  1. 网络配置:

配置网络接口:

  • name: Configure network interface

ansible.builtin.interface:

name: eth0

state: up

配置静态路由:

  • name: Configure static route

ansible.builtin.route:

dest: 10.0.0.0

netmask: 255.255.255.0

gateway: 192.168.1.1

  1. 文件压缩和解压:

压缩文件或目录:

  • name: Compress a file or directory

ansible.builtin.archive:

path: /path/to/source

dest: /path/to/destination/file.tar.gz

format: gz

解压文件或目录:

  • name: Extract an archive

ansible.builtin.unarchive:

src: /path/to/source/file.tar.gz

dest: /path/to/destination

remote_src: yes

  1. 数据库操作:

执行 SQL 查询:

  • name: Execute SQL query

ansible.builtin.mysql_db:

login_user: db_user

login_password: db_password

database: db_name

state: query

query: "SELECT * FROM table_name;"

创建数据库:

  • name: Create a database

ansible.builtin.mysql_db:

login_user: db_user

login_password: db_password

name: new_db_name

state: present

  1. 日志记录和输出:

记录日志:

  • name: Log a message

ansible.builtin.debug:

msg: "This is a log message."

打印变量值:

  • name: Print variable value

ansible.builtin.debug:

var: my_variable

  1. 添加主机
  • name: 添加主机到 Ansible 清单

hosts: localhost

tasks:

  • name: 添加新主机

ansible.builtin.add_host:

hostname: "{{ dynamic_hostname }}" # 新主机的主机名

ansible_ssh_host: "{{ dynamic_ip }}" # 新主机的 IP 地址

delegate_to: localhost # 在本地主机上执行此任务

  • name: 在新主机上执行命令

hosts: "{{ dynamic_hostname }}" # 使用新添加的主机

tasks:

  • name: 执行命令

command: echo "Hello from the new host"

  1. ansible.builtin.archive:

说明:该模块用于创建和提取存档文件,支持常见的存档格式如 tar 和 zip。

示例用法:创建一个 tar 存档文件。

  • name: 创建 tar 存档文件

ansible.builtin.archive:

src: /path/to/source

dest: /path/to/destination/archive.tar

format: tar

13.ansible.builtin.assert:

说明:此模块用于添加断言,以验证任务的状态或条件。如果断言失败,任务将失败。

示例用法:验证文件是否存在。

  • name: 验证文件存在

ansible.builtin.assert:

that:

  • "ansible_facts'file_exists' == True"

vars:

ansible_facts:

file_exists: true

14.ansible.builtin.async_status:

说明:用于检查异步任务的状态。

示例用法:检查异步任务的状态。

  • name: 检查异步任务状态

ansible.builtin.async_status:

jid: "{{ async_result.ansible_job_id }}"

register: async_check

  • debug:

var: async_check

15.ansible.builtin.at:

说明:用于在特定时间执行任务的模块。

示例用法:使用 at 模块执行命令。

  • name: 使用 at 模块执行命令

ansible.builtin.at:

command: "echo 'Hello, world' > /tmp/hello.txt"

count: 1

units: hours

value: 1

job_file: /tmp/at_job.txt

16.ansible.builtin.atd:

说明:用于启用或禁用远程主机上的 at 服务。

示例用法:启用 at 服务。

  • name: 启用 at 服务

ansible.builtin.atd:

state: started

相关推荐
.道阻且长.16 分钟前
Linux 基本开发工具:编辑器vim,配置vim
linux·运维·服务器·职场和发展·编辑器·vim·1024程序员节
江屿风21 分钟前
【Linux-System】【System V共享内存:从原理到实战的完整解析】流食般投喂
linux·运维·服务器·笔记·系统架构·1024程序员节
迷途之人不知返9 小时前
【文件系统】-4-软硬连接
linux
老歌老听老掉牙9 小时前
WorkBuddy 如何接入 PrePoMax 的 MCP 服务器
服务器·ai·mcp
Linux_cy9 小时前
服务器管理工具哪个好用?我用了七八个
运维·服务器·javascript·python·ssh·面板·gmssh
1234567890@world11 小时前
正点原子 ATK-DLRK3568 嵌入式Linux系统开发手册V1.3 详细总结
linux·stm32·单片机
sun_weitao11 小时前
极简版 MCP 工具实现方案
java·linux·服务器
爱和冰阔落13 小时前
【Linux】线程安全进阶:单例模式、可重入函数与死锁排查
linux·运维·安全·单例模式
先知后行。13 小时前
pimpl
linux
吉普赛的歌13 小时前
如何设置服务器固定时间点自动重启一次
运维·服务器