Ansible自动化运维
Ansible:开源的运维自动化工具,提高运维工程师的效率,减少人为失误。操作简单,功能丰富。
特点:基于python开发,易于二次开发 丰富的内置模块,基本可以满足一切要求 管理模式非常简单 无客户端模式,底层通过ssh通信,也不需要代理程序 可以应用在大公司环境下。
Ansile的角色:
1、使用者:如何使用Ansible(与Ansible的交互方式)
CMDB:直接下发指令调用Ansibe工具集完成任务目标
PUBLIC/PRIVATE:以API调用的方式
Ad-hoc命令集:通过Ad-hoc命令集调用Ansible工具集完成任务
Playbooks:根据预先编写好的Ansible Playbooks按序执行任务
2、Ansible工具集:包含invertory,modules,plugins和API。
Ansible plakbooks:任务脚本,编排定义Ansible任务集的配置文件,一般为json格式的yml文件
inventory:管理Ansible设备列表,通过分组管理主机。
modules: 执行命令的各种模块,任务通过模块执行
plugins: 附加功能,是模块功能的补充
API:供第三方调用的应用程序编程接口,便于二次开发
Ansible:组合上述工具的命令工具,为核心的执行工具
3、作用对象:linux、windows、各类PUBLIC/PRIVATE网络设施
Ansible的配置:inventory是Ansible管理主机信息的配置文件,相当于系统hosts文件的功能,默认存放在/etc/ansible/hosts.可以用-i选项指定在其他文件。在hosts文件中通过分组来组织设备。设备列表支持ip地址和主机名,通过ssh(22端口)管理设备。
ansible安装常用两种方式,yum安装
和pip程序安装
Ansible安装(YUM):
复制提供的ansible文件到本地并设置为yum仓库
Mv ansible/ /usr/local/src
Vim /etc/yum.repos.d/aaa.repo
[local]
Name=local
Baseurl=file:///usr/local/src/ansiblerepo
Ansible安装(pip):
yum install python-pip
pip install ansible
安装结果验证
Ansible –version
Ansible通过SSH对设备管理,SSH包括两种认证方式,一种通过密码认证,另一种密钥对验证,前者必须和系统交互,后者免交互登录,如果希望通过ansible自动管理设备应配置免交互登录被管理设备
ssh-keygen -t rsa //生成密钥对
ssh-copy-id root@远端IP
ssh 远端IP //可以免密码登录
exit //退出远端环境
安装目录如下(yum安装):
配置文件目录:/etc/ansible/
执行文件目录:/usr/bin/
Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/
Help文档目录:/usr/share/doc/ansible-X.X.X/
Man文档目录:/usr/share/man/man1/
Ansible命令:
ansible:大多数维护命令以ansible开头。执行结果有:红色表示执行过程异常、橘黄色代表目标有状态变化、绿色代表执行成功且没有对目标修改
格式:ansible 主机组 命令选项
主机组:必须是hosts文件定义的设备组,或者单个ip,all代表所有
主要选项:-m 指定执行使用的模块 -a 指定模块参数 -l(--limit) 限制运行主机 --list 列出符合条件的主机
ansible-playbook命令:执行任务的脚本。根据预先编好的yml格式的playbook文件实现集中处理任务。文件中存放执行的任务代码。
格式:ansible-playbook .yml文件
Ansible的主要模块:
1、command模块:在远程主机执行命令,不支持管道、重定向特性
2、shell模块:与command命令相同,可以支持管道和重定向
3、copy模块:复制指定主机文件到远程主机的指定位置
4、hostname模块:管理远程主机的主机名
5、yum模块:基于yum对远程主机管理程序包
6、service模块:管理远程主机的服务
7、user模块:管理远程主机的用户账号
Playbook配置文件:放置所有任务代码,使用yaml语法,扩展名为.yml或.yaml.可以实现自动化运维,类似任务脚本
语法通过缩进来展示,通过-来代表项冒号:来分隔键和值,整个文件以- - -开头以...结束。
playbook文件中可以配置触发器:需要触发才能执行的任务。即之前定义的tasks任务执行成功后触发 handlers(触发器)里的触发任务。
playbook的tasks文件集中存放在某个目录下,则该目录就是角色。角色一般存放在/etc/ansible/roles中,目录下可以由自定义的各个子目录比如files存放模块调用的文件,tasks存放任务,handlers存放触发器等等
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)