前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ansible入门:解锁IT自动化的神

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

作者头像
网络豆
发布2024-05-12 08:20:39
930
发布2024-05-12 08:20:39
举报
文章被收录于专栏:python基础文章python基础文章

在当今的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版本而导致的错误。

代码语言:javascript
复制
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的配置文件为

代码语言:javascript
复制
/etc/ansible/ansible.cfg,ansible

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ansible 简介
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档