/etc/ansible/hosts
,通常我们可能会根据项目需求,起一个见名知意的其他名称,或者也会直接在每一套我们需要组织的项目根目录下存放一个hosts的清单文件 。
Inventory主机清单文件可以有多个,在使用plyabook时可以手动通过-i
参数指定你需要使用的清单文件名称 。
Inventory文件遵循了ini
配置文件的风格,一个section就表示一组隶属于同一个分组的被管理机器 。目标被管理节点默认均被视为使用SSH的22端口,但是当部分节点使用非22端口号时,也可以在清单文件中进行指定 。
被管理节点可以是以IP的形式写在清单文件中,也可以使用域名的形式 。
[webservers]172.16.0.10172.16.0.11172.16.0.[20:30]alpha.ayunw.cnbeta.ayunw.cnapache[10:20].ayunw.cnnginx.ayunw.cn:2333[dbservers]db01.ayunw.cndb02.ayunw.cnmysql-[a:z].ayunw.cn10.25.1.5610.25.1.57
三、实战演练3.1 环境介绍我这里包括ansible主控机和另外四台被管理机器,以下是我自定义的一个Inventory文件,可以作为备忘用 。
mkdir ansible-examplevim hosts[ayunw]10.10.108.3410.10.108.3010.10.108.3110.10.108.3210.10.108.33
以下是在ansible的默认hosts配置文件中配置,如果不使用 -i ./ansible-example/hosts,则ansible默认使用该清单文件 。
[root@ansible-server ~]# cat /etc/ansible/hosts[websrvs]10.10.108.[30:33][dbsrvs]10.10.108.30[appsrvs]10.10.108.[30:33]
3.2 Ansible相关命令工具
/usr/bin/ansible
:主提序,临时命令执行工具/usr/bin/ansible-doc
: 查看配置文档,模块功能查看工具/us/bin/ansible-galaxy
:下载/上传优秀代码或Roles模块的自网平台/usr/bin/ansible-playbook
:定制自动化任务,编排剧本工具/usr/bin/ansible-pull
:远程执行命令的工具/usr/bin/ansible-vault
:文件加密工具/usr/bin/ansible-console
:基于Console界面与用户交互的执行工具
ansible
和ansible-playbook
Ansible安装配置和基本使用 。小编来告诉你更多相关信息 。
Ansible安装配置和基本使用
,这两个命令就是ansible用来实现批量管里的关键 。- ansible命令通常用于一次性或者临时的任务,一般一条命令即可实现任务 。通常我们称这种方式为:ad-hoc;
- ansible-playbook主要是应用于针对大型项目的部署,需要通过多个yaml格式的文件(以yaml或者yml结尾)组合使用,所以一般需要进行提前规划目录,整合yaml文件 。
3.2.1 ansible-doc该命令主要用于显示针对某个模块的使用方法的帮助信息 。如果忘记了模块或者模块的用法,可以通过该命令快速查看 。
ansible-doc [options][module...]# 列出可用模块-l,--list# 显示指定模块的playbook片段-s,--snippet如:# 列出所有模块ansible-doc -l # 查看指定模块帮助用法ansible-doc copy # 查看指定模块帮助用法[简化版的帮助]ansible-doc -s copy
注意:在使用ansible批量管理操作之前,需要先对所有主机做一个免密认证,以确保每个被管理节点都能在ansible管理节点上通过ssh协议免密登录到被管理节点 。免密的三种实现方式:
- 基于ssh-keygen + shell + sshpass`方法实现
- 基于
expect
实现; - 基于
ansible-playbook
实现 。
--version
:显示版本-m module
:指定模块,默认为command-V
:详细过程-vv -vvv更详细--list-hosts
:显示主机列表,可简写–list-k,--ask-pass
:提示输入ssh连接密码,默认key验证-C,--check
:检查,并不执行-T,--timeout=TIMEOUT
:执行命令的超时时间,默认10s-u,--user=REMOTE_USER
:执行远程执行的用户-b,--become
:代替旧版的sudo切换--become-user=USERNAME
:指定sudo的runas用户,默认为root-K,--ask-become-pass
:提示输入sudo时的口令
# 以下两条命令执行效果相同ansible all -m pingansible \"*\" -m pingansible 10.10.108.* -m pingansible \"*srvs\" -m ping [root@ansible-srv1 ansible-example]# ansible \"*\" --list-hostshosts (4):10.10.108.3010.10.108.3110.10.108.3210.10.108.33
使用逻辑或[root@ansible-srv1 ansible-example]# ansible \"websrvs:appsrvs\" -m ping10.10.108.31 | SUCCESS => {\"ansible_facts\": {\"discovered_interpreter_python\": \"/usr/bin/python\"},\"changed\": false,\"ping\": \"pong\"}10.10.108.32 | SUCCESS => {\"ansible_facts\": {\"discovered_interpreter_python\": \"/usr/bin/python\"},\"changed\": false,\"ping\": \"pong\"}10.10.108.33 | SUCCESS => {\"ansible_facts\": {\"discovered_interpreter_python\": \"/usr/bin/python\"},\"changed\": false,\"ping\": \"pong\"}10.10.108.30 | SUCCESS => {\"ansible_facts\": {\"discovered_interpreter_python\": \"/usr/bin/python\"},\"changed\": false,\"ping\": \"pong\"}[root@ansible-srv1 ansible-example]# ansible \"10.10.108.30:10.10.108.33\" -m ping10.10.108.30 | SUCCESS => {\"ansible_facts\": {\"discovered_interpreter_python\": \"/usr/bin/python\"},\"changed\": false,\"ping\": \"pong\"}10.10.108.33 | SUCCESS => {\"ansible_facts\": {\"discovered_interpreter_python\": \"/usr/bin/python\"},\"changed\": false,\"ping\": \"pong\"}
- Ansible简介及离线安装步骤 Ansible简介与离线安装
- 功能优点详细介绍! 什么是ansible
- 刺客信条启示录配置高吗 配置要求低的游戏推荐
- RedHatLinux系统下yum源配置的详细指南
- ubuntu安装chrome浏览器的方法 ubuntu怎么安装chrome
- 3dmax插件怎么安装插件 3dmax一键生成墙体插件安装
- 驱动程序怎么卸载重装 电脑安装的驱动流程
- HP打印机怎么安装驱动程序 惠普1020打印机驱动下载
- 无线路由器设置方法步骤 wifi路由器怎么安装
- OSPF被动接口配置方法 如何配置OSPF被动接口