Ansible(一)

Ansible:

远程操作主机功能:

自动化运维(playbook剧本YAML)

是基于Python开发的配置管理应用部署攻具,在自动化运维当中,现在是异军突起

Ansible能批量配置,部署,管理上千台主机,类似于xshe的一键输入工具,不需要每次都切换主机进行操作,只要一台ansible的固定主机,就可以所有节点操作

不需要agent,客户端

主需要一台主机上配置了ansible

是基于模块进行工作,只是提拱了一种运行的架构,执行操作和辩证的是ansible的模块来实现的

Copy

Service

Ansible默认是通过ssh的密钥队来实现通信的(可以改)

Ansible的另一个特点,

所有模块都是幂等性。

所谓幂等性,指的是多次操作多次执行对系统资源的影响是一致的。

例如:

Systemctl stop fierwalld 只要发现停止的目标服务已经停止了,后续同样的操作,不会改变任何结果,什么也不做

Systemctl restart firewallld 每一次操作都会先停止再起动

HTTP get 也是幂等性

Post:多次执行相同的post可能创建多个相同的资源,所以不具有幂等性

Ansible的幂等性,决定了你可以放心大胆的使用,重复执行某个任务,不会对结果产生仍和影响(绝大多数情况)

Ansible的四大组件:

  1. lnventory主机清单(主机组)定义ansible可以远程操作的服务器
  2. 模块ansible常用的模块有13个,通过这些模块可以实现远程的配置和操作
  3. Plugins插件
  4. Playbook剧本(shell脚本)YAML格式

Ansible的优缺点:

部署较为简单,只要在控制主机部署即可,被控制主机需要有ssh和pyhon2.5以上版本,基本上Linux都是自带的

Ansible只能控制liunx系统,windows不行

基于模块工作,可以使用任意语言开发模块(二次开发,底层架构)

环境:

管理端:20.0.0.51 ansible

被管理端:20.0.0.52 20.0.0.53

备用:20.0.0.54

管理端安装ansible

yum -y install epel-release

yum -y install ansible

安装tree,查看目录文件

tree /etc/ansible

Ansible.cfg:ansible的主配置文件,一般无需修改

Hosts:主机组,声明可以被控制的主机

Roles:公共角色目录

配置主机有两种方式:

  1. 直接声明主机的IP地址
  2. 主机名(/etc/hosts映射)

添加两个不同的主机

管理端配置密钥队

//配置密钥对验证

ssh-keygen -t rsa #一路回车,使用免密登录

sshpass -p '123' ssh-copy-id root@20.0.0.52

sshpass -p '123' ssh-copy-id root@20.0.0.53

分别传给20 30,在此重新配置密钥队,让其真正的生效

Ansible的命令格式:

Ansible组名/ip -m 模块名称 -a “参数列表”(执行的命令,单引号双引号都可以)

指定IP地址,只会目标主机执行

指定组,组内所有的声明的主机都会执行

所有声明的主机都会执行

不加-m也就是不声明使用的模块,默认就是command模块

Command的常用参数:

Chdir:在远程主机上运行命令,提前进入目录

Creates:判断指定的文件是否存在,如果存在,不执行后面的操作

Remove:判断指定的文件是否存在,如果存在,执行后面的操作

模块一:

Command模块,在远程主机执行Linux的命令,不支持管道符,重定向输出

远程执行命令

被管理主机查看日志,查看操作记录

主机名也可以用

模块二:

shell模块,在远程主机执行命令,相当于远程主机

需要交互的命令,ansible都不太行

例题:

切出IP地址

在ansible当中,多个引号之间要做隔离,

怎么把多个shell命令写一块,多个命令之间可以用&&连接在一起

&&表示逻辑且,前一个命令成功,才会执行下一个命令

写一个需求

定义一个需求:

;表示逻辑或,前一个命令成功与否,后面的命令都会执行

模块三:

cron模块

远程给主机设置定时任务

两种状态:present表示添加(默认就是添加,可以省略)

          Absent:表示移除,#absent在整个ansible的语法当中都表示移除的意思(删除)

分 时 日 月 周

分=minute

时=hour

日=day

月=month

周=weekday

Job:任务执行的命令

Name:任务计划的名称

演示一个定时任务,每五分钟执行一次

写一个需求

删除定时任务:

如果是none,就直接等于none删除

如果有多个none,他就会删除多个none,多计划任务,如果不给名字,一旦删除none,全部删除,不推荐,最好是指定一个不重复的名称

模块四:

USER模块,用户管理模块

常用的参数:

Name:指定用户名,必须要有

State present absent 创建用户可以不加present,但是删用户一定要加absent

System=yes |no,标记用户是否是一个程序用户

Uid:用户的唯一标识

Group:用户的所在组

Create_home=yes|no,替换用户的家目录,不需要替换用户的家目录可以不写

Password:给用户创建密码

Command:用户的注释信息(可有可无)

Remove=yes|no 当删除用户时,加上remove=yes,删除用户的家目录,userdel -r,如果不需要删除家目录,可以不写

例:

在创建用户时,虽然声明了是一个程序用户,但是默认登录shell如果没有额外的声明,还是默认的/bin/bash.UID会按照程序用户来指定,程序用户没有家目录

那我们该怎么声明

使用ansible的USER模块创建用户时,如果创建普通用户可以不加system=no,指定shell类型也可以不加,默认就是/bin/bash

如果创建的是程序用户,一定声明system=yes,声明shell的类型,shell=/sbin/nologin

也可以指定uid的方式,给用户分配一个uid

举几个实例:

Create_home=yes|no,替换用户的家目录,不需要替换用户的家目录可以不写

如何删除用户:

模块五:

Group模块:用户组的管理模块

Name必须要有

Gid:设置组的ID

如何创建用户的时候添加组

Ansible不适合使用交互命令

如何删除组

要先删组用户,再删除用户

演示

模块六:

Ping模块

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于vite 初始化vue3项目并引入Vue Router和Ant Design Vue

基于vite 初始化vue3项目并引入常用的功能、组件。 Vue RouterAnt Design Vue 系列文章指路👉 系列文章-基于Vue3创建前端项目并引入、配置常用的库和工具类 文章目录 创建ViteVue项目创建并运行WebStorm无法识别,需要在vite.config.js中定义alias 引入…

GNSS模块在野外探险中的应用

野外探险是一项令人兴奋的活动,而GNSS(全球导航卫星系统)模块的广泛应用为探险者提供了精准的导航、位置跟踪和安全保障。本文将深入探讨GNSS模块在野外探险中的应用,以及它如何改变和增强探险体验。 精准导航与路径规划&#xf…

基于SpringBoot的大病保险管理系统 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统配置维护2.2 系统参保管理2.3 大病保险管理2.4 大病登记管理2.5 保险审核管理 三、系统详细设计3.1 系统整体配置功能设计3.2 大病人员模块设计3.3 大病保险模块设计3.4 大病登记模块设计3.5 保险审核模块设计 四、…

VS Code配置Go语言开发环境

提示:首先这是一个新型语言,最好把vscode更新到最新版。 1:去官网下载Go语言编译器,之后配置到系统环境中,能看到版本就行。 2:创建一个文件夹,存放go的工具文件,我的在D:\GoFile\G…

职场如何与不同级别的领导打交道?学会3个小妙招吃遍天下

职场如何与不同级别的领导打交道?学会3个小妙招吃遍天下 简介 刚步入职场的时候,很多新人小白会患上权威恐惧症,简单来说就是害怕与领导打交道,职位越大的领导越害怕。有领导在的地方有多远就躲多远,更别说主动去找领…

嵌入式串口输入详细实例

学习目标 掌握串口初始化流程掌握串口输出单个字符掌握串口输出字符串掌握通过串口printf熟练掌握串口开发流程学习内容 需求 串口循环输出内容到PC机。 串口数据发送 添加Usart功能。 首先,选中Firmware,鼠标右键,点击Manage Project Items 接着,将gd32f4xx_usart.c添…

[PyTorch][chapter 8][李宏毅深度学习][Back propagation]

前言: 反向传播算法(英:Backpropagation algorithm,简称:BP算法)是一种监督学习算法,常被用来训练多层感知机。 它用于计算梯度计算中,降低误差。 目录: 链式法则 模型简介(Model) 损失函…

【YOLOv8量化】普通CPU上加速推理可达100+FPS

NNCF介绍 OpenVINO2023版本衍生出了一个新支持工具包NNCF(Neural Network Compression Framework – 神经网络压缩框架),通过对OpenVINO IR格式模型的压缩与量化更好的提升模型在OpenVINO框架上部署的推理性能,github。 https://github.com/openvinoto…

银河麒麟v10 安装mysql 8.35

银河麒麟v10 安装mysql 8.35 1、下载Mysql安装包2、安装Mysql 8.352.1、安装依赖包2.2、安装Mysql2.3、安装后配置 1、下载Mysql安装包 访问官网下载链接 链接: https://dev.mysql.com/downloads/mysql/ 选择如下 点击下载按钮 下载安装包 2、安装Mysql 8.35 官方安装文档…

AWS Linux安装桌面并远程访问

文章目录 小结问题及解决参考 小结 在AWS Linux安装了桌面并进行远程访问。 问题及解决 需要使用过程桌面访问AWS Linux,这里在AWS服务器安装并使用Amazon Linux 2 MATE desktop。 检查OS版本: [ec2-userip-10-0-3-241 ~]$ grep PRETTY_NAME /etc/o…

算法设计与分析2023秋-头歌实验-实验七 动态规划

文章目录 第1关:数塔问题任务描述相关知识编程要求解题思路测试说明参考答案 第2关:最长公共子序列任务描述相关知识编程要求解题思路:测试说明参考答案 第3关:求序列-2 11 -4 13 -5 -2的最大子段和任务描述相关知识编程要求解题思…

可实现RSSD云硬盘120万IOPS的SPDK IO路径优化

一. 简介 用户对超高并发、超大规模计算等需求推动了存储硬件技术的不断发展,存储集群的性能越来越好,延时也越来越低,对整体IO路径的性能要求也越来越高。在云硬盘场景中,IO请求从生成到后端的存储集群再到返回之间的IO路径比较…

less基础介绍

什么是less? Less是一个C5S预处理器,Less文件后缀是,less。扩充了 CSS 语言,使CSS 具备一定的逻辑性、计算能力 注意事项: 浏览器不识别 Less 代码,目前阶段,网页要引入对应的 CSS 文件 VS Code 插件: Easy LESS,保存 …

JVM快速入门

JVM 字节码 字节码文件的组成 字节码由五个部分组成:基础信息 常量池 字段 方法 属性 基础信息: 魔数、字节码文件对应的版本号、访问标识(public final)、该类的父类索引、该类实现哪些接口的索引 魔数:文件无法…

鸿蒙 - arkTs:渲染(循环 - ForEach,判断 - if)

ForEach循环渲染: 参数: 要循环遍历的数组,Array类型遍历的回调方法,Function类型为每一项生成唯一标识符的方法,有默认生成方法,非必传 使用示例: interface Item {name: String,price: N…

ValueError: source code string cannot contain null bytes

解决:把存在这个问题的包,全部卸载重装 pip uninstall xxx pip install xxx

美国联邦机动车安全标准-FMVSS

FMVSS标准介绍: FMVSS是美国《联邦机动车安全标准》,由美国运输部下属的国家公路交通安全管理局(简称NHTSA)具体负责制定并实施。是美国联邦政府针对机动车制定的安全标准,旨在提高机动车的安全性能,减少交通事故中的人员伤亡。F…

路由跳转传递参数注意事项,查询字符串传参,params传参需要注意的地方,菜单内容的二级内容 vue3

路由跳转和传参(vue3)_vue3路由传参-CSDN博客 注意: import {useRouter} from "vue-router"const routeruseRouter()1.查询字符串传参,传一个对象,对象里面可以写path字段 router.push({path:/item,query:{id:1}} ) 通过当前路由…

(保姆级教程)一篇文章,搞定所有Linux命令,以及tar解压缩命令,wget、rpm等下载安装命令,Linux的目录结构,以及用户和用户组

文章目录 Linux命令1. Linux目录结构2. 基本命令(了解)3. 目录(文件夹)命令列出目录切换目录创建目录删除目录复制目录移动和重命名目录 4. 文件命令创建文件编辑文件编辑文件时的其他操作 查看文件移动/重命名文件复制文件删除文…

如何通过ETLCloud的API对接功能实现各种SaaS平台数据对接

前言 当前使用SaaS系统的企业越来越多,当我们需要对SaaS系统中产生的数据进行分析和对接时就需要与SaaS系统提供的API进行对接,因为SaaS一般是不会提供数据库表给企业,这时就应该使用ETL(Extract, Transform, Load)的…