Ansible语法与模块

目录

如何查询帮助

核心模块

社区和特定平台模块

其他常用模块

语法总结

Ansible 命令行工具

1. ansible

2. ansible-playbook

3. ansible-vault

4. ansible-galaxy

5.ansible-doc

6.ansible-config

7.ansible-pull

8.ansible-console


如何查询帮助

ansible-doc -l                            #获取全部模块的信息
ansible-doc -s MOD_NAME     #获取指定模块的使用帮助

核心模块

模块类别 常见模块 用途描述
命令与脚本 command 执行指定的命令, 不经过Shell
shell 在Shell中执行命令
raw 执行一段不经过处理的命令
script 将本地脚本上传到远程并执行
文件操作 copy 将文件从控制节点复制到目标节点
fetch 将文件从远程节点复制到控制节点
file 管理文件的属性(权限、创建/删除等)
template 渲染Jinja2模板并复制到远程主机
用户与权限 user 管理用户账号
group 管理用户组
数据库操作 mysql_db 管理MySQL数据库
mysql_user 管理MySQL用户
云服务 ec2 管理AWS EC2实例
azure_rm 管理Azure资源
软件管理 yum 使用YUM包管理器安装/卸载软件
apt 使用APT包管理器安装/卸载软件
网络操作 uri 与Web服务进行交互
get_url 从指定URL下载文件
firewalld 管理firewalld防火墙服务

社区和特定平台模块

模块类别 常见模块 用途描述
网格管理 docker 管理Docker容器
k8s 管理Kubernetes资源
openstack 管理OpenStack资源
云服务 gcp 管理Google Cloud Platform资源
监控与告警 nagios 管理Nagios监控系统
zabbix 管理Zabbix监控系统
配置管理 consul_kv 管理Consul键值存储
etcd3 管理Etcd V3键值存储

其他常用模块

模块类别 常见模块 用途描述
系统服务 service 管理系统服务(启动/停止/重启)
systemd 管理Systemd服务
磁盘与文件系统 mount 挂载和卸载文件系统
lvol 管理逻辑卷
时间与任务计划 cron 管理cron定时任务
at 管理at定时任务

上述表格涵盖了Ansible的一些常用模块及其用途。当然,Ansible的模块远不仅限于这些,实际使用中可以根据需要查阅Ansible官方文档以获取更多详细信息。

语法总结

Ansible 命令行工具

1. ansible

用于在单个任务上测试和运行命令,通常用于快速验证或简单操作。

语法:

ansible <主机组> -m <模块> -a "<模块参数>" [选项]

示例:

# 在所有主机上执行 ping 模块,验证连接是否正常
ansible all -m ping

# 在 webservers 组上的所有主机上执行命令,查看 /etc 目录内容
ansible webservers -m command -a "ls /etc"

常用选项

-a MODULE_ARGS  模块的参数,如果执行默认COMMAND的模块,即是命令参数,如: “date”,“pwd”等等

-k--ask-pass  ask for SSH password。登录密码,提示输入SSH密码而不是假设基于密钥的验证

--ask-su-pass  ask for su password。su切换密码

-K--ask-sudo-pass  ask for sudo password。提示密码使用sudo,sudo表示提权操作

--ask-vault-pass  ask for vault password。假设我们设定了加密的密码,则用该选项进行访问

-B SECONDS  后台运行超时时间

-C  模拟运行环境并进行预运行,可以进行查错测试

-c CONNECTION  连接类型使用

-f FORKS  并行任务数,默认为5

-i INVENTORY  指定主机清单的路径,默认为/etc/ansible/hosts

--list-hosts  查看有哪些主机

-m MODULE_NAME  执行模块的名字,默认使用 command 模块,所以如果是只执行单一命令可以不用 -m参数

-o  压缩输出,尝试将所有结果在一行输出,一般针对收集工具使用

-s  用 sudo 命令

-U SUDO_USER  指定 sudo 到哪个用户,默认为 root 用户

-T TIMEOUT  指定 ssh 默认超时时间,默认为10s,也可在配置文件中修改

-u REMOTE_USER  远程用户,默认为 root 用户

-v  查看详细信息,同时支持-vvv-vvvv可查看更详细信息

2. ansible-playbook

用于运行一个或多个 Playbooks。

语法:

ansible-playbook <playbook 文件> [选项]

示例:

# 执行 site.yml playbook
ansible-playbook site.yml

# 执行 playbook 并指定库存文件和限单主机
ansible-playbook -i inventory/production site.yml --limit webservers

常用选项

  • -i <库存文件>:指定主机清单文件。
  • --private-key <密钥文件>:指定 SSH 密钥。
  • -u <用户名>:指定远程主机的用户。
  • --ask-become-pass:提示输入 sudo 密码。
  • --tags <标签>:只运行带有指定标签的任务。
  • --skip-tags <标签>:跳过带有指定标签的任务。
  • --check:进行干运行(Dry Run),不实际执行任务。

3. ansible-vault

用于加密/解密敏感信息,例如密码。

语法:

# 创建新的加密文件
ansible-vault create <文件>

# 编辑加密文件
ansible-vault edit <文件>

# 查看加密文件内容
ansible-vault view <文件>

# 加密现有文件
ansible-vault encrypt <文件>

# 解密文件
ansible-vault decrypt <文件>

示例:

# 创建一个新的加密文件
ansible-vault create secrets.yml

# 解密文件
ansible-vault decrypt secrets.yml

# 编辑加密文件
ansible-vault edit secrets.yml

4. ansible-galaxy

用于管理 Ansible 角色。可以从 Ansible Galaxy 下载安装共享的角色。

语法:

ansible-galaxy <子命令> [选项]

常用子命令和示例:

  • install:安装角色
  ansible-galaxy install <角色名>
  • remove:删除角色
  ansible-galaxy remove <角色名>
  • list:列出已安装的角色
  ansible-galaxy list

示例:

# 安装一个名为 geerlingguy.nginx 的角色
ansible-galaxy install geerlingguy.nginx

# 列出已安装的角色
ansible-galaxy list

5.ansible-doc

查看 Ansible 模块的文档。例如:

ansible-doc <模块名>

6.ansible-config

用于查看和设置 Ansible 配置选项。例如:

ansible-config view

7.ansible-pull

允许从源代码管理系统中拉取 Ansible Playbook 并在目标主机上执行。例如:

ansible-pull -U <仓库URL> <playbook.yml>

8.ansible-console

提供交互式 Shell,用于在远程主机上执行任务。例如:

ansible-console <主机模式>

相关推荐

  1. Ansible语法模块

    2024-06-08 04:10:02       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-08 04:10:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-08 04:10:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-08 04:10:02       82 阅读
  4. Python语言-面向对象

    2024-06-08 04:10:02       91 阅读

热门阅读

  1. 从外部访问类中的私有成员

    2024-06-08 04:10:02       28 阅读
  2. kafka连接zookeeper失败导致无法启动

    2024-06-08 04:10:02       28 阅读
  3. 机器学习 - 常见问题与解决方案

    2024-06-08 04:10:02       29 阅读