Ansible介绍与安装

文章目录

  • Ansible介绍与安装
    • 介绍 Ansible
      • 什么是 Ansible?
      • Ansible 无需代理
      • Ansible方式
      • ansible工作模式
      • Ansible的作用目标:
    • 常用的自动化管理和特点
      • Puppet
      • CHEF
      • CFEngine
      • Foreman
      • Katello
      • Nagios
    • 安装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 围绕无代理架构构建。通常而言,Ansible 通过 OpenSSH 或 WinRM 连接它所管理的主机并且运行任务,方法通常是将称为 Ansible 模块的小程序推送至这些主机。这些程序用于将系统置于需要的特定状态。在 Ansible 运行完其任务后,推送的所有模块都会被删除。

Ansible 不需要批准使用任何特殊代理,然后再部署到受管主机上。由于没有代理,也不需要额外的自定义安全基础架构,

Ansible 具有多个重要的优点:

  • 跨平台支持:Ansible 提供Linux、Windows、UNIX和网络设备的无代理支持,适用于物理、虚拟、云和容器环境。
  • 人类可读的自动化:Ansible Playbook采用YAML文本文件编写,易于阅读,有助于确保所有人都能理解它们的用途。
  • 完美描述应用:可以通过 Ansible Playbook进行每种更改,并描述和记录应用环境的每一个方面。
  • 轻松管理版本控制:Ansible Playbook和项目是纯文本。它们可以视作源代码,放在现有版本控制系统中。
  • 支持动态清单:可以从外部来源动态更新 Ansible 管理的计算机列表,随时获取所有受管服务器的当前正确列表,不受基础架构或位置的影响。
  • 编排可与其他系统轻松集成:能够利用环境中现有的 HP SA、Puppet、Jenkins、红帽卫星和其他系统,并且集成到 Ansible 工作流中。

Ansible方式

Ansible 的设计宗旨是工具易用,自动化易写易读。所以在创建自动化时我们应追求简单化。

Ansible 自动化语言围绕简单易读的声明性文本文件来构建。正确编写的 Ansible Playbook可以清楚地记录你的工作自动化。

Ansible 是一种要求状态引擎。它通过表达你所希望系统处于何种状态来解决如何自动化IT部署的问题。Ansible 的目标是通过仅执行必要的更改,使系统处于所需的状态。试图将 Ansible 视为脚本语言并非正确的做法。

ansible工作模式

ansible分为两种工作模式:

一是adhoc(点对点模式):此模式相当于对管理主机执行单个的shell命令

二是playbook(剧本模式):该模式应用较多,该模式是指将一系列任务整合形成一个剧本,以此来达成某种功能(譬如部署某个服务,数据库备份等)的目的。

上述两种模式可类比于一个是执行单个shell命令,一个是shell脚本。

Ansible的作用目标:

1.自动化部署APP
2.自动化管理配置项
3.自动化的持续交付
4.自动化的云服务管理

常用的自动化管理和特点

Puppet

Puppet是一款开源工具,旨在为系统管理员大大简化自动化和报告工作。它基本上是款配置管理软件,有助于配置和维护企业网络中的服务器及其他系统。系统管理员通常每天要花大量时间重复做同样的任务。他们总是想要使这些任务实现自动化,以便有更多的时间来处理其他项目或学习新的概念和脚本语言。管理员可以通过编写脚本使任务实现自动化,但是在拥有大型网络的公司,脚本不是很方便。这时候,Puppet就大有用场,因为借助Puppet,你可以:

  1. 为网络上的每个主机定义独特的配置设置;
  2. 不断监测网络,查找任何变动;
  3. 帮助高效地创建和管理用户;
  4. 帮助管理每个开源工具的配置设置。

CHEF

Chef是另一款可供Linux系统管理员使用的流行的自动化工具。它用Ruby和Erlang编写,对于配置和维护公司的服务器大有帮助,无论贵公司拥有十台服务器还是上百台。它还可以帮助你将云端服务器与亚马逊EC2、OpenStack、RackSpace或谷歌云整合起来。Chef可以将你的基础设施转变成代码,那样借助代码,你只要更改几行代码,就能轻松撤下一台服务器,从而让你轻松管理服务器。物理节点还意味着:将变更内容部署到生产环境之前,可以对它轻松进行测试,你还可以轻松控制针对代码的每次更新的版本。Chef DK为你提供了测试和管理配置的所有工具,Chef Server充当你所有“菜谱”(recipe)的存储库,可以管理与服务器连接的每个节点。Chef客户软件在每个客户端上运行,时不时收到服务器方面的信息,从而更新其配置设置。

CFEngine

面向Linux系统管理员的下一款自动化工具是CFEngine,这是另一个领先的自动化系统,可帮助你轻松管理整套基础设施,并使之实现自动化。一旦你使用CFEngine为网络中的系统定义了配置,那么CF Engine就会自动确保配置符合规范。不用说,如果你的网络中有10个或100个节点,可以在短短几秒内更新或改动任何一个节点或所有节点。CFEngine之所以受到许多Linux系统管理员的青睐,是由于它运行成本低、响应速度快、具有自愈合功能。

Foreman

Foreman是另一种用于取证分析的开源配置管理工具。Foreman提供了仪表板,我们可以通过仪表板来配置裸机服务器和虚拟机。默认情况下,无论我们何时安装Foreman,它都使用Puppet作为配置工具。不过借助插件,Foreman还支持与其他配置管理工具整合起来,比如Chef、Puppet、Ansible、Salt及其他众多工具。Foreman自动化工具还随带各种各样的接口,包括命令行接口、Web前端以及REST API。Foreman的其他一些显著功能包括如下:

  1. 通过仪表板,管理Puppet模块和puppet类方面的改动;
  2. 很容易从Foreman仪表板来管理Puppet环境;
  3. 由于仪表板,创建主机群(Hosts Group)以及为主机群添加puppet模块变得很轻松;
  4. 可以从Foreman仪表板,轻松添加Puppet模块或推送到节点。

Katello

Katello是另一种开源自动化工具。换而言之,我们可以说Katello是一种开源版的Red Hat satellite Server;如果我们不想花钱在企业产品及其支持上,就可以用它来代替Red Hat satellite Server。Katello已被Foreman收购,Foreman中的大部分功能在Katello中也得到了支持。Katello Server的主要功能如下:

  1. 给基于Linux的服务器(RHEL和CentOS )打补丁;
  2. 使用Pulp Service来同步代码库;
  3. 使用Foreman进行各种配置;
  4. 它还可以处理订阅内容管理,并审计所有已部署的软件包;
  5. 借助Katello,你可以为所有主机创建主机群,另外还可以在单一主机或一群主机上批量执行操作。

Nagios

Nagios现在名为Nagios Core,它是一种开源自动化和监控工具,可以管理基础设施中的所有系统。它还提供警报服务,一旦察觉到你的网络中哪里有问题,就会提醒系统管理员。借助SNMP以及Nagios,系统管理员还可以控制并管理打印机、路由器和交换机。Nagios让我们得以创建事件处理工具,一旦某个应用程序及其服务停运,就可以自动重启出现故障的那个应用程序及其服务。

安装Ansible

//查看ansible的源
[root@localhost ~]# dnf list all | grep ansible
Failed to set locale, defaulting to C.UTF-8
ansible-collection-microsoft-sql.noarch                1.2.4-1.el8                                                appstream
ansible-collection-redhat-rhel_mgmt.noarch             1.1.0-2.el8                                                appstream
ansible-core.x86_64                                    2.13.3-1.el8                                               appstream
ansible-freeipa.noarch                                 1.8.4-1.el8                                                appstream
ansible-freeipa-tests.noarch                           1.8.4-1.el8                                                appstream
ansible-pcp.noarch                                     2.2.5-1.el8                                                appstream
ansible-test.x86_64                                    2.13.3-1.el8                                               appstream
centos-release-ansible-29.noarch                       1-2.el8                                                    extras    //安装ansible的源
[root@localhost ~]# dnf -y install centos-release-ansible-29
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-SIG-ansible-29.repo    CentOS-Stream-HighAvailability.repo
CentOS-Stream-AppStream.repo  CentOS-Stream-Media.repo
CentOS-Stream-BaseOS.repo     CentOS-Stream-PowerTools.repo
CentOS-Stream-Debuginfo.repo  CentOS-Stream-RealTime.repo
CentOS-Stream-Extras.repo//安装ansible
[root@localhost ~]# dnf -y install ansible
[root@localhost ~]# 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, Dec  3 2020, 18:11:24) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]//通过使用setup模块验证localhost上的ansible_python_version
[root@localhost ~]# ansible localhost -m setup | grep ansible_python_version"ansible_python_version": "3.6.8",

Ansible介绍与安装相关推荐

  1. Ansible介绍、安装、远程执行命令、拷贝文件或者目录、远程执行脚本

    Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,cent ...

  2. ansible介绍、安装、远程执行命令、拷贝文件或目录、远程执行脚本、管理任务计划、安装包和管理服务、playbook、变量、循环、条件判断、handlers、安装nginx、管理配置文件

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

  3. Ansible架构介绍与安装

    Ansible介绍与安装 一.介绍 Ansible 什么是 Ansible? Ansible是一款自动化运维工具,其主要功能是帮助运维实现IT工作的自动化.降低人为操作失误.提高业务自动化率.提升运维 ...

  4. Ansible简单介绍及安装部署详解

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

  5. ansible的介绍与安装

    Ansible的介绍与安装 文章目录 Ansible的介绍与安装 一.什么是ansible 二.ansible优点 三.ansible管理方式 四.ansible系统架构 五.ansible任务执行模 ...

  6. Ansible 介绍和架构、特性

    Ansible 介绍和架构 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开 ...

  7. ansible架构、安装、简单的使用

    1.ansible运维工具 1.1 ansible介绍 一款系统开发开源的配置和自动化工具,基于python写成类似于saltstack和Puppet. 基于模块工作的,本身没有批量部署的能力,批量部 ...

  8. ansible实战应用系列教程2:ansible介绍

    ansbile实战应用系列教程2:ansible介绍 ansible 介绍 ansible特点 Ansible的优势: ansible架构 ansible的思想: ansible使用场景: ansib ...

  9. python介绍与安装(一)

    python介绍与安装(一) 1.python语言介绍 1.1 介绍 编程语言的分类主要有一下几个维度,编译型和解释性:静态语言和动态语言:强类型语言和弱类型语言. Python 是一个高层次的结合了 ...

最新文章

  1. python翻译程序-python实现翻译word表格小程序
  2. ueditor 1.4.3 JSP 配置
  3. centos修改磁盘uuid_CentOS 6如何修改磁盘配额限制
  4. python约瑟夫环_Python实现约瑟夫环问题的方法
  5. lis25ba_LIS25BA - MEMS数字输出运动传感器:低噪声,高带宽,3轴加速度计,带TDM接口 - STMicroelectronics...
  6. 牛客网【每日一题】4月28日题目精讲 美味菜肴
  7. java nginx 例子_Java及nginx实现文件权限控制代码实例
  8. linux串口编程实例_Linux 网络编程——原始套接字实例:发送 UDP 数据包
  9. python 学习2 /输入/ 输出 /列表 /字典
  10. 图说Hadoop HA
  11. ue4打包安卓发送udp报文_内核udp报文截取、修改和发送
  12. 关于try...catch...finally中return的疑惑
  13. 第十五章 项目收尾与验收
  14. 学术会议论文查重吗_会议论文会不会进行摘要查重?
  15. 【WINDOWS / DOS 批处理】添加注释
  16. java 保存图片_java后台接受到图片后保存方法
  17. 04 CoCos Creator-Please make sure java is installed and JAVA_HOME
  18. React hooks组件通信
  19. 域名、dns、服务器、IP、主机名(写的好)
  20. oracle数据库安装与打开,Oracle数据库在Linux 中的安装与启动动

热门文章

  1. Claude回答ARINC653标准在中国大陆的应用情况
  2. 数据结构(选择练习)
  3. VMware 安装 银河麒麟高级服务器操作系统 V10 + QT 开发环境搭建
  4. 爬虫管理平台Crawlab v0.4.3发布(界面上点几下就可安装pip或npm依赖)
  5. 如何从Excel表格导入数据批量生成二维码 1
  6. 弹性布局flex-basis的理解
  7. python-谁是卧底小游戏
  8. 常见 TCP 拥塞避免算法浏览(下)
  9. jdk11~13支持在线调用本地编译并显示到网页上【Java代码助手】
  10. 「微信二次分享」➡️ 自定义标题和图片