ansible


文章目录

  • 什么是ansible
  • **Ansible 是如何工作的**
  • **架构**
  • 常用的自动化管理软件有哪些
  • 安装ansible
    • 控制节点
    • 受管主机

什么是ansible

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

Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架。主要包括:
(1) 连接插件connection plugins:负责和被监控端实现通信;
(2) host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3) 各种模块核心模块、command模块、自定义模块;
(4) 借助于插件完成记录日志邮件等功能;
(5) playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

Ansible 是如何工作的

Ansible 典型的工作方式是通过一个脚本文件(基于 YAML 格式构建的)去控制远端操作系统按照特定的顺序执行相关任务,我们称这个文件为 playbook;

架构

**节点:**Ansible 架构中拥有两种计算机类型,即控制节点和受控节点。Ansible 运行在控制节点上,并且只能运行在 linux 操作系统上,对于被控节点,可以是主机设备,也可以是网络设备,主机设备的操作系统,可以是 Windows,也可以是 linux。

清单(inventory): 受控节点设备的列表。在这个列表中,你可以根据某些标准(如,作用,服务等)将拥有相同属性的计算机组织到一个组中。Ansible 清单,支持静态清单(一旦定义好,除非你修改配置文件,不然不会发生改变。),也支持动态清单(通过脚本从外部源获取清单,该清单可以随着环境的改变而改变。)。

Playbook: 需要在被控节点主机上运行的任务列表,从而让他们达到我们预期的状态。Playbook 中包含一个或多个 play,每个 play 会在一组或多组计算机上按顺序执行已经定义好的一系列 task,每个 task 都是一个执行模块。

模块(Module): 用于确保主机处于某一个特定的状态,例如可以使用yum(对于不同发行版本的 Linux,模块名可能有所不同个,如,在 Ubuntu 中与之对应的是 apt 模块。) 模块确保主机已经安装了某个软件,如果主机状态已经是预期的了(已经安装了该软件),那么就不会执行任何操作,执行下一个模块(task)。

常用的自动化管理软件有哪些

ansible:不需要在被管控主机上安装任何客户端;无服务器端,使用时直接运行命令即可;基于模块工作,可使用任何语言开发模块;使用yam1语言定制剧本playbook;基于SSH工作;可实现多级指挥。轻量级,无需在客户端安装agent,更新时,只需要在操作机上进行一次更新即可.

saltstack:saltstack是一个配置管理系统,能够维护预定义状态的远程节点。saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。saltstack是运维人员提高工作效率、规范业务配置与操作的利器。

puppet:puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期: 供应(provisioning)、配置(configuration)、联动(orchestration)及报告(reporting)。基于puppet ,可实现自动化重复任务、快速部署关键性应用以及在本地或云端完成主动管理变更和快速扩展架构规模

**Kubernetes: **跨主机编排容器。更充分地利用硬件资源来最大化地满足企业应用的需求。控制与自动化应用的部署与升级。为有状态的应用程序挂载和添加存储器。线上扩展或裁剪容器化应用程序与它们的资源。声明式的容器管理,保证所部署的应用按照我们部署的方式运作。通过自动布局、自动重启、自动复制、自动伸缩实现应用的状态检查与自我修复。

安装ansible

控制节点

Ansible 易于安装。 Ansible 软件只需要安装到要运行它的一个(或多个)控制节点上。由 Ansible管理的主机不需要安装 Ansible。

对控制节点的要求:

  • 控制节点应是Linux或UNIX系统。不支持将Windows用作控制节点,但Windows系统可以是受管主机。
  • 控制节点需要安装Python3(版本3.5或以上)或Python2(版本2.7或以上)。

如果操作系统是红帽8.0,Ansible 2.9可以自动使用 platform-python 软件包,该软件包支持使用Python的系统实用程序。你不需要从 AppStream安装python37或python27软件包。

[root@localhost ~]# yum list installed platform-python
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Installed Packages
platform-python.x86_64                   3.6.8-1.el8.0.1 

受管主机

Ansible的一大优点是受管主机不需要安装特殊代理。Ansible控制节点使用标准的网络协议连接受管主机,从而确保系统处于指定的状态。

受管主机可能要满足一些要求,具体取决于控制节点连接它们的方式以及它们要运行的模块。

Linux和UNIX受管主机需要安装有Python2(版本2.6或以上)或Python3(版本3.5或以上),这样才能运行大部分的模块。

对于红帽8,可以启用并安装python36应用流(或python27应用流)

yum module install python36

如果受管主机上启用了SELinux,还需要确保安装python3-libselinux软件包,然后才能使用与任何复制、文件或模板功能相关的模块。所以在工作的时候,应当把SELinux功能关闭。

//配置ansible的yum源
[root@ansible ~]# dnf list all|grep ansible
ansible-collection-microsoft-sql.noarch                1.1.0-1.el8                                            AppStream
ansible-collection-redhat-rhel_mgmt.noarch             1.0.0-2.el8                                            AppStream
ansible-freeipa.noarch                                 0.3.8-1.el8                                            AppStream
ansible-freeipa-tests.noarch                           0.3.8-1.el8                                            AppStream
ansible-pcp.noarch                                     2.2.1-1.el8                                            AppStream
centos-release-ansible-29.noarch                       1-2.el8                                                extras
[root@ansible ~]# dnf -y install centos-release-ansible-29-1-2.el8.noarch
[root@ansible ~]# ls /etc/yum.repos.d/ |grep ansible
CentOS-SIG-ansible-29.repo
[root@ansible ~]# dnf -y install ansible//查看ansible的版本
[root@ansible ~]# ansible --version
ansible 2.9.27config file = /etc/ansible/ansible.cfgconfigured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python3.6/site-packages/ansibleexecutable location = /usr/bin/ansiblepython version = 3.6.8 (default, Sep 10 2021, 09:13:53) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]//通过使用setup模块验证localhost上的ansible_python_version
[root@ansible ~]# ansible -m setup localhost | grep ansible_python_version"ansible_python_version": "3.6.8",

什么是ansible相关推荐

  1. Ansible免密码登陆

    配置Linux主机无密码访问 生成秘钥 ssh-keygen -t rsaGenerating public/private rsa key pair. Enter file in which to ...

  2. centos7+ansible自动化工具使用

    一.基础介绍 ========================================================================================== 1. ...

  3. 一星期没完成Ansible任务

    这个星期,前4天,我在看Nginx,没有深入Ansible. 这几天我有思考做Ansible的哪个方面,现在我用Ansible可以用,但是没有生产环境,我对基础部分热情不是特别大,应该是基础部分大家在 ...

  4. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇

    本节书摘来自华章出版社<Ansible权威指南 >一书中的第1章,第1.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 ...

  5. 自动化运维工具Ansible

    ansible简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批 ...

  6. ZStack--通过Ansible实现全自动化

    2019独角兽企业重金招聘Python工程师标准>>> Agent是一种常见的IaaS软件管理设备的方式:例如,ZStack使用Python agents去管理KVM主机.因为海量的 ...

  7. Ansible源码解析 Inventory组概念

    group.py 作者 煮酒品茶 一个组的Class,包含对外方法以及属性如下. 组做为inventory的子节点,会有嵌套组,组变量,组内主机,子组,父组的一些概念 [ 'name', 'hosts ...

  8. Ansible批量安装mysql数据

    1.构建安装目录 mkdir -p /ansible/roles/mysql/{defaults,files,handlers,meta,tasks,templates,vars} defaults ...

  9. Ansible基础一Playbook(二)

    摘自:http://www.ansible.com.cn/docs/playbooks_intro.html Handlers: 在发生改变时执行的操作 (当发生改动时)'notify' action ...

  10. 自动化运维工具----ansible

    自动化运维工具----ansible ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能. 主要模块以及功能 ...

最新文章

  1. 《人工智能北京共识》发布,全文公开
  2. 212页PPT详解MEMS微传感器的工作原理(深入全面!)
  3. 4步美化报表教程,这样汇报工作直接拿满分
  4. android Set的遍历
  5. Android App内部自动更新Library的使用(转载)
  6. 利用相机SDK采相转换至HImage
  7. 玩转算法面试-第二章
  8. poj3061 尺取法 挑战程序设计竞赛
  9. 建班子:企业需要建立什么样的班子?
  10. docker︱docker run的解读与一键部署
  11. is not a registered tag library. Must be one of:
  12. 推荐几款MySQL图形化客户端管理工具
  13. 如何快速提交网站备案 ICP备案
  14. 蓝桥杯国赛之光敏电阻传感器
  15. ma系列之-17-磁盘和文件系统1
  16. 物联网共享单车有什么物联技术?
  17. kaggle:Quora Insincere Questions Classification
  18. 骗子、假先知们一夜暴富背后:区块链是回归互联网本来意义的唯一希望|深度
  19. 华为技术官又出神作,鸿蒙操作系统完整文档笔记现已疯传
  20. matlab两个图共用一个x轴_Matlab绘制多x轴和多y轴图(双x双y轴/单x双y轴/双x单y轴图等),及坐标轴参数汇总...

热门文章

  1. 高创伺服电机飞车问题
  2. fastdfs mysql_FastDFS介绍 - KG-鲜血、汗水和眼泪 - OSCHINA - 中文开源技术交流社区
  3. Nodeway--基于node.js的轻量级前后端分离框架
  4. mysql using btree_mysql 索引中的USING BTREE有什么用
  5. 字符统计2 SDUT
  6. Android开发之语音识别
  7. Python安装whl文件之坑
  8. 营销建议 | 通兑吧3月营销月历来啦,建议收藏套用!
  9. 如何替换视频背景为其它的场景?
  10. 微信公众号接入Chat GPT实现人工智能对话聊天(java代码实现)