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. ubuntu 14.04 64 bit上开启nscd服务缓存加速及清除dns缓存
  2. 有关计算机辅助教学方面的问题,浅析高校计算机辅助教学应用的有关问题
  3. PKI/CA 技术的介绍
  4. FI模块组织机构配置文档
  5. 论记笔记的重要性:以三个电影为例
  6. Android动画模式
  7. JavaScript跳转到页面某个锚点#
  8. vue项目通讯录_vue组件--通讯录
  9. 计算机网络计算下一跳
  10. 12306html布局,12306无法登陆怎么办
  11. 程序员七夕表白方法来了,带走!
  12. RTL8188CUS驱动程序编译步骤
  13. 【Unity3D】基于AssetBundle实现资源热更新
  14. msib450i gaming plus ac 开机vga长亮
  15. dataframe的两列转换成字典的key和value
  16. 电脑蜂鸣声,一直滴滴滴叫
  17. DCDC输出纹波大的原因
  18. 干货面试教程!用友java开发工程师待遇
  19. linux离线升级补丁,Ubuntu 8.04(LTS)离线升级包使用指南
  20. uboot分区和内核MTD分区

热门文章

  1. windows xp professional 序列号(密钥)及百度网盘下载地址
  2. anaconda添加 channels
  3. 华为畅享20plus和荣耀x10区别的区别 哪个好
  4. 蚂蚁集团深耕海外支付在俄罗斯成立合资企业
  5. 黄金代理协议是什么?
  6. EBS AME:AME授权
  7. 华为手机网络连接不可用怎么解决_“怎么造”和“有啥用”——5G手机亟需解决的两个现实问题...
  8. RPA手把手——项目需求客户要求把表格数据下载时,备份到数据库
  9. 关于七巧板中某些需要提一嘴的技术实现
  10. 今日头条这么厉害,被称为宇宙条!到底用了什么牛逼技术!