一文了解Ansible原理以及常见使用模块
ansible使用手册
1. 简述
Ansible 是一种开源的自动化工具,主要用于配置管理、应用程序部署和任务自动化。
它使用简单的 YAML 语言来定义自动化的任务【playbook】,使得配置和部署变得更加直观和易于管理。
基于SSH协议连接到远程主机来执行指令。
2. ansible特性
1.丰富的模块化管理
2.通过yaml格式 编写playbok批量部署服务
3.基于OpenSSH服务相对比较安全,它不需要在被管理的主机上安装代理软件。
4.一个任务执行一次和执行多次的结果相同
5.管理模式容易,一条命令可以影响上千台主机
3. 架构
● 控制节点:运行 Ansible 的机器。
● 被管理节点:需要被配置或管理的机器。
● 清单文件:定义了 Ansible 要管理的主机和主机组。
● Playbook:用 YAML 编写的配置文件,定义了如何配置和管理主机。
● 角色:组织 Playbook 的一种方式,可以将任务、变量和文件等封装在一个模块中。
4. Ansible 基本概念
●清单(Inventory):列出所有被管理的主机或主机组的文件。默认位置是 /etc/ansible/hosts,可以自定义路径。
vim /opt/ansible/Inventory/all_hosts
[hosts]
10.127.192.5
10.127.192.195[node]
10.127.192.195[webservers]
10.127.192.5[all:vars]
# root可以直连
#ansible_ssh_user="root"
#ansible_ssh_pass="xxxxx"# 非root用户sudo
ansible_user=dev01
ansible_ssh_pass='d5qAPDG^F6rA*C9p'
ansible_become=True
ansible_become_method=sudo
●Playbook:定义任务的执行步骤,使用 YAML 格式。每个 Playbook 可以包含多个 plays,每个 play 针对一组主机执行任务。
例如:如下,利用ansible-playbook安装apache服务
vim install_apache.yml
---
- name: Install and configure Apachehosts: webserversbecome: yestasks:- name: Install Apache packageapt:name: apache2state: presentupdate_cache: yes- name: Ensure Apache is running and enabledservice:name: apache2state: startedenabled: yes- name: Copy a custom index.html filecopy:src: index.htmldest: /var/www/html/index.htmlowner: www-datagroup: www-datamode: '0644'
执行ansible-playbook指令
ansible-playbook -i ./inventory/all_hosts install_apache.yml
●任务(Task):在 Playbook 中定义的具体操作步骤,如安装软件、启动服务等。
●角色(Role):用来组织 Playbook,使其更具可重用性和模块化。每个角色包含任务、处理程序、文件、模板等。
5.常用的Ansible模块
5.1. 文件模块
copy:将文件从本地复制到远程主机
template:将本地文件复制到远程主机上,并进行变量替换
file:管理文件和目录,如创建、删除、修改等操作
fetch:从远程主机上获取文件
5.2. 系统模块
command:在远程主机上执行命令
shell:在远程主机上执行 shell 命令
5.3. 包管理模块
yum:管理CentOS和RedHat等Linux系统上的软件包
5.4. 服务模块
service:管理系统服务,如启动、停止、重启、重载等操作
firewalld:管理防火墙中的服务和端口
5.5. 用户模块
user:管理系统用户和用户组,如创建、删除、修改等操作
group:管理系统用户组,如创建、删除、修改等操作
5.6. 调试和测试类模块
ping:ping 一下你的远程主机,如果可以通过Ansible连接成功,那就范围 pong。
debug:用于调试的模块,只是打印一些简单消息,有点像Linux的 echo命令
6. 模拟测试
6.1. 测试网络连接连接
ansible all -m ping
ansible hosts -m ping
6.2. 命令测试
1. shell模块
ansible -i ./inventory/ hosts -m shell -a "ls"
2. command模块
ansible -i ./inventory/ hosts -m command -a "ls"
command模块和shell模块不同之处
command模块不支持"&&“和”>>"
如下可显示:
3. yum模块
ansible -i ./inventory/ hosts -m yum -a "name=rsync state=present"
4. copy模块
使用Ansible的copy模块复制文件到远程主机:
ansible all -m copy -a 'src=/etc/hosts dest=/tmp/hosts'
5. service模块
使用Ansible的service模块管理服务:
ansible all -m service -a 'name=httpd state=started'
6. user模块
使用Ansible的user模块管理用户:
创建user用户
ansible all -m user -a 'name="testuser" state=present'
删除用户
ansible all -m user -a 'name="testuser" state=absent'
6.3. playbook测试
ansible-playbook -i ./inventory/all_hosts apache.yaml
利用ansible-playbook部署完后,可用如下检测是否安装成功
ansible -i ./inventory/ hosts -m shell -a "systemctl status httpd"
相关文章:

一文了解Ansible原理以及常见使用模块
ansible使用手册 1. 简述 Ansible 是一种开源的自动化工具,主要用于配置管理、应用程序部署和任务自动化。 它使用简单的 YAML 语言来定义自动化的任务【playbook】,使得配置和部署变得更加直观和易于管理。 基于SSH协议连接到远程主机来执行指令。 2…...

JavaEE从入门到起飞(九) ~Activiti 工作流
工作流 当一道流程逻辑需要用到多个表单的提交和多个角色的审核共同完成的时候,就可以使用工作流。 工作流一般使用的是第三方技术,也就是说别人帮你创建数据库表和service层、mapper层,你只需要注入工具接口即可使用。 原理:一…...

微服务的保护
一、雪崩问题及解决方案 1.雪崩问题 微服务之间,一个微服务依赖多个其他的微服务。当一个微服务A依赖的一个微服务B出错时,微服务A会被阻塞,但其他不依赖于B的微服务不会受影响。 当有多个微服务依赖于B时,服务器支持的线程和并…...
2024前端面试题-网络篇
1.跨域问题 同源策略:需要协议、域名、端口号相同跨域原因:不符合同源策略便会产生跨域问题解决跨域:JSONP、配置代理、通过CORS解决 2.RPC和HTTP的区别 主要区别是序列化和反序列化,RPC通过二进制高效传输,HTTP是j…...

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——6.vector
1.杨辉三角 . - 力扣(LeetCode) 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 class Solution { public:vector<vector<int>> generate(int numRows) {vector<vector<int>> arr;int i 0;int j 0;for (i…...

设计模式---简单工厂模式
简单工厂模式(Simple Factory Pattern) 是一种创建型设计模式,它定义了一个工厂类,通过这个工厂类可以创建不同类型的对象。简单工厂模式的主要目的是将对象的创建逻辑集中在一个地方,简化客户端的代码,使得…...

Vue | Vue 中的 refInForde 用法
refInFor:如果你在渲染函数中给多个元素都应用了相同的 ref 名,那么 $refs.myRef 会变成一个数组。 vue中的refInFor属性是Vue框架中用于在循环渲染的元素上设置引用的一种方式。 在Vue中,ref属性通常用于给元素或子组件注册引用信息&am…...

【原创】java+swing+mysql房屋租赁管理系统设计与实现
个人主页:程序员杨工 个人简介:从事软件开发多年,前后端均有涉猎,具有丰富的开发经验 博客内容:全栈开发,分享Java、Python、Php、小程序、前后端、数据库经验和实战 文末有本人名片,希望和大家…...
Django 中render、redirect 和 HttpResponse的区别
在 Python 的 Web 框架 Django 中,render, redirect 和 HttpResponse 是用于处理 HTTP 响应的不同函数,它们各自有不同的用途: HttpResponse: HttpResponse 是 Django 中最基本的响应对象,用于返回给客户端的 HTTP 响应…...
CRYPTO 2020
分类文章编号安全模型1-6公钥加密,功能加密,见证加密7-12后量子密码13-20密码分析21-31最佳论文32-34多方安全计算35-49真实应用50-55零知识证明56-62格和相关难题63-68泄露和外包加密69-74非交互式零知识证明,共识和延迟函数75-79构建80-85Security Models 1. Handling Ad…...

java 函数接口Consumer简介与示例【函数式编程】【Stream】
Java 8 中的 消费者接口Consumer 是一个函数接口,它可以接受一个泛型 类型参数,它属于java.util.function包。我们来看看Java函数接口库中的定义: FunctionalInterface public interface Consumer<T> {/*** Performs this operation o…...

黑神话:悟空-配置推荐
显卡推荐(按类别整理) 1. GTX 10系列、GTX 16系列: 如果希望体验光线追踪,建议根据预算升级到RTX 40系列显卡。对于1080p分辨率,至少需要RTX 4060才能流畅运行。 2. RTX 20系列: RTX 2060、RTX 2070&#…...
Android14 蓝牙设备类型修改
Android14 蓝牙设备类型设置修改设置 文章目录 Android14 蓝牙设备类型设置修改设置一、前言二、修改蓝牙设备类型1、蓝牙设备类型和对应的属性2、Debug设备设置和获取蓝牙设备类型3、系统源码中设置蓝牙设备类型4、Java代码中设置蓝牙prop属性可行吗? 三、其他1、A…...

vue3 语法糖<script setup>
在 Vue 3 中,<script setup>是一种新的语法糖,它极大地简化了组件的编写方式。 <script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖。当同时使用 SFC 与组合式 API 时该语法是默认推荐。 基本概念 简洁的语法…...
微服务设计原则——高性能:异步与并发
文章目录 1.异步1.1 调用异步1.2 流程异步1.3 数据流异步1.4 小结 2.并发2.1 请求并发2.2 冗余请求2.3 小结 参考文献 1.异步 对于处理耗时长的任务,如果采用同步等待的方式,会严重降低系统的吞吐量,可以采用异步化进行解决。 异步…...
机器学习——决策树,朴素贝叶斯
一.决策树 决策树中的基尼系数(Gini Index)是用于衡量数据集中不纯度(或混杂度)的指标。基尼系数的取值范围在0到0.5之间,其中0表示数据完全纯(同一类别),0.5表示数据完全混杂。 基…...

C语言基础(十)
编译预处理命令: 预编译命令在C语言中用于在编译前进行一些特定的处理和控制,帮助程序员更灵活地管理源代码和控制编译过程。 C语言常用的预编译命令: #include:用于包含头文件,将另一个文件的内容插入到当前文件中…...
人像比对-人证比对-人脸身份证比对-人脸身份证实名认证-人脸三要素对比-实人认证
人脸身份证实名认证是一种基于生物识别技术的身份验证方式,主要依托证件OCR识别技术、活体检测、人脸比对等技术手段,对用户身份信息真实性进行核验,确保用户为真人且为本人。以下是关于人脸身份证实名认证的详细解析: 一、认证流…...

Android 上下滑隐藏显示状态栏
一、DisplayPolicy类中监听滑动事件,然后发送广播事件 Android12类路径: frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.javamSystemGestures new SystemGesturesPointerEventListener(mUiContext, mHandler,new SystemGest…...

USBCAN-II/II+使用方法以及qt操作介绍
一.USBCAN-II/II介绍 USBCAN-II/II 是一款常用的 USB-CAN 转换器,广泛应用于汽车电子、工业自动化等领域。以下是使用该设备的一般步骤和方法: 1. 硬件连接 连接设备:将 USBCAN-II/II 的 USB 接口连接到计算机的 USB 端口。 连接 CAN 网络…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...