目录
1、什么是自动化批量管理
2、自动化工具ansible架构
3、ansible服务专用术语对照表
4、设置主机清单(inventory)
3.1实验环境准备
3.2配置主机清单
3.2.1分组基本格式
3.2.2指定用户名,密码。端口
3.2.3子组
3.3查看
3.3.1看受管主机信息
3.3.2查看指定的组
3.3.3查看与使用指定的子组
3.3.4查看所有主机的情况
3.3.5查看某一台机器
1、什么是自动化批量管理
重复性的工作与内容:思考如何自动化完成
部署环境,批量查看信息,批量检查,自动化。
2、自动化工具ansible架构
Ansible服务本身并没有批量部署的功能,它仅仅是一个框架,真正具有批量部署能力的是其所运行的模块。Ansible内置了上千个模块,会在安装Ansible时一并安装,通过调用指定的模块,就能实现特定的功能。Ansible内置的模块非常丰富,几乎可以满足一切需求,使用起来也非常简单,一条命令甚至影响上千台主机。
3、ansible服务专用术语对照表
术语 | 中文叫法 | 含义 |
Control node | 控制节点 | 指的是安装了Ansible服务的主机,也被称为Ansible控制端,主要是用来发布运行任务、调用功能模块,对其他主机进行批量控制。 |
Managed nodes | 受控节点 | 指的是被Ansible服务所管理的主机,也被称为受控主机或客户端,是模块命令的被执行对象。 |
Inventory | 主机清单 | 指的是受控节点的列表,可以是IP地址、主机名称或者域名。 |
Modules | 模块 | 指的是上文提到的特定功能代码,默认自带有上千款功能模块,在Ansible Galaxy有超多可供选择。 |
Task | 任务 | 指的是Ansible客户端上面要被执行的操作。 |
Playbook | 剧本 | 指的是通过YAML语言编写的可重复执行的任务列表,把常做的操作写入到剧本文件中,下次可以直接重复执行一遍。 |
Roles | 角色 | 从Ansible 1.2版本开始引入的新特性,用于结构化的组织Playbook,通过调用角色实现一连串的功能。 |
由于受控节点不需要安装客户端,外加SSH协议是Linux系统的标配,因此可以直接通过SSH协议进行远程控制。在控制节点上,也不用每次都重复开启服务程序,使用ansible命令直接调用模块进行控制即可
4、设置主机清单(inventory)
初次使用ansible遇到情况记录:
修改了参数但是没有生效
原因:ansible服务的主配置存在优先级的顺序关系
优先级 | 文件位置 |
高 | ./ansible.cfg |
中 | ~/.ansible.cfg |
低 | /etc/ansible/ansible.cfg |
3.1实验环境准备
ansible环境 | 主机名 功能用途 ip |
ansible管理端 | ansible 192.168.81.131/24 |
被管理端 | node2 开发机dev 192.168.81.132/24 |
被管理端 | node3 测试机test 192.168.81.133/24 |
被管理端 | node4 产品机prod 192.168.81.134/24 |
被管理端 | node5 产品机prod 192.168.81.135/24 |
被管理端 | node6 负载均衡机balancer192.168.81.136/24 |
3.2配置主机清单
主机清单文件修改后会立即生效
3.2.1分组基本格式
3.2.2指定用户名,密码。端口
主机清单中指定信息 | |
连接的ssh端口 | ansible_ssh_port=22 |
连接的ssh用户 | ansible_ssh_user=账户名 |
连接的ssh密码 | ansible_ssh_pass="密码" |
[注] 为了实验方便,我的每台机器的账号密码都是root 1
3.2.3子组
实验将prod组和test组合并为A组
3.3查看
3.3.1看受管主机信息
一般使用“ansible-inventory --graph”命令以结构化的方式显示出受管主机的信息。
3.3.2查看指定的组
ansible 组名 -m command -a 'hostname'
3.3.3查看与使用指定的子组
ansible 子组名 -m command -a ‘hosname'
3.3.4查看所有主机的情况
ansible all -m command -a 'hostname'
3.3.5查看某一台机器
ansible 机器IP地址 -m command -a 'hostname'
#为美好的开源世界贡献一份力量