ansible(第一天)

news2024/12/26 0:18:40

第一章:认识ansible

一、ansible的安装与介绍

1.Ansible软件及公司

ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具。

这个工具的目标有这么几项:让我们自动化部署APP;自动化管理配置项;自动化的持续交付;自动化 的(AWS)云服务管理。

AnsibleWorks成立于2012年,由自动化工具Cobbler及Func的开发者Michael DeHaan创建。其Ansible 平台是一个开源的配置及计算机管理平台。可实现多节点的软件部署,执行特定任务并进行配置管理。

Ansible跟其他IT自动化技术的区别在于其关注点并非配置管理、应用部署或IT流程工作流,而是提供一 个统一的界面来协调所有的IT自动化功能,因此Ansible的系统更加易用,部署更快。受管理的节点无需 安装额外的远程控制软件,由平台通过SSH(Secure SHell)对其进行管理,因此十分方便。其模块支持 JSON等标准输出格式,可采用任何编程语言重写。

Ansible可以让用户避免编写脚本或代码来管理应用,同时还能搭建工作流实现IT任务的自动化执行。IT 自动化可以降低技术门槛及对传统IT的依赖,从而加快项目的交付速度。

目前,Ansible已有30万用户,每月下载量接近3万次。其客户包括AppDynamics、Evernote 、MapR 以及金融服务、电信、医疗保健、媒体业的财富500强公司。

项目地址:https://github.com/ansible/ansible

商业版:http://www.ansibleworks.com/

免费版:http://www.ansibleworks.com/docs/

1.1 什么是ansible

Ansible是近年越来越火的基于python开发的一款运维自动化工具,主要帮助运维实现IT工作的自动化、 降低人为操作失误、提高业务自动化率、提高运维工作效率。Ansible是基于模块来运行,它本身没有任 何批量部署的能力,Ansible主要是提供一种批量部署的框架。 常用于软件部署自动化、配置自动化、 管理自动化、系统化系统任务、持续集成、零宕机平滑升级等。

1.2 为什么要选择ansible

1. Ansible完全基于Python开发,而 DevOps(促进开发、技术运营和质量保障(QA)部门之间的沟 通、协作与整合)在国内已然是一种趋势,Python被逐渐普及,运维人员自己开发工具的门槛逐渐 降低,因此,方便对Ansible的二次开发

2. Ansible丰富的内置模块,甚至还有专门为商业平台开发的功能模块,完全可以满足日常功能所需

3. 在Ansible去中心化概念(任何人都是一个节点,任何人也都能够成为一个中心),复制操作即可 完成管理配置中心的迁移

4. Agentless(无客户端),客户端无需任何配置,由管理端配置好后即可使用

1.3 Ansible优缺点

使用ansible这样的自动化配置管理工具,主要的优点是:

轻量级,他不需要去客户端安装agent,更新时,只需要在操作机上进行一次更新即可

批量任务执行可以写成脚本,而且不用分发到远程就可以执行

使用python编写的,维护更简单

支持sudo

缺点:

对于几千台、上万台机器的操作,还不清楚性能、效率情况如何,需要进一步了解

2.Ansible应用领域

Ansible 的编排引擎可以出色地完成配置管理 、 流程控制 、 资源部署等多方面工作 。

1.配置管理

2.服务即时开通 这个领域的工具主要是在数据中心 、 虚拟化环境 、 云计算中快速开通新的主机。

3.应用部署 这个领域的工具重点关注如何尽可能地零停机部署应用。

4.流程编排 流程编排主要是进行部署时候如何保证基础架构中的各种组件协调一致。

3.Ansible架构模式

Ansible 是一个模型驱动的配置管理器, 支持多节点发布、 远程任务执行。 默认使用

SSH 进行远程连接。 无需在被管节点上安装附加软件, 可使用各种编程语言进行扩展.

 3.2 Ansible系统架构

Ansible 是基于模块工作的, 本身没有批量部署的能力。 真正具有批量部署的是 Ansible 所运行的模 块, Ansible只是提供一种框架。

Ansible 由以下各部分组成:

 

 

ansible执行过程大体过程如下图,其中暖色调的代表已经模块化。

 使用者使用ansible或ansible-playbook(会额外读取playbook文件)时,在服务器终端输入ansible的adhoc命令集或playbook后,ansible会遵循预先编排的规则将playbooks逐条拆解为play,再将play组织成 ansible可识别的任务(task)。随后调用任务涉及的所有模块(module)和插件(plugin),根据inventory中定 义的主机列表通过ssh将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,如果临 时文件执行完毕则自动删除.

3.3 Ansible特性

Ansible 可以实现以下目标:

• 应用代码自动化部署。

• 系统管理配置自动化。

• 支持持续交付自动化。

• 支持云计算 、大数据平台( 如 AWS、 OpenStack 、 CloudStack 、 VMWare 等) 环境。

• 轻量级, 无需在客户端安装 agent, 更新时只需在控制机上进行一次更新即可。

• 批量任务执行可以写成脚本, 不用分发到远程就可以执行。

• 使用 Python 编写,维护更简单, Ruby 语法过于复杂。

• 支持非 root 用户管理操作, 支持 sudo。

4. Ansible安装与配置

4.1 环境介绍说明

4.1.1自定义环境

 (1)配置ip

 (2)多台主机配置主机名并且确保多台主机能够通过主机名互访

hostnamectl set-hostname server.example.com

(3) 多台主机通过ssh远程连接实现免密登陆

#ssh-keygen -t rsa -P '' -q -f ~/.ssh/id_rsa

(4) 如果是通过普通用户管理受控主机,需要通过sudo提权。

4.1.2 在控制主机上安装ansible

 4.2 RH294学习环境 root Asimov

root -- Asimov kiosk-- redhat

 

 用于实践学习活动的主要计算机系统是workstationo另有四台计算机供 学员用于这些活动:serverax serverb、serverc和serverd。所有这五个系统都在 lab.example.com DNS域内。

所有学员计算机系统都有一个标准用户帐户student,其密码为student。所有学员系统的root 密码都是 redhat。

bastion的主要功能是充当连接学员计算机的网络和课堂网络之间的路由器。如果bastion宕机,则其他学 员计算机将只能访问各个学员网络上的系统。

课堂中有几个系统提供支持服务。content.example.com和materials.example.com这两台服务器提供 实践活动中使用的软件和实验材料。有关如何使用这些服务器的信息将在这些活动的说明中提供。这些信息 由classroom.example.com虚拟机提供。为确保正确使用实验环境,classroom和bastion应始终处于 运行状态。

 

 4.2.1安装红帽Ansible

 二:使用静态清单文件指定受管主机

构建ansible主机清单

1.定义主机清单

清单中定义ansible将要管理的一批主机,这些主机也可以分配到组中,以进行集中管理。组中也可以包 含子组,一台主机也可以是多个组中的成员。清单还可以设置应用到它所定义的主机和组的变量。

2.定义方式

可以通过两种方式定义主机清单。静态主机清单可以通过文本文件定义。动态主机清单可以根据需要使 用外部信息提供程序通过脚本或其他程序生成。

3.使用静态主机清单指定受管主机(默认)

静态主机清单文件是指定的ansible目标受管主机的文本文件。文件编辑格式有多种格式INI和YAML格 式。INI格式较为常见建议使用INI格式编辑。

 

 4.验证清单

5.自定义主机清单 

在某个工作目录下创建一个名为inventory的自定义静态主机清单文件。

选择主机和组:

1>匹配所有主机 

all 或者*

2>匹配指定的主机或者主机组

(1)匹配单个组

(2)匹配单个主机

(3)匹配多个主机

(4)匹配多个组

(5)匹配不属于任何组的主机 ungrouped 注:可以用:来取代逗号,不过逗号是首选分隔符,特别是将ipv6地址用作受管主机名称时

3>通配符匹配

*

ansible server* --list-hosts

4>通配符组合匹配

 5>正则表达式匹配

ansible "~(web|db).*\.example\.com" -m ping

注:

.任意单个字符

"~"开始表示正则匹配

* 匹配前面的子表达式零次或多次

\转义

总结

 三:管理ansible的配置文件

1.配置ansible

通过修改ansible配置文件中的设置来定义ansible安装行为。通过控制节点上多个可能位置之一选择相 应位置的配置文件。

2.根据优先级选择执行ansible配置文件

执行ansible命令根据所在目录匹配相关ansible配置文件,实践中一般使用ansible命令的目录中创建 ansible.cfg文件,此目录中也将包含任何你的ansible项目使用的文件,有清单或者主机清单。

ANSIBLE_CONFIG(ansible环境变量中指向的配置文件)---->./ansible.cfg ---->~/.ansible.cfg ----> /etc/ansible/ansible.cfg

#ansible --version 查看当前使用的是哪个ansible.cfg配置文件

3.管理配置文件中的设置

配置文件由几部分组成,每部分含有以键值对形式定义的设置。部分的标题一方括号括起。重点需要了 解以下两部分:

 案例一:ansible使用ssh连接受管主机,一般不建议用管理用户,要求通过普通用 户student进行链接

 案例二: 关闭主机秘钥验证(别远程主机的秘钥验证关闭)

 案例三:主机免密登陆

 案例四:远程用户sudo提权

 案例五:特权升级。 在受管主机中通过sudo提权可在ansible配置中进行优化,开启远程用户在受管主机中执行特权升级。 控制主机执行特权命令不需要指定sudo命令

 四:ad-hoc与模块帮助查询

1.ansible的基本用法

ansible是指令核心部分,其主要用于执行ad-hoc命令,即单条命令。默认后面需要跟主机和选项部分, 默认不指定模块时,使用的是command模块。

ansible运行临时命令语法

#ansible host-pattern -m module [-a 'module arguments'] [-i inventory]

 

 2.主机联通性测试

 

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

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

相关文章

Maven总结 - 一、初探-项目构建

maven不仅仅是一款管理jar包的工具,更重要的是一款项目构建的工具 maven下载网站:https://maven.apache.org/ maven搜索网站:http://mvn.coderead.cn/ 一、项目构建 给你一套源代码,你怎么能跑起来? 不能把&#xff0…

日期的格式化与解析

格式化:日期 —> 字符串 解析: 字符串 —> 日期 这里指的是日期的显式格式化和解析 DATE_FORMAT(date,fmt) 按照字符串fmt格式化日期date值 TIME_FORMAT(time,fmt) 按照字符串fmt格式化时间time值 GET_FORMAT(date_type,format_type) 返回…

1、影像组学基础知识

一、What is Radiomics? 提出影像组学论文: **主要目的:**说明肿瘤在时间和空间上的异质性,可以用影像组学说明 时间上的异质性:同一个人同一个肿瘤在不同时间段的表现 空间上的异质性:同一肿瘤在不同个体上的表…

适合编程初学者的开源项目:小游戏2048(Vue版)

目标 为编程初学者打造入门学习项目,使用各种主流编程语言来实现。 2048游戏规则 一共16个单元格,初始时由2或者4构成。 1、手指向一个方向滑动,所有格子会向那个方向运动。 2、相同数字的两个格子,相遇时数字会相加。 3、每次…

分布式存储系统 Ceph 实战操作

文章目录一、概述二、cephadm 工具的使用1)cephadm 工具的介绍2)cephadm 安装3)cephadm 常用命令使用4)启用 ceph shell三、ceph 命令使用1)添加新节点2)使用 ceph 安装软件3)主机操作1、列出主…

Python绘制表白代码,又是一个表白神器(赠源码,文章内有效果展示)

前言 嗨呀,又是我,又给你们带来了表白的代码 之前发了那些 照片里面加文字的…还有烟花…还有跳动爱心…emm你们也可以去看看哦 今天带来的这个,也是很不错哦 只不过它出来的有些慢,我这里先给你们看看这个效果图吧 效果展示…

蓝桥集训(附加面试题)第九天

本文来源于算法面试题特训专栏,这里有大量专业性的算法题比如(动态规划21天,大厂特训28天等等) 欢迎大家一起学习。 链接:传送门 目录标题导读Java蓝桥集训面试题点击直接资料领取导读 在刚刚结束的 每日算法&面…

【大数据】CentOS7 安装 Hive(附有Hive基本使用-练习)

文章目录1.安装并配置Hive处理hive中文乱码2.Hive基本操作3.将本地文件导入Hive练习1练习21.安装并配置Hive 下载 利用Xshell中的xftp,将apache-hive导入到CentOS7的/opt/source文件夹下 解压 解压命令:tar -zxvf apache-hive-1.2.1-bin.tar.gz 重命名…

【人工智能】基于五笔字型规范和人工神经网络的简中汉字识别【一】

导语:看到一则旧闻,读了一篇论文,产生一些思考,完成一个模型 前言及项目简介 一、旧闻二、论文三、思考四、模型一、旧闻 大概去年十一月初吧,博主还在进行紧张的研考冲刺阶段。学校下达毕设选题任务,仓促间就要决定毕设内容,并无思路,不免有些迷茫:既担心选题过于简…

Unc0ver 8.0.0 更新:支持 iOS 14.6-14.8、A12-A13 iPhone 越狱

今日,越狱工具 unc0ver 发布了全新的 8.0.0 版本。现在支持 iOS 14.6-14.8 版本越狱,需要搭载 A12-A13 芯片的 iPhone 手机。 本次越狱支持的系统版本:iOS 14.6、iOS 14.7、iOS 14.7.1、iOS 14.8这4种版本,iOS 15.0以上系统请等待…

【VUE3】保姆级基础讲解(四): vue-router,vuex

目录 后端路由的映射方案 SPA:single page web application url的hash vue-router 基础使用 路由默认url 异步打包 动态路由匹配 notfound 嵌套路由 动态路由 添加路由 添加嵌套路由 删除路由 路由导航守卫 全局前置守卫beforeEach Vuex状态管理 状态…

互联网电商模式的迅速发展,消费返利模式你知道吗?

互联网电商模式的迅速发展,消费返利模式在市面上一直以来的引流能力相信大家都是有目共睹的,只不过因为近两到三年来的返利模式相关负面新闻太多,导致到了大众对于这种模式的一种不信任心理,但不可否认的是目前还是有很多消费者在…

Prompt-NLP新范式

作者:子苏 来源:投稿 编辑:学姐 Prompt综述论文:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing 论文作者知乎-近代自然语言处理技术发展的“第四范式” NLP技术发展…

【回答问题】ChatGPT上线了!推荐40个以上比较好的目标检测模型

推荐40个以上比较好的目标检测模型? 目标检测是指在图像中找到并标识出特定目标的计算机视觉任务。近年来,机器学习技术的发展使得目标检测取得了长足进步。目前有许多优秀的目标检测模型,下面是推荐的40个以上的比较好的目标检测模型: R-…

事务到底是隔离的还是不隔离的?

我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,事务 T 看到的仍然跟在启动时看到的一样。也就是说,一个在可重复读隔离级别下执行的事务,好像与世无…

尚医通-医院列表接口-等级接口-功能测试(二十二)

目录: (1)医院列表接口-医院等级接口 (2)医院列表接口-远程调用 (3)医院列表接口-功能测试 (1)医院列表接口-医院等级接口 由于我们的医院等级、省市区地址都是取的数据…

BGP在数据中心的应用1——数据中心网络介绍

注: 本文根据《BGP in the Datacenter》整理,有兴趣和英文阅读能力的朋友可以直接看原文:https://www.oreilly.com/library/view/bgp-in-the/9781491983416/ 引子 在传统的大型数据中心,网络通常是三层结构。Cisco称之为&#x…

js函数之call和apply

一、含义 function test() {console.log(----) }//执行 test(); test.call() 结果一致,调用test()默认会调用call,二者效果一致,call省略掉了。 二、改变this指向 call还有一个很重要的功能是改变this的指向。 function Car(brand, color)…

[Java]泛型

文章目录🥽 泛型简介🌊 泛型的概念🌊 使用泛型的原因🌊 小结🌊 类型推断🥽 自定义泛型🌊 自定义泛型类🌊 自定义泛型类/泛型接口注意点🌊 自定义泛型方法🥽 泛…

2022HW11

文章目录任务描述-域自适应二、代码三、实验1、Simple Baseline2、Medium Baseline3、Strong Baseline任务描述-域自适应 ●想象一下,你想做与3D环境相关的任务,然后发现 ○3D图像很难标记,因此也很昂贵。 ○模拟图像(如GTA-5上的…