ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Ansible自动化运维

2022-07-01 08:33:34  阅读:162  来源: 互联网

标签:文件 运维 主机 ansible 任务 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存放触发器等等

标签:文件,运维,主机,ansible,任务,Ansible,模块,自动化
来源: https://www.cnblogs.com/TTSA/p/16425892.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有