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存放触发器等等

posted @   吃葡萄不吐葡萄皮&&  阅读(306)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示