Ansible入门:解锁IT自动化的神

在当今的IT自动化领域,Ansible无疑是一个无法被忽视的重要角色。其便利性和高效性受到了广大开发者和系统管理员的一致好评,成为了配置管理和应用部署的首选工具。然而,对于一些初学者来说,Ansible的概念和架构可能会显得有些复杂和难以理解。因此,我打算通过一系列深入解析Ansible的博文,帮助大家更好地理解和使用这一工具。


ansible 简介

ansible 是什么?

  ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

  ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远

程主机通讯的。ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。

图片


ansible 特点

1.部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;

2.默认使用SSH协议对设备进行管理;

3.有大量常规运维操作模块,可实现日常绝大部分操作;

4.配置简单、功能强大、扩展性强;

5.支持API及自定义模块,可通过Python轻松扩展;

6.通过Playbooks来定制强大的配置、状态管理;

7.轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;

8.提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。

图片

上图为ansible的基本架构,从上图可以了解到其由以下部分组成:

核心:ansible

核心模块(Core Modules):这些都是ansible自带的模块 

扩展模块(Custom Modules):如果核心模块不足以完成某种功能,可以添加扩展模块

插件(Plugins):完成模块功能的补充

剧本(Playbooks):ansible的任务配置文件,将多个任务定义在剧本中,由ansible自动执行

连接插件(Connectior Plugins):ansible基于连接插件连接到各个主机上,虽然ansible是使用ssh连接到各个主机的,但是它还支持其他的连接方法,所以需要有连接插件

主机群(Host Inventory):定义ansible管理的主机


安装

1、强烈建议使用yum 进行安装,或者装所有服务器配置为同一版本的python以避免因为python版本而导致的错误。

yum install ansible

2、使用pip3 进行安装。最好将所有服务器安装同一版本的python,以避免版本问题。

#yum install sshpass 有时交互输入密码时自动交互使用。

#pip3 install ansible paramiko PyYAML Jinja2


ansible 程序结构

安装目录如下(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与我们其他的服务在这一点上有很大不同,这里的配置文件查找是从多个地方找的,顺序如下:

1.检查环境变量ANSIBLE_CONFIG指向的路径文件(export ANSIBLE_CONFIG=/etc/ansible.cfg);

2.~/.ansible.cfg,检查当前目录下的ansible.cfg配置文件;

3./etc/ansible/ansible.cfg检查etc目录的配置文件。


ansible配置文件

ansible的配置文件为

/etc/ansible/ansible.cfg,ansible

 有许多参数,下面我们列出一些常见的参数:

inventory = /etc/ansible/hosts #这个参数表示资源清单inventory文件的位置
library = /usr/share/ansible #指向存放Ansible模块的目录,支持多个目录方式,只要用冒号(:)隔开就可以
forks = 5 #并发连接数,默认为5
sudo_user = root #设置默认执行命令的用户
remote_port = 22 #指定连接被管节点的管理端口,默认为22端口,建议修改,能够更加安全
host_key_checking = False #设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提示配置实例
timeout = 60 #设置SSH连接的超时时间,单位为秒
log_path = /var/log/ansible.log #指定一个存储ansible日志的文件(默认不记录日志)

使用yum进行安装时,产生的配置文件

图片


敬请关注博主,我们将持续为您带来云计算行业及更多前沿技术的最新信息,助您把握技术动态,领先一步!”

网络豆云计算学堂

讲解云计算,运维,linux,AI前沿科技,计算机技术知识,分享优质内容,从入门到精通。

74篇原创内容

公众号

若您渴望深入了解云计算知识,或希望与云计算、运维、网络等领域的精英们共同交流学习,欢迎您私信博主,博主将为您提供宝贵的免费学习资料,并引荐您加入专业交流群。在这里,您可以与各路大咖切磋技艺,共享行业前沿资讯,一同成长进步。期待您的参与,让我们共同开启云计算领域的探索之旅!

相关推荐

  1. 开源IT自动化运维工具Ansible

    2024-05-11 18:00:05       16 阅读
  2. Appium IOS自动化屏与

    2024-05-11 18:00:05       24 阅读
  3. 自动化运维工具----Ansible入门详解

    2024-05-11 18:00:05       23 阅读
  4. 开源IT自动化运维工具Ansible Playbook介绍

    2024-05-11 18:00:05       20 阅读
  5. Linux 网络配置:从入门到精通 ip 命令

    2024-05-11 18:00:05       12 阅读
  6. 梦想编码:0基础IT世界无限可能

    2024-05-11 18:00:05       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-11 18:00:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-11 18:00:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-11 18:00:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-11 18:00:05       20 阅读

热门阅读

  1. PYTHON利用实时交易量智能股票交易系统

    2024-05-11 18:00:05       14 阅读
  2. MYSQL SQL优化思路和方法

    2024-05-11 18:00:05       19 阅读
  3. fastapi数据库连接池的模版

    2024-05-11 18:00:05       15 阅读
  4. D3.js实战:数据可视化高级技巧实例应用

    2024-05-11 18:00:05       16 阅读
  5. idea

    idea

    2024-05-11 18:00:05      15 阅读
  6. postman---认证(Certificates)是什么作用?

    2024-05-11 18:00:05       12 阅读
  7. git命令详解+使用样例

    2024-05-11 18:00:05       17 阅读
  8. 代码随想录训练营Day29:动态规划1

    2024-05-11 18:00:05       16 阅读
  9. 高德地图定位点缩放偏移问题

    2024-05-11 18:00:05       14 阅读
  10. 安卓实现连接wesokcet

    2024-05-11 18:00:05       16 阅读
  11. 类和对象的关系

    2024-05-11 18:00:05       14 阅读