Ansible学习笔记(持续更新)

Ansible学习目录

  • 1.自动化运维
    • 1.1 企业实际应用场景
      • 1.1.1 Dev开发环境
      • 1.1.2 测试环境
      • 1.1.3 发布环境
      • 1.1.4 生产环境
      • 1.1.5 灰度环境
    • 1.2 程序发布
    • 1.3 自动化运维应用场景
    • 1.4 常用自动化运维工具
  • 2.Ansible介绍和架构
    • 2.1 Ansible特性
    • 2.2 Ansible架构
      • 2.2.1 Ansible主要组成部分
      • 2.2.2 Ansible工作原理
      • 2.2.3 Ansible注意事项

1.自动化运维

1.1 企业实际应用场景

1.1.1 Dev开发环境

  • 使用者:程序员
  • 功能:程序员开发测试软件
  • 管理者:程序员

1.1.2 测试环境

  • 使用者:QA测试工程师(quality assurance)
  • 功能:测试经过Dev环境测试通过的软件功能
  • 管理者:运维

1.1.3 发布环境

  • 使用者:运维
  • 功能:发布代码至生产环境
  • 管理者:运维
  • 发布机:往往有主备2台

1.1.4 生产环境

  • 使用者:运维,少数情况开放权限给核心开发人员
  • 功能:对用户提供公司产品的服务
  • 管理者:只能是运维
  • 生产环境服务器:一般比较多且十分重要。往往需要自动工具协助部署

1.1.5 灰度环境

  • 使用者:运维
  • 功能:在全量发布代码前将代码的功能面向少量精准用户发布,可基于主机或用户执行灰度发布。待精准用户使用没有重大问题的时候,再全量发布至所有服务器
  • 管理者:运维
  • 发布过程:在调度器下线一批主机->关闭服务->部署最新版本应用程序->启动服务->在调度器上启用这一批服务器

1.2 程序发布

1.3 自动化运维应用场景

  • 文件传输
  • 应用部署
  • 配置管理
  • 任务流编排

1.4 常用自动化运维工具

  • Ansible:python,Agentless,中小型应用环境
  • SaltStack:python,一般需部署agent,执行效率更高
  • Pippet:ruby,功能强大,配置复杂,重型,适合大型环境

2.Ansible介绍和架构

2.1 Ansible特性

  • 模块化:调用特定的模块,完成特定任务,支持自定义模块
  • 部署简单:基于python和ssh(默认已安装),agentless无需代理,不依赖PKI
  • 安全:基于OpenSSH
  • 幂等性:一个任务执行一遍与执行n遍效果一样,不因重复执行带来意外情况
  • 支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构
  • 较强大的多层解决方案role

2.2 Ansible架构

2.2.1 Ansible主要组成部分

  • PLAYBOOKS:编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的yml文件
  • INVENTORY:Ansible管理主机的清单 /etc/ansible/hosts
  • MODULES:Ansible执行命令的功能模块,多数为内置核心模块,也可自定义
  • PLUNGINS:Ansible模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等
  • API:供第三方程序调用的应用程序编程接口

2.2.2 Ansible工作原理

  • Ansible的命令来源
    • USERS
    • CMDB(配置管理数据库)API调用
    • PUBLIC&PRIVATE CLOUD API调用
    • USERS->Ansible Playbook->Ansible
  • Ansible实现管理的方法
    • Ad-Hoc即Ansible单条命令,主要用于临时命令使用场景
    • ansible-playbook主要用于长期规划好的,大型项目的场景,需要有前期的规划过程
  • Ansible-playbook剧本执行过程
    • 将已有编排好的任务集写入ansible-playbook
    • 通过ansible-playbook命令分拆任务集至逐条ansible命令,按预定规则逐条执行

2.2.3 Ansible注意事项

  • Ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架(后续实践后再理解)
  • 执行Ansible的主机一般称为主控端、中控、master、堡垒机
  • Windows不能作为主控端
  • Ansible不是服务,不会一直启动,只是需要的时候启动
  • Ansible的主要操作对象是host主机和网络设备

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

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

相关文章

LeetCode(力扣)617. 合并二叉树Python

LeetCode617. 合并二叉树 题目链接代码 题目链接 https://leetcode.cn/problems/merge-two-binary-trees/ 代码 递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # …

c# 使用了 await、asnync task.run 三者结合使用

在 C# 异步编程中,await 和 async 关键字结合使用可以让你更方便地编写异步代码,而无需直接使用 Task.Run。然而,有时候你可能仍然需要使用 Task.Run 来在后台线程上执行某些工作,这取决于你的代码逻辑和需求。 await 和 async 关…

【springboot】springboot定时任务:

文章目录 一、文档:二、案例: 一、文档: 【cron表达式在线生成器】https://cron.qqe2.com/ 二、案例: EnableScheduling //开启任务调度package com.sky.task;import com.sky.entity.Orders; import com.sky.mapper.OrderMapper; …

LeetCode1049. 最后一块石头的重量 II

1049. 最后一块石头的重量 II 文章目录 [1049. 最后一块石头的重量 II](https://leetcode.cn/problems/last-stone-weight-ii/)一、题目二、题解方法一:01背包二维数组算法思路具体实现 方法二:01背包一维数组 一、题目 有一堆石头,用整数数…

LeetCode-160. 相交链表

这是一道真的非常巧妙的题,题解思路如下: 如果让他们尾端队齐,那么从后面遍历就会很快找到第一个相交的点。但是逆序很麻烦。 于是有一个巧妙的思路诞生了,如果让短的先走完自己的再走长的,长的走完走短的,…

MyBatisx代码生成

MyBatisx代码生成 1.创建数据库表 CREATE TABLE sys_good (good_id int(11) NOT NULL,good_name varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,good_desc varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,PRIMARY KEY (good_id) ) ENGINEInnoDB DEFAULT CHA…

Multisim软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Multisim软件是一款电路仿真和设计软件,由美国国家仪器公司(National Instruments)开发。它提供了一个交互式的图形界面,使用户能够轻松地构建和仿真电路。以下是Multisim软件的详…

Java中文件的创建(三种方式),文件常用的方法

文件的创建 方式1: new File(String pathName) 根据路径构建一个File对象方式2: new File(File parent,String child) 根据父目录文件子路径构建方式3: new File(String parent,String child) 根据父目录子路径构建 代码: //方…

Unity——协程(Coroutine)

本文为问GPT所得 一、在Unity中,协程到底是个啥 在Unity中,协程(Coroutine)是一种特殊的函数,用于在一段时间内暂停执行,并在稍后的时间点继续执行。通常情况下,我们在代码中通过调用协程来实现…

Android 之 传感器专题 (4) —— 其他传感器了解

本节引言: 在上一节的结尾说了,传感器部分因为笔者没怎么玩过,本节就简单的把剩下的几个常用的 传感器介绍一遍,当作科普,以后用到再慢慢研究~ 1.磁场传感器(Magnetic field sensor) 作用:该传感器主要用…

spring中LocalDateTime 转成字符串的时候注意事项

ApiOperation("查询课程发布信息") ResponseBody GetMapping("/r/coursepublish/{courseId}") public CoursePublish getCoursepublish(PathVariable("courseId") Long courseId) { CoursePublish coursePublish coursePublishService.getC…

Spring之HandlerInterceptor和RequestBodyAdvice

一个请求在Spring中处理流程是有多种方式拦截处理的,而且,请求是可以拆分为进入和响应2个操作的,进入我们通常会对请求参数做处理,而响应我们通常会对响应参数做处理,Spring提供了多种方式给开发者。 一、HandlerInte…

nowcoder NC236题 最大差值

目录 题目描述: 示例1 示例2 题干解析: 暴力求解: 代码展示: 优化: 代码展示: 题目跳转https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204?tpId128&tqId33768&ru/exa…

由于找不到VCOMP140.DLL,无法继续执行代码。重新安装程序可能会解决此问题。

问题描述:最近使用奥比中光的Gemini2深度相机识别物体的深度信息,先是安装了OrbbecViewer软件(地址:https://vcp.developer.orbbec.com.cn/resourceCenter?defaultSelectedKeys107)。 我发现在我的台式机电脑上,可以运行&#xf…

Typora mac版本安装

提示:文章介绍,Typora在Mac系统中免费安装使用 文章目录 一、官网下载二、安装 一、官网下载 官网地址:https://www.typoraio.cn/ 二、安装 安装好后按 command 空格键,找到 Typora的安装路径 /Applications/Typora.app/Con…

Kubernetes(七)修改 pod 网络(flannel 插件)

一、 提示 需要重启服务器 操作之前备份 k8s 中所有资源的 yaml 文件 如下是备份脚本,仅供参考 # 创建备份目录 test -d $3 || mkdir $3 # $1 命名空间 # $2 资源名称: sts deploy configMap svc 等 # $3 资源备份存放的目录名称for app in kubec…

oauth2.0第2季 分布式认证与授权实现单点登录

一 oauth介绍 1.0 疑问汇总 1.使用jwttoken进行令牌传输,资源服务器在本地怎么验证token? 1.1 oauth的基础内容 1.1.1 oauth是什么 1.1.2 oauth的角色 1.1.3 oauth的认证流程 1.1.4 oauth的4种模式 1.2 为何要用oauth2.0 1.介绍单体架构 使用ses…

k8s节点pod驱逐、污点标记

一、设置污点,禁止pod被调度到节点上 kubectl cordon k8s-node-145 设置完成后,可以看到该节点附带了 SchedulingDisabled 的标记 二、驱逐节点上运行的pod到其他节点 kubectl drain --ignore-daemonsets --delete-emptydir-data k8s-node-145 显示被驱逐…

Android需要掌握的shell脚本基础

linux中sh是链接到bash上的,所以sh与bash在功能上是没有区别的,相当于bash解析器是sh的增强版本,所以安卓开发者可以在 git bash中 测试脚本 1,shell脚本运行与输出指令 $ cat test.sh echo 测试 【输出】$ /bin/bash test.…

LeetCode第26~30题解

CONTENTS LeetCode 26. 删除有序数组中的重复项(简单)LeetCode 27. 移除元素(简单)LeetCode 28. 找出字符串中第一个匹配项的下标(简单)LeetCode 29. 两数相除(中等)LeetCode 30. 串…