ansible 简介
ansible是一款自动化的运维工具基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)
组件:
- Host Lnventory 英[??nv?ntri]:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载
- Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.
- Core Modules 英 /k??(r)/ Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。
- Custom Modules英 /?k?st?m/ 自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。
作用:
优点:
- 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
- 默认使用SSH协议对设备进行管理;
- 幂等性 保证我们重复同一样操作的时候,得到的结果是一样的
- 通过Playbooks来定制强大的配置、状态管理;
- 支持API及自定义模块,可通过Python轻松扩展;
返回值颜色:
- 红色 报错
- 黄色 成功 更改了
- 绿色 成功 说明可能执行第二次了 没有更改但也成功了因为幂等性可以多次执行还能保证状态
- 紫色
配置文件:
/etc/ansible/hosts //配置主机组 配置可以使用YAML(一种标记语言)或者INI
基础命令:
- -m : 使用什么模块
- -a : 使用模块中的参数
- -h : 帮助信息
- -C: 测试一下不会真的执行
模块: (ansible-doc -l 可以看到模块的名称和大概功能 -s 可以看单个模块的使用方法)
1.单个模块使用格式 (testA是主机组的名称)
2.学会看ansible-doc信息
标黄色的地方是模块的作用 红色线标注的地方是模块的选项 required是必须选项
3.常见模块
4 playbook 里面的使用:
检查语法错误试运行
4.1YAML 语法:
- ”---“代表文档开始
- 第二行”-“ 开头 “-” 后面要有空格
- :后面一定要有空格
- 是不能用tab键缩进的 vim编辑器自动设置为空格
- 每一个任务都要用 “-”开头
4.2 关键字:
- hosts: //主机之间用逗号隔开
- tasks: //任务列表
- name: // 执行的时候会输出关键字
- handlers //notify 调用
- tags //打标签方便单独执行
- 特殊tag always //总是执行 当没有被调用的时候也执行
- 特殊tag never 2.5版本
- 特殊tag tagged// 只有执行标签任务的时候执行别的时候不执行
- 特殊tag untagged //
- 特殊tag all //所有任务
面试题:()
1.Ansible 判断文件存在
2.Ansible 部署过什么
3Ansible的优势
ansible 原理 面试
原文:https://www.cnblogs.com/gaiting/p/12354307.html