您的位置:首页 > 财经 > 产业 > Ansible语法与模块

Ansible语法与模块

2024/11/18 4:29:32 来源:https://blog.csdn.net/Lzcsfg/article/details/139509508  浏览:    关键词: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     #获取指定模块的使用帮助
查看官⽹: Ansible中文权威指南 — 国内最专业的Ansible中文官方学习手册

核心模块

模块类别常见模块用途描述
命令与脚本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 <主机模式>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com