当前位置: 首页 > news >正文

一篇文章带你学会Ansible的安装及部署

目录

前言

一、什么是Ansible

二、Ansible的工作方式

三、Ansible的安装

四、构建Anisble清单

1、清单书写方式

2、清单查看

3、清单书写规则

4、主机规格的范围化操作

五、ansible命令指定清单的正则表达式

六、 Ansible配置文件参数详解

1、配置文件的分类与优先级

2、常用配置参数


前言

实验环境搭建:共3台主机,其中一台作为主控机

配置主控机:

更改主机名

 配置网卡

 

 

配置软件仓库,需要挂载光盘镜像

配置本地软件仓库 

 

 

关闭火墙 

搭建网络上的软件仓库,使用阿里云的方式访问,epel源

 

 

 

配置永久挂载

 

 

 

配置 nodea

网络,端口号192.168.1.20

 

配置nodeb 

端口号为192.168.1.30

  

一、什么是Ansible

Ansible是近年越来越火的一款运维自动化工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率。常用于软件部署自动化、配置自动化、管理自动化、系统化系统任务、持续集成、零宕机平滑升级等。常见的部署管理工具有Chef、Puppet、Ansible、SaltStack、Fabric.Ansible发布于2012年,其作者兼创始人是Michael DeHaan。红帽2015收购了Ansible母公司。
Ansible完全基于Python开发,而DevOps在国内已然是一种趋势,Python被逐步普及,运维人员自己并发工具的门槛逐步降低,得益于此,方便对Ansible二次开发。Ansible丰富的内置模块,甚至还有专门为商业平台开发的功能模块,完全可以满足日常功能所需。在Ansible去中心化概念下,一个简单的复制操作即可完成管理配置中心的迁移。Agentless(无客户端),客户端无需任何配置,由管理端配置好后即可使用,这点非常诱人。

二、Ansible的工作方式

Ansible没有客户端,因此底层通信依赖于系统软件,Linux系统下基于OpenSSH通信,Windows系统下基于PowerShell,管理端必须是Linux系统。
根据Ansible使用过程中的不同角色,将其分为:使用者、Ansible工具集、作用对象。
Ansible使用者来源于多种维度,分为以下几种方式:
(1)CMDB存储和管理着企业IT架构中的各项配置信息,运维人员可以组合CMDB和Ansible,通过CMDB直接下发指令调用Ansible工具集完成操作者所希望达成的目标。
(2)基于PUBLIC(公有云)/PRIVATE(私有云)’,Ansible以API调用的方式运行,Ansible提供了丰富的API语言接口:PHP、Python等。
(3)直接使用Ad-Hoc临时命令集调用Ansible工具集来完成任务执行。
(4)通过执行Playbooks中预先编排好的任务集按序完成任务执行。

三、Ansible的安装

ansible是三方插件,需要epel源安装

ansible处理多台主机任务时速度非常快

epel源
dnf install ansible -y
ansible --viersion


ansible的基本信息:
/etc/ansible/ansible.conf         ##全局配置文件,默认很少修改
/etc/ansible/hosts         ##全局主机清单清单文件

 

四、构建Anisble清单

1、清单书写方式

清单:指定执行动作的范围,相当于被处理的白名单

shell脚本在处理多台主机时,每次都需要输入密码,效率比较低,ansible只需要在host中写入清单

 

1、直接书写受管主机名或ip,每行一个

2、设定受管主机的组[组名称]

2、清单查看

#清单查看:
ansible 清单中组名称 [-i 清单文件] --list-hosts
ansible ungrouped --list-hosts
ansible all --list-hosts

 

当前用户优先读取的配置文件 

/etc/下的ansible是全局配置文件 

用户子配置文件在用户家目录中.ansible目录中

 可以在当前目录中写清单也可以写配置文件,但是当前目录中没有配置文件,所以写清单也没有用。后续在配置中,我们就知道了怎么在子配置目录中书写清单,这个清单是针对于这个用户生效的。也可以在系统的任何位置去写一个清单,使用-i的方式手动指定清单

3、清单书写规则

#单层清单#
[list1]
node1.westos.com
node2.westos.com
[list2]
node2.westos.com
[list3]
192.168.1.20

上面写的就是单层清单


#嵌套清单#
[westos:children]
list1
list3

 

4、主机规格的范围化操作

#通过指定主机名称或IP的范围可以简化Ansible主机清单
#语法:
#[start:end]
[westostest]
172.25.254.[100:108] 

vim host

 

起始和结束的语法 

五、ansible命令指定清单的正则表达式

*                           ##所有
                            ##172.25.254.*
                            ##westos*
:                           ##逻辑或
                            ##westos1:linux
                            ##172.25.254.100:172.25.254.200
:&                         ##逻辑与
                            ##westos1:&linux
                            ##主机即在westos1清单也在linux清单中
:!                          ##逻辑非
                            ##westos1:!linux
                            ##在westos1中不在linux中
~                          ##以关键字开头
~(str1|str2)           ##以条件1或者条件2开头

逻辑或:

 

! 

六、 Ansible配置文件参数详解

ansible 清单中组名称 -m 模块 -u remote_user

ansible原理:在当前主机也就是主控机中生成一个python类型的脚本,生成完成后使用sshd服务把脚本传递给要执行动作的受控主机中,在这台主机中执行python,ssh在传输脚本时需要用到用户名和密码,在远程主机中也需要用户身份和密码

以上是基本的执行逻辑

1、配置文件的分类与优先级

/etc/ansible/ansible.cfg                 #基本配置文件,找不到其他配置文件此文件生效
~/.ansible.cfg                                #用户当前目录中没有ansible.cfg此文件生效
./ansible.cfg                                  #优先级最高

用户级配置文件生成 

 

写自己的配置文件,一般使用inventory

 

 

这样就就成功了 

2、常用配置参数

#[default]                                    ##基本信息设定
inventory=                                   ##指定清单路径
remote_user=                              ##在受管主机上登陆的用户名称,未指定使用当前用户
ask_pass=                                   ##是否提示输入SSH密码,如果公钥登陆设定为false
library=                                        ##库文件存放目录
local_tmp=                                   ##本机临时命令执行目录
remote_tmp=                               ##远程主机临时py命令文件存放目录
forks=                                           ##默认并发数量
host_key_checking=                    ##第一次连接受管主机时是否要输入yes建立host_key
sudo_user=                                  ##默认sudo用户
ask_sudo_pass=                          ##每次在受控主机执行ansible命令时是否询问sudo密码
module_name=                             ##默认模块,默认使用command,可以修改为shell
log_path=                                      ##日志文件路径


[privilege_escalation]                     ##身份信息设定
become=                                        ##连接后是否自动切换用户
become_method=                          ##设定切换用户的方式,通常用sudo
become_user=                               ##在受管主机中切换到的用户,通常为root
become_ask_pass                         #是否需要为become_method提示输入密码,默认为false

 

远程主机简历用户 

每次指定用户都要-u,可以直接用参数指定好 

手动指定用户身份 

模块名称 

 

ask_pass

 

 

精简密码,生成秘钥,锁主控机 

 

需要把当前主机内家目录 ~/.ssh/id_rsa.pub复制到远程主机,并重命名为authorized_keys 

 

现在可以把ask_pass改成false 

 

 

保证在远程主机执行动作时,还是需要用超级用户身份,还是需要不断去转换超级用户身份去做

sudo

在所有主机中以所有用户身份,都能免密执行所有命令,追加到/etc/sudoers中 

 

 

 

删除 

达到了操作一台主机和多台主机的效果一样,这就是在企业中达到运维自动化最主要的一个插件ansible以上就是它的基本配置方法

相关文章:

一篇文章带你学会Ansible的安装及部署

目录 前言 一、什么是Ansible 二、Ansible的工作方式 三、Ansible的安装 四、构建Anisble清单 1、清单书写方式 2、清单查看 3、清单书写规则 4、主机规格的范围化操作 五、ansible命令指定清单的正则表达式 六、 Ansible配置文件参数详解 1、配置文件的分类与优先…...

opencv常用函数

1)读视频 img cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) if vc.isOpened():ret, frame vc.read() else:ret False while ret:#此处省略具体的操作ret, frame vc.read() # 读下一帧 vc.release() 2)保存视频 def mk_video_writer(vc, path,frame_…...

Java集合框架常见面试题

1. 剖析面试最常见问题之 Java 集合框架 1.1. 集合概述 1.1.1. Java 集合概览1.1.2. 说说 List,Set,Map 三者的区别?1.1.3. 集合框架底层数据结构总结 1.1.3.1. List1.1.3.2. Set1.1.3.3. Map 1.1.4. 如何选用集合?1.1.5. 为什么要使用集合? 1.2. Colle…...

医用雾化器单片机方案设计

产品概述 雾化器是一款基于电路板的振荡信号被大功率三极管进行能量放大,传递给压电陶瓷片,当压电陶瓷片受电信号的激励,产生高频谐振,并使吸附在微孔膜上的液体结产生超声振荡,将液体的结构打散而产生自然飘逸的雾。不…...

python魔术方法(一)

所谓的魔术方法就是让用户客制化类的方法,常常是python中开头有两个下划线的方法。 __new__() new是创建一个类的过程 class A:def __new__(cls,x):print("__new__")return super().__new__(cls)由于new函数是建立了一个对象,所以必须返回一…...

IDEA配置部署tomcat详细步骤(maven web 和Javaweb)

目录 读者手册 一、概念与准备工作 (一)概念 (二)准备工作 (三)IDEA配置tomcat服务器(maven web项目演示) ( 四)Javaweb项目创建tomcat演示 读者手册 读…...

没有设置密码,每次打开RAR文件却都要输密码?

有小伙伴说遇到这种情况:用WinRAR软件压缩RAR文件后,再次打开时显示需要输入密码,但自己压缩文件时并没有设置密码,后续不管几次压缩文件都需要密码,这是怎么回事呢? 其实,这很可能是之前设置压…...

想要知道有哪些免费API接口,看它就够了

免费API它来啦! 微信开放平台 https://open.weixin.qq.com/ 让你的应用支持微信登录、微信分享、微信支付等功能。 百度地图开放平台 https://lbsyun.baidu.com/index.php?titlewebapi 百度地图Web服务API为开发者提供http/https接口,即开发者通过…...

【Java】二叉树

一、树形结构 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 有一个特殊…...

C++学习记录——구 模板初阶

文章目录1、泛型编程和函数模板1、函数模板的实例化2、模板参数的匹配原则2、类模板1、泛型编程和函数模板 泛型编程顾名思义,泛用性很高。之前C可以用重载来对付同名函数,但还是麻烦,有一个类型的变量就得写一个类型的函数。C对此创建了库这…...

筑基五层 —— 位运算看这篇就行了

目录 一.修炼必备 二. 位运算 二.移位运算符 三.位运算综合使用 恭喜你,成功突破至筑基五层!!! 一.修炼必备 1.入门必备:VS2019社区版,下载地址:Visual Studio 较旧的下载 - 2019、2017、201…...

windows安装proget实现nuget私有包部署

下载proget 官网 下载地址 免费下载 安装proget 下载完成之后双击安装 选择ProGet 默认选择即可 也可以指定数据库,SQL Server数据库 Server服务器名;Database数据库名;User Id用户名;Password密码 Serverlocalhost;DatabaseProGet2;User Idsa;Passwordxxxx…...

SpringBoot简单集成OpenFeign

问题 在SpringBoot中简单集成Feign&#xff0c;不想使用Rest Temple了。 步骤 Maven <properties><spring.cloud-version>2022.0.1</spring.cloud-version></properties> <dependencyManagement><dependencies><dependency><g…...

dfs(九)字符串的全排列

字符串的排列_牛客题霸_牛客网【牛客题霸】收集各企业高频校招笔面试题目&#xff0c;配有官方题解&#xff0c;在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://www.nowcoder.com/practice/fe6b651b66ae47d7ac…...

别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(1)

别具一格&#xff0c;原创唯美浪漫情人节表白专辑&#xff0c; (复制就可用)&#xff08;html5,css3,svg)表白爱心代码(1) 一、 前言 回眸之间&#xff0c;丰盈了岁月&#xff0c;涟漪了思绪&#xff0c;轻轻落笔&#xff0c;不写伤痕&#xff0c;不写仇怨&#xff0c;只写岁月…...

Hudi-集成Spark之spark-sql方式

Hudi集成Spark之spark-sql方式 启动spark-sql # 启动spark-sql之前需要先启动Hive的Metastore nohup hive --service metastore & #针对Spark 3.2 spark-sql \--conf spark.serializerorg.apache.spark.serializer.KryoSerializer \--conf spark.sql.catalog.spark_catal…...

快速排序基本原理

快速排序基本原理1.快速排序1.1 基本原理1.2 快速排序执行步骤1.2.1 分区包含步骤1.2.1 分区步骤1.3 快速排序大O记法表示2. 将[0,5,2,1,6,3]进行快速排序 【实战】2.1 第一次分区步骤2.2 第二次分区步骤2.3 第三次分区步骤2.4 第四次分区步骤3.快速排序代码实现1.快速排序 1.…...

Android开发笔记-提纲(连载中....)

文章目录Android概述Android开发学习笔记提纲1. 认识AS开发Android的基础入门知识2. 认识Activity的生命周期和基础使用3. 认识Activity之间的跳转和传值4. 认识Intent以及全局Activity的属性的共享5. 认识Service6. 学习跨应用服务【AIDL通信】Android概述 Android系统框架的四…...

React Native(一)

移动端触摸事件example1:<ButtononPress{() > {Alert.alert(你点击了按钮&#xff01;);}}title"点我&#xff01;" />Touchable 系列组件TouchableHighlight 此组件的背景会在用户手指按下时变暗TouchableNativeFeedback 会在用户手指按下时形成类似墨水涟…...

Kotlin 26. Kotlin 如何播放音频文件

Kotlin 如何播放音频文件 文章目录Kotlin 如何播放音频文件1 下载并放置音频文件2 activity_main.xml3 MainActivity.kt1 下载并放置音频文件 我们可以随便下载一个音频文件&#xff0c;比如 alarm.mp3&#xff0c;需要将其放置在 /res/raw/ 路径下。 2 activity_main.xml 这…...

recv和明文收包分析

我们CTRLg 跳到recv 分析收包函数 发现函数会断并且收包函数返回值(收包包长)也会不断变化 那么证明recv是真正的收包函数&#xff0c;游戏没有重新实现该函数 我们只要分析该函数即可 在recv函数执行完毕以后下断 eax是包长,esi28是包指针 我们上2个号&#xff0c;让另外…...

【IVIF的超分重建】

Multimodal super-resolution reconstruction of infrared and visible images via deep learning &#xff08;基于深度学习的红外和可见光图像多模态超分辨率重建&#xff09; 提出了一种基于编解码器结构的红外-可见光图像融合方法。图像融合任务被重新表述为保持红外-可见…...

“深度学习”学习日记。--加深网络

2023.2.13 深度学习 是加深了层的深度神经网络的学习过程。基于之前介绍的网络&#xff0c;只需要通过 叠加层&#xff0c; 就可以创建深度网络 之前的学习&#xff0c;已经学习到了很多东西&#xff0c;比如构成神经网络的各种层、参数优化方法、误差反向传播法&#xff0c;…...

2023前端面试总结含参考答案

文章目录1. 父子组件生命周期的执行顺序:2. 原型链&#xff1a;3. promise的理解&#xff1a;4. 数组循环&#xff0c;foreach&#xff0c;filter&#xff0c;map&#xff0c;reduce5. 数组去重&#xff0c;set6. 组件通信方式7. 路由钩子8. 首页首屏加载优化&#xff1a;9. th…...

总览 Java 容器--集合框架的体系结构

前言 我们在讲 Java 的数据类型的时候&#xff0c;单独介绍过数组&#xff0c;数组也确实是开发程序中常用的内存类型之一&#xff0c;不过 Java 内置的数组限制颇多&#xff0c;所以此后扩展出了List这种结构&#xff0c;与之类似的Set、Queue 这些内存中的容器都被放在了 Co…...

即便考分很好也不予录取的研究生复试红线,都是原则性问题

在浙大研究生招生录取政策文件中有这么一句话&#xff1a;坚持“按需招生、全面衡量、择优录取、宁缺毋滥”的原则&#xff0c;以提高人才选拔质量为核心&#xff0c;在确保安全性、公平性和科学性的基础上&#xff0c;做到统筹兼顾、精准施策、严格管理。字字体现出研究生招生…...

Android java创建子线程的几种方法

1.新建一个类继承自Thread&#xff0c;并重写run()方法&#xff0c;并在里面编写耗时逻辑。 1 2 3 4 5 6 7 class ThreadTest extends Thread { Override public void run() { //具体的耗时逻辑代码 } } new ThreadTest().st…...

UVa 11212 Editing a Book 编辑书稿 IDA* Iterative Deepening A Star 迭代加深搜剪枝

题目链接&#xff1a;Editing a Book 题目描述&#xff1a; 给定nnn个(1<n<10)1<n<10)1<n<10)数字&#xff0c;数字分别是1,2,3,...,n1, 2, 3, ...,n1,2,3,...,n&#xff0c;但是顺序是打乱的&#xff0c;你可以选择一个索引区间的数字进行剪切操作。问最少进…...

第一章:unity性能优化之内存优化

目录 前言 unity性能优化之内存的优化 一、unity Analysis工具的使用。 二、内存优化方法 1、设置和压缩图片 2、图片格式 3、动画文件 4、模型 5、RenderTexture&#xff08;RT&#xff09; 6、分辨率 7、资源的重复利用 8、shader优化 9、对bundle进行良好的管…...

2023年家族办公室研究报告

第一章 概况 家族办公室最早起源于古罗马时期的大“Domus”&#xff08;家族主管&#xff09;以及中世纪时期的大“Domo”&#xff08;总管家&#xff09;。现代意义上的家族办公室出现于19世纪中叶&#xff0c;一些抓住产业革命机会的大亨将金融专家、法律专家和财务专家集合…...

JSP动态网站开发实践教程/怎么推广网站

23 日晚&#xff0c;华为法国官方推特发文&#xff1a;华为即将发布全球首款石墨烯电池高端智能手机&#xff0c;石墨烯电池将带来更持久的续航和更快的充电速度。而且&#xff0c;华为法国推特账号&#xff0c;还转发了一篇关于华为 P40 的报道&#xff0c;报道中写到&#xf…...

常州网站公司怎么选/百度热搜高考大数据

1、python没有显式声明变量类型&#xff0c;不代表写代码时候可以没有类型概念&#xff0c;当使用三方包时候&#xff0c;三方包的方法经常返回一个三方包里面的自定义的类的实例&#xff0c;就是不是普通的int str list dict这些类型&#xff0c;得到这么个变量怎么处理他手足…...

手机wap购物网站模板/关键词排名优化营销推广

概述 循环创建按钮, 进行按钮单选或者多选的操作.详细 代码下载&#xff1a;http://www.demodashi.com/demo/10712.html 我们经常会有多行多列按钮的页面, 这个时候我们通常会选择循环创建按钮, 然后进行按钮单选或者多选的操作! 一、程序实现 一. 单选逻辑处理 1. 创建按钮控件…...

wordpress导出图片/南京网站设计优化公司

#Html今日学习内容这是第一次#x{width: 100px;height: 400px;}#f{width: 100px;height:50px;}.bordered {border-style:solid;color:red;}.yoxixi {color:red;text-decoration:underline;font-weight:bold;}锚点标题一我很快乐&#xff0c;我很喜欢&#xff0c;很愉悦。标题二我…...

wordpress主题制作难吗/营销网站建设专家

1、启动命令行CMD. 设环境变量“set devmgr_show_nonpresent_devices1” 2、命令行下运行 DEVMGMT.MSC. 3、在“View”菜单里选择“Show Hidden Devices” 展开“网卡”. 选择变灰的旧网卡&#xff0c;选择右键菜单里的“Uninstall”. 转载于:https://blog.51cto.com/emcome/23…...

html5单页模板/seo关键词优化推广外包

hive数据类型 基本数据类型&#xff1a; 数据类型长度例子TINYINT1byte有符号整数20SMALLINT2byte有符号整数20INT4byte有符号整数20BIGINT8byte有符号整数20BOOLEAN布尔类型TRUEFLOAT单精度浮点数3.1419DOUBLE双精度浮点数3.14159STRING字符序列。可以指定字符集。可以使用单…...