Ansible(1)——Ansible详解及inventory⽂件配置⽬录
⼀、Ansible详解
(⼀)、认识Ansible
1、Ansible 是什么
2、为什么选择ansible
3、Ansible 是如何⼯作的
4、Ansible通信机制
5、Ansible应⽤场景
6、ansible执⾏流程
7、ansible⽣成的主要⽂件
(⼆)、Ansible安装、配置及使⽤
1、 在server1上安装ansible
2、熟悉ansible配置⽂件使⽤
python官方文档中文版3、参数及ansible命令的使⽤
4、 创建普通⽤户,执⾏分发任务
5、Inventory⽂件配置
6、Ansible与正则
⼆、Ansible安装、配置及使⽤
1、实验环境的创建
1.1、实验环境
1.2、创建虚拟机内存和cpu的要求
1.3、安ah⽅便补齐命令
1.4、设置虚拟机的上⽹功能
2、 在server1上安装ansible
1、配置yum源
2、安装ansible
3、熟悉ansible配置⽂件使⽤
ansible配置⽂件查顺序
定义Inventory(主机列表)
Inventory⽂件格式
模板样式
三、Asible的使⽤以及远程主机的连接使⽤等
1、添加远端主机
2、定义好inventory后可以调⽤ping模块来检测⽹络是否可达
3、ping 远程主机失败的解决⽅
⽅法⼀:⾸先登录认证
⽅法⼆:设置免密
4、 创建普通⽤户,执⾏分发任务
5、在两台hosts主机上对普通⽤户devops下⽅权⼒
6、Ansible命令的使⽤场景
1、查看列表的命令
2、相关命令的描述和使⽤⽅法
四、⾃定义的主机和组
1、创建inventory⽂件
2、定义组的套嵌以及变量
五、远程复制
1、创建新的⽤户 在普通⽤户下进⾏实验
2、创建指定的超级⽤户⾝份⽂件⽬录
3、开启root⾝份认证⽂件
4、使⽤copy模块远程执⾏命令
5、将⽂件复制到/mnt⽬录下
6、删除⽂件远程
⼀、Ansible详解
1. 官⽅⽂档:docs.ansible/
2. 中⽂⽂档:www.ansible/
(⼀)、认识Ansible
1、Ansible 是什么?
Ansible 是⼀个能实现批量部署的⾃动化运维⼯具,集合了众多运维⼯具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运⾏命令等功能。帮助运维实现IT⼯作的⾃动化、降低⼈为操作失误、提⾼业务⾃动化率、提升运维⼯作效率。 常⽤于软件部署⾃动化、配置⾃动化、管理⾃动化、系统化系统任务、持续继承、零宕机平滑升级。
常见的部署⼯具有Chef、Puppet、Ansible、SaltStack、Fabric
ansible是基于 paramiko 开发的,并且基于模块化⼯作,本⾝没有批量部署的能⼒。真正具有批量部署的是ansible所运⾏的模
块,ansible只是提供⼀种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。ansible⽬前已经已经被红帽官⽅收购,是⾃动化运维⼯具中⼤家认可度最⾼的,并且上⼿容易,学习简单。是每位运维⼯程师必须掌握的技能之⼀。
2、为什么选择ansible?Ansible详解及inventory⽂件配置
Ansible完全基于Python开发,⽽DevOps在国内已然是⼀种 趋势,Python已逐步普及,运维⼈员⾃⼰开发⼯具的门槛逐步降低,得益于此,⽅便对Ansible⼆次开发。
Ansible丰富的内置模块,甚⾄还有专门为商业平台开发的功能模块,完全可以满⾜⽇常功能所需。
在Ansible去中⼼化概念下,⼀个简单的复制操作即可完成管理配置中⼼的迁移。
Agentless(⽆客户端),客户端⽆需任何配置,由管理端配置好后即可使⽤,更新时,只需在操作机上进⾏⼀次更新即可,这点⾮常诱⼈。
配置简单、功能强⼤、扩展性强,通过Playbooks来定制强⼤的配置、状态管理。
3、Ansible 是如何⼯作的?
上图对应的模块功能如下:
1. Ansible:Ansible核⼼程序。
2. HostInventory:记录由Ansible管理的主机信息,包括端⼝、密码、ip等。
3. Playbooks:“剧本”YAML格式⽂件,多个任务定义在⼀个⽂件中,定义主机需要调⽤哪些模块来完成的功能。
4. CoreModules:核⼼模块,主要操作是通过调⽤核⼼模块来完成管理任务。
5. CustomModules:⾃定义模块,完成核⼼模块⽆法完成的功能,⽀持多种语⾔。
6. ConnectionPlugins:连接插件,Ansible和Host通信使⽤
补充:
(1)Ansible使⽤者来源于多种维度,分为以下⼏种⽅式:Ansible详解及inventory⽂件配置
CMDB存储和管理着企业IT架构中的各项配置信息,运维⼈员可以组合CMDB和Ansible,通过CMDB直接下发指令调⽤Ansible⼯具集完成操作者所希望达成的⽬标。
基于PUBLIC(公有云)/PRIVATE(私有云),Ansible以API调⽤的⽅式运⾏,Ansible提供了丰富的API语⾔接⼝:PHP、Python 等。
直接使⽤Ad-Hoc临时集调⽤Ansible⼯具集来完成任务执⾏。
通过执⾏Playbooks中预先编排好的任务集按序完成任务执⾏。
(2)Ansible⼯具集(ansible命令是Ansible的核⼼⼯具,总指挥)
INVENTORY:命令执⾏的⽬标对象配置⽂件
API:供第三⽅程序调⽤的应⽤程序编程接⼝
MODULES:丰富的内置模块
PLUGINS:内置和⾃定义的插件6、Ansible命令的使⽤场景
(3)作⽤对象
Ansible的作⽤对象,不仅仅是Linux和⾮Linux操作系统的主机,同样也可以作⽤于各类公有云/私有云,商业和⾮商业设备的⽹络
4、Ansible通信机制
Ansible主推的卖点是其⽆需任何Daemon维护进程即可实现相互间的通信,且通信⽅式是基于业内统⼀标准的安全可靠的SSH安全连接。
⽆客户端,只需安装SSH、Python即可。
基于OpenSSH通信,底层基于SSH协议(Windows基于PowerShell)。
⽀持密码和SSH认证,建议使⽤公私钥⽅式认证,因为密码认证⽅式的密码需明⽂写配置⽂件,虽然配置⽂件可加密,但会增加Ansible 使⽤的复杂度。
5、Ansible应⽤场景
应⽤部署
Ansible内置⽹络、应⽤、系统、第三⽅平台扩展等完善的功能模块,协助运维快速完成应⽤的安装、卸载、升级、启停、配置等部署类⼯作,即使对跨平台或知名的商业硬件也同样⽀持。
配置管理
Ansible内置File、Template,结合Jinja、Lineinfile等内置模块,同时⽆缝结合GitHub、GitLab、Git、SVN、Jenkin等主流版本控制和CI持续集成⼯具,助⼒配置管理⾃动化。
任务流编排
有效保证Tasks任务流按即定规则和顺序完成事先制定的⽬标和计划,同时Roles编排⽅式⼜能在⼀定程度上从书写习惯和代码层编排上保证整体项⽬可架构性和规范性,协助控制项⽬维护成本不致过⾼。
适⽤于⽹络管理员、系统运维、应⽤运维、桌⾯运维、DevOps、基础架构运维等多领域运维⾏业,上⼿快,效率⾼。
6、ansible执⾏流程
7、ansible⽣成的主要⽂件
1. /etc/ansible
2. /etc/ansible/ansible.cfg #配置⽂件
3. /etc/ansible/hosts #主机库(host inventory)管理被监控的主机
4. /usr/bin/ansible #主程序
5. /usr/bin/ansible-doc #⽂档
6. /usr/bin/ansible-playbook #剧本
⼆、Ansible安装、配置及使⽤
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论