Ansible 自动化运维工具介绍

2019-05-08 0 By admin

Centos 系统安装Ansible:
yum install ansible ansible-lint ansible-doc
提供的软件包
ansible-doc.noarch : Documentation for Ansible
ansible-inventory-grapher.noarch : Creates graphs representing ansible inventory
ansible-lint.noarch : Best practices checker for Ansible
python2-ansible-tower-cli.noarch : A CLI tool for Ansible Tower
ansible.noarch : SSH-based configuration management, deployment, and task execution system

Ansible 服务中名词解释

一、被控主机列表INVENTORY

默认配置文件/etc/ansible/hosts;可以使用多个配置文件。
配置文件支持不同的配置格式(YAML、ini等)。
提供的扩展功能:
1、主机和主机分组
2、定义主机变量和分组变量
3、主机连接方式

二、管理被控主机的方式

1、Ad-Hoc 单个命令执行
使用方法:
ansible <pattern_goes_here> -m <module_name> -a <arguments>
如:
ansible webservers -m service -a“name = httpd state = restarted”

  1. pattern_goes_here 通常指向要操作的一个主机组,如案例中要操作的是webservers主机组中的机器。
  2. -m 指定使用的模块。
  3. -a MODULE_ARGS 模块参数。

2、PlayBook 是Ansible的配置,部署和编排语言。
任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件;

三、使用模块

Ansible附带了许多模块(称为“模块库”),可以直接在远程主机上或通过Playbooks执行。
用户还可以编写自己的模块。这些模块可以控制系统资源,如服务,包或文件(真正的任何东西),或处理执行系统命令。

四、使用插件

插件是增强Ansible核心功能的代码片段。Ansible使用插件架构来实现丰富,灵活和可扩展的功能集。
模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等。

五、Ansible Vault

Ansible Vault是ansible的一项功能,允许您将敏感数据(如密码或密钥)保存在加密文件中,而不是在剧本或角色中保留明文。然后可以将这些保管库文件分发或放置在源代码管理中。
要启用此功能,命令行工具 – ansible-vault – 用于编辑文件,并使用命令行标志(–ask-vault-pass或–vault-password-file)。或者,您可以指定密码文件的位置或命令Ansible以始终在ansible.cfg文件中提示输入密码。这些选项不需要命令行标志使用。

六、提升权限

Ansible允许您“成为”另一个用户,与登录计算机的用户(远程用户)不同。这是使用现有的权限提升工具完成的,例如sudo,su,pfexec,doas,pbrun,dzdo,ksu,runas,machinectl等。