一、【写在前面】
前面断更了几天,笔者被流感给干倒了,去拍了个核磁,给我脑子干成脱髓鞘了,也不知道是之前新冠导致的还是如何,哎要变成愚蠢的低级动物了……稍微恢复一点体力,今天赶快来博客水一水文章。
ansible是一种常用的批量管理工具,像这种直接拿来用的工具,特别容易被很多的概念干懵,不过稍微用心看一下倒是很容易理解,这篇文章介绍一下Ansible常用的几个大块命令
二、【常用命令】
1. ansible:用于运行 Ad-hoc 命令的主命令。可以在远程主机上执行单个命令。
ansible all -i inventory -m shell -a 'ls -la /etc/'
这个命令会根据inventory中的机器记录,对远端执行一个ls命令
2. ansible-config:用于管理 Ansible 的配置文件,例如查看配置、修改配置项等。
ansible-config view
该命令可以查看当前 Ansible 的配置信息
3. ansible-console:提供一个交互式的 Ansible 控制台,允许用户在控制台中执行命令。
ansible-console -i inventory_file
这个命令会根据主机清单文件创建一个交互窗口
4. ansible-doc:用于查看 Ansible 模块的文档。可以查看特定模块的详细信息和用法示例。
ansible-doc yum
这个命令会显示 yum
模块的文档,包括详细信息、用法示例等。
5. ansible-galaxy:用于管理 Ansible 角色的工具。可以搜索、安装、发布和构建 Ansible 角色。
ansible-galaxy install username.rolename
这个命令用于安装一个特定的 Ansible 角色,可以从 Ansible Galaxy 上指定作者和角色名进行安装
6. ansible-inventory:用于管理 Ansible 的主机清单文件。可以列出、测试和修改主机清单。
ansible-inventory --list
这个没什么说的就是一个列出清单内容
7. ansible-playbook:用于运行 Ansible 剧本(Playbook)。剧本是包含一系列任务的文件,用于自动化部署和配置管理。
ansible-playbook deploy.yml
执行一下名为deploy的这个剧本,机器清单使用默认的清单
8. ansible-pull:允许从远程版本控制系统(如 Git)拉取 Ansible 配置并在目标主机上运行。
ansible-pull -U https://github.com/yourusername/yourrepo.git
考虑到剧本虽然只是一个yaml格式的配置文件,但本质也是代码,那么我们就可以做代码版本控制到git上,这个命令本质就是在拉取一个剧本执行。
另外我注意到这个命令主要放在crontab里面合用,利用拉取命令和定时命令,可以把自动化做得飞起。
9. ansible-vault:用于加密和解密 Ansible 文件,包括 Playbooks、变量文件等。可用于保护敏感数据。
ansible-vault encrypt secret.yml
另外这边说一下,对于密钥管理,ansible还支持hashicorp vault,这个工具我看用的人也很多,有机会也介绍一下。