豌豆贴心提醒,本文阅读时间5分钟
运维自动化是运维发展的必然方向,同时也是一个运维工程师实现效率最大化的必然选择。
运维自动化的知识可以说是浩瀚如海,本文将选择其中一个工具ansible为大家介绍一下。
一、哪些工作需要批量部署
1、操作系统的安装
常见的有collber,red hat satelite(redhat)系统专用。
2、操作系统的配置
常见的有cfengine,puppet,chef,func。其中puppet最受欢迎
3、批量程序的部署
4、批量命令的运行查看状态信息
二、ansible介绍
ansible的架构大致如下
ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。
1 2 3 | 运维工具常见的工作模式
1、agent模式: 基于ssl实现。代理工作在被监控端。像puppet。
2、agentless模式: 基于 ssh 服务实现工作在被监控端。监控端是 ssh 的客户端。
|
ansible是工作在agentless模式下具有幂等性。ansible在控制端只需要告诉监控端的期望状态就可以实现批量部署。
1 2 3
| 名词解释
幂等性不会重复执行相同的指令。例如不会重复安装软件
期望状态只需要告诉被监控端的期望状态
|
ansible是基于模块工作的ansible本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块ansible只是提供一种框架。架构包括
连接插件connection plugins负责和被监控端实现通信。
Host Inventory:指定操作的主机,是一个配置文件里面定义监控的主机
各种模块核心模块command模块自定义模块
借助于插件完成记录日志邮件等功能
PlayBooks:剧本执行多个任务时。并非必需可以让节点一次性运行多个任务
三、ansible的基本使用
1 2 | 安装软件yum install ansible -y
|
1 2 3 4
5 6 7 8 9 10 11 12 | 2、定义Host Inventory
[webhosts]
172.16.10.22 ansible_ssh_user=root ansible_ssh_pass=guoting
172.16.10.33 ansible_ssh_user=root ansible_ssh_pass=guoting
解释
ansible命令最常用的用法
ansible -m MOE -a 'MOD_ARV' 所支持的模块可以使用ansible-doc -l来查看
|
四、ansible示例
1、查看时间信息。command、shell模块
2、在控制端添加添加用户。user模块
3、实现ssh秘钥认证。shell、copy模块
此时就可以实现基于ssh秘钥通信了此时/etc/ansible/hosts可以修改如下
1 2 3 4 | [webhosts]
172.16.10.22
172.16.10.33
|
4、安装软件和启动服务。yum、service模块
5、支持管道的命令。raw模块,类似于shell模块
关于ansible的基本介绍到这里就结束了,下一篇文章我们会介绍一些批量部署的小技巧哦~
今日值班: 马哥教育一号女神学习顾问,懂IT更懂IT男,爱美食也爱健身,可跟你探讨LOL代码神迹,也可教你正确的技术猿方法,据说其指导的学员薪资都挺高,陪伴是最长情的告白。
内容沟通、职业成长和课程学习,可添加学习顾问:
【扫一扫即可撩】
特别提醒
课程限时优惠:
Linux面授24期班:前20名优惠400元,仅剩10个席位