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

相关推荐
JhonKI8 分钟前
【Linux网络】深入解析I/O多路转接 - Select
linux·运维·网络
伤不起bb9 分钟前
Nginx 核心功能
linux·服务器·nginx
The-Dog1 小时前
Linux命令使用记录(自用)
linux
识途老码1 小时前
什么是单臂路由
运维·服务器·网络·单臂路由
Linux运维老纪1 小时前
Ansible 铸就 Linux 安全之盾(Ansible Builds Linux Security Shield)
linux·服务器·网络·安全·云计算·ansible·运维开发
唐青枫2 小时前
Linux apropos 命令使用详解
linux
刘大猫.2 小时前
Centos Ubuntu RedOS系统类型下查看系统信息
linux·ubuntu·centos·ip·ifconfig·redos·查询系统信息
YuSun_WK3 小时前
程序&进程&多任务&线程
linux·运维·服务器
HeLLo_a1194 小时前
第11章 安全网络架构和组件(一)
linux·服务器·网络
南川琼语4 小时前
TCP概念+模拟tcp服务器及客户端
linux·服务器·网络·tcp/ip