??Ansible介绍

news2024/9/21 22:56:02

文章目录

    • 一、Ansible基本概述
      • 1、什么是以及特性
        • 1)是什么:
        • 2)功能
      • 2、架构下充当的角色:
      • 3、同软件对比
        • Ansible与SaltStack
          • *YAML的基本语法
        • Ansible与其他同类软件对比
      • 4、Ansible的架构组成
      • 5、Ansible的执行流程
    • 二、简单测试Ansible
      • 1、m01安装ansible
        • *1)ansible默认信息:
        • 2)Ansible配置文件内容:
        • 3)ansible的一些选项:
      • 2、m01配置主机清单
        • 0)主机清单有什么:
        • 1)主机清单配置文件语法????
        • 2)使用密钥连接方式来配置:
          • 前提条件:
          • 测试:

一、Ansible基本概述

1、什么是以及特性

1)是什么:

自动化统一配置管理工具,集成了丰富模块及功能组件,可通过一个命令完成一系列操作

2)功能
  • 远程执行
  • 事件驱动,对服务进行不同的事件驱动
  • 管理公有云,不如saltstack
  • 便于二次开发(基于Python,便于运维二次开发)
  • 任务编排(通过playbook)
  • 跨平台系统

2、架构下充当的角色:

作为管理机(m01)给下面的多种业务的服务器进行批量下发执行任务
架构

3、同软件对比

Ansible与SaltStack
  • Ansible是串行执行的(一个接一个的代码执行),只通过SSH,大规模环境下执行速度慢,但它是有Python开发的,便于运维人员进行二次开发

  • Saltstack是并行的

SaltStack 和 Ansible 都是流行的配置管理和自动化工具,它们在自动化 IT
任务方面各有优势。以下是它们之间的一些关键对比点,以及为什么培训机构可能更倾向于培训 Ansible 而不是 SaltStack。

  1. 架构和设计
  • SaltStack

    • 采用了主从架构,其中 Salt Master 控制多个 Salt Minion(代理)。
    • 支持实时的命令执行,适合大规模的环境。
    • 使用 ZeroMQ 作为通信协议,提供快速、异步的执行方式。
  • Ansible

    • 采用无代理(agentless)的架构,使用 SSH 协议与远程主机通信。
    • 适合中小型环境,或希望减少维护代理的需求。
    • 配置和任务执行更为简单直观。
  1. 易用性和学习曲线
  • SaltStack

    • 由于其复杂的架构和多样的功能,学习曲线相对较陡。
    • 配置文件和管理命令可能对新手来说较为复杂。
  • Ansible

    • 使用 YAML 作为配置语言,相对易于理解和编写。
    • 无需在目标机器上安装额外的代理,减少了复杂性。
    • 更适合快速上手和初学者。
  1. 社区和支持
  • SaltStack

    • 虽然有强大的社区,但相对于 Ansible,其社区的规模和活跃度可能较低。
    • 商业支持(如 SaltStack Enterprise)也可用,但需要额外费用。
  • Ansible

    • 拥有非常活跃和广泛的社区支持,用户可以容易地找到资源和帮助。
    • Red Hat 对 Ansible 提供了企业级支持,这进一步增强了其在商业环境中的吸引力。
  1. 功能和扩展性
  • SaltStack

    • 提供强大的实时执行功能和扩展性。
    • 更适合需要高实时性和复杂配置管理的环境。
  • Ansible

    • 提供了强大的模块和插件系统,适合多种环境。
    • 对于配置管理和任务自动化,功能也相当全面,但在实时性方面可能不如 SaltStack。

为什么培训机构更倾向于培训 Ansible?

  1. 易用性:Ansible 的无代理架构和简单的 YAML 配置语言使其更容易学习和使用,降低了入门难度。

  2. 广泛应用:Ansible 的流行程度高,许多公司使用 Ansible 进行自动化操作,因此掌握 Ansible 对求职者更有利。

  3. 社区支持:Ansible 拥有广泛的社区支持和丰富的在线资源,学习者可以更容易找到解决方案和帮助。

  4. 企业支持:Red Hat 对 Ansible 的支持提升了其在企业环境中的可信度,企业对 Ansible 的需求也促使培训机构优先考虑 Ansible。

综上所述,Ansible 的易用性、广泛的社区支持以及企业级支持使其成为培训机构更倾向于培训的工具。而 SaltStack
的强大功能和复杂性可能需要更多的专门培训和资源,这对于许多培训机构来说可能是一个挑战。

*YAML的基本语法

YAML(YAML Ain’t Markup
Language)是一种简洁的标记语言,用于数据序列化,常用于配置文件和数据交换。其语法设计简洁易读,下面是 YAML
的基本语法规则和一些示例:

一. 基础语法

  • 缩进:YAML 使用缩进来表示层级关系,通常使用两个空格作为缩进(不推荐使用制表符)。
  • 键值对:键和值之间用冒号和空格分隔,例如:key: value
  • 列表:用连字符(-)表示列表项,例如:
- item1
- item2

二. 基本示例

键值对

name: John Doe
age: 30
is_student: false

列表

fruits:
  - Apple
  - Orange
  - Banana

字典

person:
  name: Jane Doe
  age: 25
  address:
    street: 123 Elm St
    city: Anytown

三. 多行字符串

  • 折叠式(>:将多行文本折叠成单行,换行符会被转换为空格。
description: >
  This is a long description
  that spans multiple lines.

结果为:"This is a long description that spans multiple lines."

  • 保留式(|:保留换行符,将多行文本保留原样。
description: |
  This is a long description
  that spans multiple lines.

结果为:

This is a long description
that spans multiple lines.

四. 复杂数据结构

嵌套列表和字典

employees:
  - name: Alice
    position: Engineer
    skills:
      - Python
      - Docker
  - name: Bob
    position: Designer
    skills:
      - Photoshop
      - Illustrator

五. 注释

YAML 使用 # 来添加注释,注释可以放在行尾或单独占用一行。

name: John Doe  # This is a comment
age: 30

六. 数据类型

  • 整数age: 30
  • 浮点数height: 1.75
  • 布尔值is_student: true
  • 空值middle_name: null

七. 锚点和别名

  • 锚点(&:定义一个锚点,后续可以引用。
defaults: &defaults
  color: blue
  size: medium
  • 别名(*:引用锚点。
item1:
  <<: *defaults
  type: T-shirt

八. 复杂结构

引用

defaults: &defaults
  color: blue
  size: medium

item1:
  <<: *defaults
  type: T-shirt

组合

store:
  name: Example Store
  items:
    - name: Widget
      price: 19.99
    - name: Gizmo
      price: 25.00

YAML 的语法简洁明了,易于阅读和编写。了解这些基本语法规则和示例,可以帮助你有效地使用 YAML 来编写配置文件和进行数据序列化。

Ansible与其他同类软件对比

Ansible 是一种流行的自动化工具,用于配置管理、应用部署和任务自动化。与 Ansible 类似的其他工具也提供了类似的功能,但它们在设计理念、使用方式和特性上有所不同。下面是对 Ansible 和几种同类软件的比较:

一. Ansible

  • 特点

    • 声明式配置:通过 YAML 文件定义“期望的状态”。
    • 无代理架构:直接通过 SSH 与目标主机通信,无需在目标主机上安装代理。
    • 简易上手:语法简单明了,适合快速上手。
    • 强大的社区支持:拥有丰富的模块和插件,适用于各种操作系统和应用。
  • 适用场景

    • 配置管理
    • 应用部署
    • 多机协作

二. Chef

  • 特点

    • 声明式与命令式:使用 Ruby 语言编写的“食谱”定义期望状态和操作步骤。
    • 客户端-服务器架构:需要在目标主机上安装 Chef 客户端,并与 Chef 服务器通信。
    • 灵活性强:支持复杂的配置逻辑,但学习曲线较陡。
  • 适用场景

    • 配置管理
    • 自动化基础设施管理

三. Puppet

  • 特点

    • 声明式配置:使用 Puppet DSL(声明式语言)编写配置。
    • 客户端-服务器架构:在目标主机上安装 Puppet 客户端,与 Puppet 服务器通信。
    • 强大的功能:适合大型环境和复杂的配置管理,但配置文件语法较复杂。
  • 适用场景

    • 配置管理
    • 服务器管理
    • 自动化任务

四. SaltStack

  • 特点

    • 声明式与命令式:使用 YAML 文件和 Python 代码定义状态。
    • 客户端-服务器架构与无代理架构:支持通过 SSH 或 Salt Minions 进行通信。
    • 高性能:高效的并发执行,适合大规模环境。
  • 适用场景

    • 配置管理
    • 实时系统监控
    • 自动化任务

五. Terraform

  • 特点

    • 声明式配置:使用 HashiCorp Configuration Language (HCL) 定义基础设施。
    • 基础设施即代码:专注于基础设施的创建、更新和管理。
    • 无状态:不直接处理配置管理,但通过提供 Terraform Provider 实现资源管理。
  • 适用场景

    • 云基础设施管理
    • 基础设施自动化
    • 跨平台资源管理

六. CFML (CloudFormation)

  • 特点

    • 声明式配置:使用 JSON 或 YAML 描述 AWS 资源和配置。
    • AWS 专属:专门用于管理和自动化 AWS 资源。
    • 集成度高:与 AWS 服务紧密集成。
  • 适用场景

    • AWS 资源管理
    • 云基础设施自动化

七、比较总结

  • 语言和语法

    • Ansible:YAML(易于阅读和编写)
    • Chef:Ruby(功能强大但学习曲线陡)
    • Puppet:Puppet DSL(功能强大,但语法较复杂)
    • SaltStack:YAML 和 Python(灵活性高)
    • Terraform:HCL(专注于基础设施管理)
    • CFML:JSON 或 YAML(AWS 专用)
  • 架构

    • 无代理:Ansible、SaltStack(支持无代理或代理)
    • 客户端-服务器:Chef、Puppet
    • 基础设施管理:Terraform、CFML(主要用于资源创建与管理)
  • 适用场景

    • 配置管理和应用部署:Ansible、Chef、Puppet、SaltStack
    • 基础设施管理:Terraform、CFML

选择合适的工具取决于你的需求,例如环境规模、所需功能、学习曲线以及现有的技术栈。

4、Ansible的架构组成

在这里插入图片描述
在这里插入图片描述

5、Ansible的执行流程

在这里插入图片描述

二、简单测试Ansible

在这里插入图片描述

1、m01安装ansible

yum install ansible
*1)ansible默认信息:
  • 使用/etc/ansible/hosts作为主机清单,如果需要指定,那么使用-i选项
    在这里插入图片描述
ansible -i /etc/myansible/hosts
  • 使用commad模块,如果需要指定,那么使用-m 模块名选项
2)Ansible配置文件内容:

??????/etc/ansilbe/???.cfg

3)ansible的一些选项:

????

2、m01配置主机清单

0)主机清单有什么:

包含被管理的机器的认证信息

1)主机清单配置文件语法????
2)使用密钥连接方式来配置:
[web_group]
web01 ansible_ssh_root=172.16.1.7
web02 ansible_ssh_root=172.16.1.8
前提条件:
  • 配置Ansible的机器(管理机m01)与主机清单里的机器需要实现建立密钥免密连接
  • 上面的“web01”、“web02”这些名字值得指的是主机名,需要在配置Ansible的机器(管理机m01)的DNS域名解析文件中写上才能识别
#CentOS7中的
vim /etc/hosts

	# 编辑/etc/hosts:
	.....
	172.16.1.7	web01
	172.16.1.8	web02
	.....
测试:
# e.g1
ansible web_group -m ping
# e.g2
ansible web01 -m ping
# e.g3
ansible  172.16.1.8 -m ping

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2139533.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Unity踩坑】为什么有Rigidbody的物体运行时位置会变化

先上图&#xff0c;不知你有没有注意过这个现象呢&#xff1f; 一个物体加上了Rigidbody组件&#xff0c;当勾选上Use Gravity时&#xff0c;运行后&#xff0c;这个物体的位置的值会有变化。这是为什么呢&#xff1f; 刚体由物理系统处理&#xff0c;因此它会对重力、碰撞等做…

Spring注解@Value的基本知识(附Demo)

目录 前言1. 基本知识2. 高级用法3. 彩蛋 前言 对于Java的基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 1. 基本知识 Value 是 Spr…

Python酷库之旅-第三方库Pandas(118)

目录 一、用法精讲 521、pandas.DataFrame.drop_duplicates方法 521-1、语法 521-2、参数 521-3、功能 521-4、返回值 521-5、说明 521-6、用法 521-6-1、数据准备 521-6-2、代码示例 521-6-3、结果输出 522、pandas.DataFrame.duplicated方法 522-1、语法 522-2…

每个企业都需要 (但未使用) 的 BYOD 安全解决方案

远程办公模式的转变彻底改变了组织管理员工设备的方式。如今&#xff0c;员工希望能够灵活地在任何地方使用任何设备工作&#xff0c;这导致自带设备 (BYOD) 政策被广泛采用。 但随着越来越多的企业采用BYOD&#xff0c;一个问题依然摆在眼前&#xff1a;如何在不侵犯个人隐私…

ChatGPT的底层逻辑

“一些未知的东西正在做我们不知道的事情。” —— 阿瑟爱丁顿 “为何不尝试制作一个模拟儿童思维的程序呢&#xff1f;” —— 艾伦图灵 “只要是人脑能提出的问题&#xff0c;它就能够得到解决。” —— 库尔特哥德尔 开始 传说中的扫地僧&#xff0c;在现实中极其罕见。 有…

【题解】—— LeetCode一周小结37

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 【题解】—— 每日一道题目栏 上接&#xff1a;【题解】—— LeetCode一周小结36 9.合并零之间的节点 题目链接&#xff1a;2181. 合并零之间…

【嵌入式硬件开发基础】Arduino板常用外设及应用:MPU6050空间运动传感器(简介,类库函数,卡尔曼滤波),继电器(原理介绍,含应用实例/代码)

当一个人不能拥有的时候,他唯一能做的便是不要忘记。 🎯作者主页: 追光者♂🔥 🌸个人简介: 📝[1] CSDN 博客专家📝 🏆[2] 人工智能领域优质创作者🏆 🌟[3] 2022年度博客之星人工智能领域TOP4🌟 🌿[4] 2023年城市之星领跑者TOP1(哈尔滨…

Python3时间模块使用

文章目录 python安装时间处理模块概述time 模块常用方法 datetime 模块常用方法 时间戳与 datetime 的相互转换时区处理使用 pytz 设置时区 实际应用场景日志时间处理时间差计算不同时区的时间转换 结论 在 Python 编程中&#xff0c;时间处理和时间格式转换是非常常见的需求&a…

毕业论文基于Web的快递中心系统的设计与实现

一、研究的现状及其意义 快递行业是一种发展潜力巨大的新兴行业&#xff0c;随着我国的电子商务蓬勃发展和日益成熟&#xff0c;网购已经成为了现今人们主要的购物方式&#xff0c;与此同时&#xff0c;与网购紧密相连的快递行业随之也得到了飞速发展。我国的快递行业起步阶段为…

2024/9/15 408大题专项训练之存储系统

怎么看组相联、全相联、直接映射&#xff1f; 全相联&#xff1a;一个一个比 直接映射&#xff1a;就一个等号就行 组相联&#xff1a; cache大小怎么算&#xff1f;

Linux设备驱动开发:从基础理论到实战经验的全面解析

Linux操作系统因其开源性和灵活性&#xff0c;在服务器、嵌入式系统乃至桌面环境中得到了广泛应用。作为操作系统的核心组件之一&#xff0c;设备驱动程序负责管理硬件资源&#xff0c;使硬件设备能够高效地与操作系统及应用程序交互。本文将深入探讨Linux设备驱动开发的基础知…

Hadoop 技术详解:架构、应用与未来发展

1. Hadoop 简介 1.1 背景与起源 随着互联网的快速发展&#xff0c;数据量呈现爆炸式增长&#xff0c;传统的集中式计算和存储方式无法有效应对这些大规模数据的处理需求。为了解决这一问题&#xff0c;Google 在 2003 年发布了三篇具有革命性的论文&#xff1a;《Google File…

【算法】动态规划—最长公共子序列

最长公共子序列问题就是求出两个字符串的LCS长度&#xff0c;是一道非常经典的面试题目&#xff0c;因为它的解法是典型的二维动态规划。 比如输入 str1 "babcde", str2 "acbe"&#xff0c;算法应该输出3&#xff0c;因为 str1 和 str2 的最长公共子序列…

在线查看 Android 系统源代码 Git repositories on android

在线查看 Android 系统源代码 Git repositories on android 1. Git repositories on android1.1. Android Make Build System1.2. Android Open Source Project Code Review References 1. Git repositories on android https://android.googlesource.com/ 1.1. Android Make …

基于VUE的老年颐养中心系统的设计与实现计算机毕业论文

根据联合国的预测&#xff0c;2000-2050年将是我国人口年龄结构急剧老化的阶段&#xff0c;老化过程大致也可分为三个阶段&#xff1a;第一阶段&#xff0c;65岁及以上人口比例从2000年的6.97%上升到2020年的11.7%&#xff0c;20年时间仅上升4.63个百分点。第二阶段为2020-2040…

LVGL 控件之列表(lv_list)

目录 一、概述二、列表1、添加列表按钮2、设置列表文本3、API 函数 一、概述 List&#xff08;列表&#xff09; 基本上是一个垂直布局的矩形&#xff0c;按钮指向该矩形并且可以添加文本。 列表部件由两个部分组成&#xff1a; LV_PART_MAIN 使用所有典型背景属性的列表的主…

推荐|基于springBoot智能推荐的卫生健康系统设计与实现(源码+论文+数据库)

私信或留言即免费送开题报告和任务书&#xff08;可指定任意题目&#xff09; 目录 一、摘要 二、相关技 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取&#xff1a; 一、摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;…

打造下一个AI拥抱视频热潮:从CloneAI的成功中汲取灵感

在科技与创意的交汇点,CloneAI以其敏锐的洞察力和高效的执行力,在短时间内迅速崛起,成为App Store的明星应用。其成功不仅在于抓住了AI技术的浪潮,更在于精准地利用了社交媒体的趋势,创造了一个独特的用户体验。对于希望复刻这一成功的开发者们来说,CloneAI的经验无疑是一…

DolphinScheduler基础讲解

一、DolphinScheduler 概述 DolphinScheduler 是一个分布式、轻量级的大数据任务调度平台&#xff0c;旨在帮助企业高效管理和调度复杂的工作流。它通过图形化界面&#xff0c;简化了任务定义、依赖设置以及调度执行的过程&#xff0c;极大降低了用户上手的门槛。作为 Apache …

【homebrew安装】踩坑爬坑教程

homebrew官网&#xff0c;有安装教程提示&#xff0c;但是在实际安装时&#xff0c;由于待下载的包的尺寸过大&#xff0c;本地git缓存尺寸、超时时间的限制&#xff0c;会报如下错误&#xff1a; error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly&#xf…