ansible简介、部署
Ansible是一个开源的自动化平台;能够适应许多不同的工作流和环境。
由于没有代理,Ansible比其他替代方案更高效和安全。
Ansible架构:有两种计算机类型,控制节点和受管主机。
ansible安装在控制节点上,所有组件也在控制节点上被维护。
受管主机列在主机清单(inventory)文本文件中,位于控制节点上,含有受管主机名称或IP列表。
Ansible用户无需编写复杂的脚本,而只要创建高级别 play即可确保主机或主机组处于特定状态。Play 按该 play指定的顺序对主机执行一系列任务。play采用YAML格式包含一个或多个play的文件称为playbook;每个 task 运行一个模块Module(使用 Python、PowerShell 或某种其他语言编写)。Ansible随附了数百个实用模块,它们能够执行许多不同的自动化任务;在 task中使用时,模块通常确保计算机的某一特定方面处于特定的状态。如果系统不处于指定的状态,task 应将其置于相应状态。如果 task失败,Ansible默认在出错主机中止playbook 的其余部分。
Ansible 工作原理:基于SSH 协议,连接到远程主机并执行命令。
Inventory:inventory是Ansible 的主机清单,定义 Ansible 所管理的主机;主机可以从属于组,后者通常用于标识主机的角色。一个主机可以属于多个组。
配置文件:Playbook是Ansible的配置文件,包含了需要执行的任务和操作。
可在每个 Ansible 项目目录中创建和编辑两个文件,用于配置 Ansible 的行为和 ansible-navigator 命令选项:
ansible.cfg:用于配置 Ansible 的行为。
[defaults]:设置 Ansible 的默认值。
[privilege_escalation]:配置 Ansible 如何在受管主机上执行特权升级。
ansible-navigator.yml:用于配置 ansible-navigator 命令的默认选项。
配置文件的优先级:如果项目目录中不含 ansible.cfg 文件,Ansible 会查询用户家目录中的~/.ansible.cfg 文件,如果该文件不存在,则会尝试使用 /etc/ansible/ ansible.cfg 文件。
Modules:modules 是Ansible的核心组件,包含了需要执行的操作。如文件操作、软件安装、服务管理等。
ansible.cfg:主要设置一些ansible初始化的信息,比如日志存放路径、模块、插件等配置信息。
hosts:机器清单,进行分组管理。
Ansible 选项:
-v(–verbose): 输出详细的执行过程信息
-I PATH(–inventory=PATH): 指定inventory信息,默认为/etc/ansible/hosts
-m NAME,–moudle-name=NAME: 指定执行时使用的模块
-a ARGUMENTS(–args=ARGUMENTS): 指定模块参数
-u USERNAME (–user=USERNAME): 指定远程主机USERNAME 运行命令
–list-hosts: 列出符合条件的主机列表
ansible all -m -a命令
all:主机列表
-m:指定模块
-a:指定参数