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模块

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

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

相关文章

探索 MajicStudio:一款多功能视频编辑软件

一、产品简介 MajicStudio是一款基于人工智能的图片编辑与设计工具,拥有简洁的界面与丰富功能。采用深度学习和计算机视觉技术可以自动识别图片要素。 二、应用场景 MajicStudio的AI图像功能适用于多场景,包括艺术设计、电商、游戏和文创等场景。 三、…

【ranger】CDP环境 更新 ranger 权限策略会发生低概率丢失权限策略的解决方法

一、问题描述: 我们的 kafka 服务在更新(添加) ranger 权限时,会有极低的概率导致 MM2 同步服务报错,报错内容 Not Authorized。但是查看 ranger 权限是赋予的,并且很早配置的权限策略也会报错。 相关组件…

数据结构与算法-动态规划-地下城游戏

地下城游戏 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某…

DDR4 设计概述以及分析仿真案例(硬件学习)

引言:随着计算机,服务器的性能需求越来越高,DDR4开始应用在一些高端设计中,然而目前关于DDR4的资料非常少,尤其是针对SI(信号完整性)部分以及相关中文资料,另外一方面,DDR4的高速率非常容易引起…

SQL进阶理论篇(十四):CBO优化器是如何计算代价的?

文章目录 简介能调整的代价模型的参数有哪些?mysql.server_costmysql.engine_cost 如何修改这些代价参数?代价模型具体是如何计算的参考文献 简介 大部分RDBMS都支持基于代价的优化器CBO,但其实CBO仍然存在缺陷(比如参数配置的不…

Xcode 恢复Discard Changes

当开发的时候,Discard All Changes后 文件的修改都被放弃了,怎么才可以撤销更改呢 Xcode和Git没有这个功能,Finder可以实现 首先我们先退出Xcode用TextEdit打开你想恢复的文件转到文件 > 还原到 > 浏览所有版本...选择你想恢复的版本即…

【Python-批量修改视频分辨率】

Python-批量修改视频分辨率 1 使用Python修改视频分辨率2 常见的视频编码格式2.1 等效的编码格式表示方式2.2 常见的编码格式 1 使用Python修改视频分辨率 首先拷贝视频文件并修改后缀,然后修改图片的分辨率,实现视频批量修改和转换。 import os impor…

3dmax怎么制作软装模型?

软装在室内设计中经常用到,很多人感觉很难,其实也有很多简单的方法,这里介绍一种软装的制作方法。 1、打开3dmax,创建一个切角长方体,对长方体的长和宽进行适当的分段。 2、将切角长方体转换成可编辑多边形。推荐&…

实战篇:一文讲清楚电商平台用户评价分析

01 明确问题 随着电商平台的成熟,如何提升用户体验、提高客户留存率也成为了电商平台关注的重点。而用户评价是最直观地能反应用户体验的指标。用户差评更是其中的重点,通过差评分析,可以寻找到平台目前存在的可能导致用户打出差评的因素&am…

聊聊CISP证书

文章目录 什么是CISP为什么要考这个证报考条件是什么没达到工作年限可不可以考必须要报班吗如何找培训机构培训机构能提供什么考试一般安排在什么时候学习多长时间可以考证多长时间出成绩&拿证必须要和自己工作关联吗考试注意事项怎么选择方向需要学的内容证书有效期多长时…

计算机网络-进阶

目录 易混淆物理层数据链路层网络层nat如何实现私有ip通信IP数据报 格式解析tcp 连接tcp流量控制滑动窗口拥塞控制 报文捕获 wireshark路由模拟器 enspcdn代理服务器 VS cdn VS web cache 计算机有了物理地址,为什么还要有ip地址?单播 多播 广播 传输层会…

基于AWD攻防对Web漏洞的研究

写在前面 Copyright © [2023] [Myon⁶]. All rights reserved. 基于awd攻防环境和xshell远程连接,配合kali linux渗透系统、蚁剑、D盾、河马、Seay代码审计系统等,演示现实中网站可能存在的漏洞,对网站进行漏洞扫描,渗透测…

【jvm从入门到实战】(九) 垃圾回收(2)-垃圾回收器

垃圾回收器是垃圾回收算法的具体实现。 由于垃圾回收器分为年轻代和老年代,除了G1之外其他垃圾回收器必须成对组合进行使用 垃圾回收器的组合使用关系图如下。 常用的组合如下: Serial(新生代) Serial Old(老年代) Pa…

GNSS模块在海洋领域的应用

随着科技的不断进步,GNSS(全球导航卫星系统)模块在各个领域的应用逐渐成为日常生活的一部分。在海洋领域,GNSS技术为航海、渔业、海洋科学研究等提供了关键的支持。本文将深入探讨GNSS模块在海洋领域的广泛应用,以及它…

Redis介绍与使用

1、Nosql 1.1 数据存储的发展 1.1.1 只使用Mysql 以前的网站访问量不大,单个数据库是完全够用的。 但是随着互联网的发展,就出现了很多的问题: 数据量太大,服务器放不下 访问量太大,服务器也承受不了 1.1.2 缓存…

移动端自适应

1.普通html页面 一般使用px定义,不会进行适配 移动端项目:从不同的终端保持页面的一致性(自适应),使用rem相对单位,rem是相对于根节点html的font-size的值进行动态换算的值 2.普通html页面进行适配 普通页面中&…

wps三级标题不对齐

段落中设置首行缩进即可对其 效果: 使用格式刷去将其他三级标题同步

使用yarn安装electron时手动选择版本

访问1Password或者其他可以提供随机字符的网站,获取随机密码运行安装命令 操作要点,必须触发Couldnt find any versions for "electron" that matches "*"才算成功 将复制的随机密码粘贴到后面 例如:yarn add --dev elec…

Java基础知识回顾

Java基础 一、Java概述 1、Java技术体系平台 类型简介JavaSE 标准版支持面向桌面级的应用JavaEE 企业版支持为企业开发的应用JavaME 小型版运行在移动终端的平台 2、Java重要的特点 面向对象的语言(OOP) 健壮的语言,具有强类型转换、异常…

【Docker】基础篇

文章目录 Docker为什么出现容器和虚拟机关于虚拟机关于Docker二者区别: Docker的基本组成相关概念-镜像,容器,仓库安装Docker卸载docker阿里云镜像加速docker run的原理**为什么容器比虚拟机快**Docker的常用命令1.帮助命令2.镜像相关命令3.容…