自动化利器 Ansible - 从了解到应用( 二 )

Ansible 执行文件$ ll /usr/bin/*ansible*# 相关执行文件lrwxrwxrwx 1 root root20 Mar 172022 /usr/bin/ansible -> /usr/bin/ansible-2.7lrwxrwxrwx 1 root root20 Mar 172022 /usr/bin/ansible-2 -> /usr/bin/ansible-2.7-rwxr-xr-x 1 root root5933 Jan 162022 /usr/bin/ansible-2.7lrwxrwxrwx 1 root root7 Mar 172022 /usr/bin/ansible-config -> ansible-rwxr-xr-x 1 root root 13432 Jan 162022 /usr/bin/ansible-connectionlrwxrwxrwx 1 root root28 Mar 172022 /usr/bin/ansible-console -> /usr/bin/ansible-console-2.7lrwxrwxrwx 1 root root28 Mar 172022 /usr/bin/ansible-console-2 -> /usr/bin/ansible-console-2.7lrwxrwxrwx 1 root root7 Mar 172022 /usr/bin/ansible-console-2.7 -> ansiblelrwxrwxrwx 1 root root24 Mar 172022 /usr/bin/ansible-doc -> /usr/bin/ansible-doc-2.7lrwxrwxrwx 1 root root24 Mar 172022 /usr/bin/ansible-doc-2 -> /usr/bin/ansible-doc-2.7lrwxrwxrwx 1 root root7 Mar 172022 /usr/bin/ansible-doc-2.7 -> ansiblelrwxrwxrwx 1 root root27 Mar 172022 /usr/bin/ansible-galaxy -> /usr/bin/ansible-galaxy-2.7lrwxrwxrwx 1 root root27 Mar 172022 /usr/bin/ansible-galaxy-2 -> /usr/bin/ansible-galaxy-2.7lrwxrwxrwx 1 root root7 Mar 172022 /usr/bin/ansible-galaxy-2.7 -> ansiblelrwxrwxrwx 1 root root7 Mar 172022 /usr/bin/ansible-inventory -> ansiblelrwxrwxrwx 1 root root29 Mar 172022 /usr/bin/ansible-playbook -> /usr/bin/ansible-playbook-2.7lrwxrwxrwx 1 root root29 Mar 172022 /usr/bin/ansible-playbook-2 -> /usr/bin/ansible-playbook-2.7lrwxrwxrwx 1 root root7 Mar 172022 /usr/bin/ansible-playbook-2.7 -> ansiblelrwxrwxrwx 1 root root25 Mar 172022 /usr/bin/ansible-pull -> /usr/bin/ansible-pull-2.7lrwxrwxrwx 1 root root25 Mar 172022 /usr/bin/ansible-pull-2 -> /usr/bin/ansible-pull-2.7lrwxrwxrwx 1 root root7 Mar 172022 /usr/bin/ansible-pull-2.7 -> ansiblelrwxrwxrwx 1 root root26 Mar 172022 /usr/bin/ansible-vault -> /usr/bin/ansible-vault-2.7lrwxrwxrwx 1 root root26 Mar 172022 /usr/bin/ansible-vault-2 -> /usr/bin/ansible-vault-2.7lrwxrwxrwx 1 root root7 Mar 172022 /usr/bin/ansible-vault-2.7 -> ansible$Ansible 常见模块Ansible基于模块工作,本身没有批量部署的能力 。可以理解为Ansilbe提供了框架来运行具备批量部署能力的指定功能模块 。
# 通过 ansilbe-doc 命令查看模块帮助信息,类似man命令ansible-doc -l# List available pluginsansible-doc -l | grep "copy"# 查找名称包含copy字符的模块ansible-doc <module_name># 显示模块的说明信息ansible-doc -s <module_name># Show playbook snippet for specified plugin(s)# 常见模块## command在指定主机上执行命令(默认模块),不支持变量、管道、重定向等shell特性## ping测试指定主机连接性## shell在指定主机上执行命令或运行脚本,打开远程主机的shell进程的一个子shell运行命令 , 支持shell的变量、管道、重定向等特性## script调用本地脚本在远程主机执行## stat获取文件信息## setup主机系统信息,收集facts## copy复制文件到远程主机的指定位置## fetch复制指定主机的文件到本地## get_url在远程主机下载指定的url地址,支持文件校验## file设置文件属性## cron设置计划任务## group管理用户组## user管理用户## service管理服务状态## yum管理程序包## hostname管理主机名称## git代码及版本管理## B后台管理## assemble文件组装 , 可以将多份配置文件组装成一份配置文件## iniini文件管理模块## urlweb请求,发送HTTP协议请求并得到返回的状态码## aptAPT包管理模块Ansible 命令讲解Ansible 命令集# 以下所有命令均可使用`-h`参数获取帮助信息ansible# Define and run a single task 'playbook' against a set of hosts# 常用命令ansible-config# View ansible configuration.ansible-console# REPL console for executing Ansible tasks.# 交互式工具,相当linux中的shell,不常用ansible-doc# plugin documentation tool# 查询模块的文档说明,类似linux中的man,常用命令ansible-galaxy# Perform various Role and Collection related operations.ansible-inventory# Show Ansible inventory information, by default it uses the inventory script JSON formatansible-playbook# Runs Ansible playbooks, executing the defined tasks on the targeted hosts.# 执行系列任务,类似linux中的sh , 常用命令ansible-pull# pulls playbooks from a VCS repo and executes them for the local hostansible-vault# encryption/decryption utility for Ansible data filesAnsible 常用命令集# 常用命令集ansible# Ansible指令的核心部分,主要用于执行ad-hoc命令,也就是单条命令# 默认使用command模块,默认的使用模块可以在ansible.cfg中进行定义ansible-doc# 用于查看模块信息,# 参数 -l 列出可用的插件# 参数 -s 用于查看指定模块的用法 , 例如“ansible-doc -s shell”ansible-playbook# 读取playbook文件内容并执行定义的任务# 对于固化的需求通常采用playbook方式定义和实现ansible-vault# 主要应用于包含敏感信息的场景,可以加密和解密敏感信息# 经过加密后的playbook,编辑时需要输入事先设定的密码才能打开# 使用 --ask-vault-pass 参数执行加密后的playbook文件ansible-config# 查看ansible的配置# 参数 list 打印所有配置参数,参数 view 查看配置文件# 结合 grep 使用可以获取具体配置信息 , 例如“ansible-config view |grep -v "#" |grep host_key_checking”

推荐阅读