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

相关推荐
龙域集团2 分钟前
使用最新宝塔面板安装青龙面板(Docker 版)
服务器·docker·容器
va学弟11 分钟前
网络编程核心基础
运维·服务器·网络
热心市民R先生18 分钟前
对象字典(OD)、服务数据对象(SDO)、过程数据对象(PDO)(三)
服务器·信息与通信
Source.Liu23 分钟前
【Ubuntu】关机重启命令
linux·运维·ubuntu
iCode50424 分钟前
CentOS Stream 9修改静态IP
linux·tcp/ip·centos
不怕犯错,就怕不做42 分钟前
RK3562+RK817在关机状态下提升充电电流至2A解决方案
linux·驱动开发·嵌入式硬件
白云千载尽1 小时前
ssh远程连接之后的scp命令工具来操作文件
运维·服务器·ssh
m0_564914921 小时前
Altium Designer,AD如何修改原理图右下角图纸标题栏?如何自定义标题栏?自定义原理图模版的使用方法
java·服务器·前端
输出输入1 小时前
git和git hub区别
服务器
陈聪.2 小时前
HRCE简单实验
linux·运维·数据库