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.hqwc.cn/news/288325.html

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

相关文章

kafka offset sasl加密连接

kafka-tool(offset) 进行SCRAM连接,直接上图 填写jaas的认证(账密 引用包)

pytest--allure报告中添加用例详情

前言 前面介绍了如何生成allure的报告,看着allure的页面非常好看,但是感觉少了一些内容,allure还可以增加一些用例详情内容,这样让我们的报告看着更加绚丽。 allure增加用例详情 我们可以在报告测试套件中增加用例详情内容。 …

【简洁易懂】为什么绝对收敛的级数一定条件收敛?【考研向】

针对某高热帖子真的想说,什么时候讨论知识的戾气不那么重了,什么时候能把知识深入浅出的讲明白了,什么时候我们才能有希望吧。 图源:https://www.youtube.com/watch?v3ShPTvJUFrU

一文解决idea导入源码控制台爆红问题

文章目录 唠嗑部分背景说明idea查看maven配置 言归正传安装mavenidea配置maven 结语及资料获取 唠嗑部分 背景说明 很多新手伙伴们在导入项目源码时,都会遇到大片依赖爆红,项目跑不起来,小白也是把自己电脑重新配置了一番,复现了…

短视频时代,又恰逢双旦来临之际,普通人又该如何立足?

我是电商珠珠 在电商发展迅速的同时,短视频也在同步发展。国内的短视频比较热门的有抖音、视频号、快手这几个。 抖音在19年的时候发展起了自己的电商行业-抖音小店,并顺势掀起了直播电商的热潮。 直播电商在短视频中很火,所以很多人都选择…

MySQL——表的增删查改

目录 一.Create(创建) 1.单行数据 全列插入 2.多行数据 指定列插入 3.插入否则更新 4. 替换 二.Retrieve(读取) 1. select 列 查询 2.where 条件 3.结果排序 4.筛选分页结果 三.Update (修改)…

《PySpark大数据分析实战》-15.云服务模式Databricks介绍创建集群

📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP…

矩阵式键盘实现的电子密码锁

#include<reg51.h> //包含51单片机寄存器定义的头文件 sbit P14P1^4; //将P14位定义为P1.4引脚 sbit P15P1^5; //将P15位定义为P1.5引脚 sbit P16P1^6; //将P16位定义为P1.6引脚 sbit P17P1^7; //将P17位定义为P1.7引脚 sbit soundP3^7; //将so…

英码科技受邀参加2023计算产业生态大会,分享智慧轨道交通创新解决方案

12月13-14日&#xff0c;“凝心聚力&#xff0c;共赢计算新时代”——2023计算产业生态大会在北京香格里拉饭店成功举办。英码科技受邀参加行业数字化分论坛活动&#xff0c;市场总监李甘来先生现场发表了题为《AI哨兵&#xff0c;为铁路安全运营站好第一道岗》的精彩主题演讲&…

ROS学习笔记(七)---参数服务器

ROS学习笔记文章目录 01. ROS学习笔记(一)—Linux安装VScode 02. ROS学习笔记(二)—使用 VScode 开发 ROS 的Python程序&#xff08;简例&#xff09; 03. ROS学习笔记(三)—好用的终端Terminator 04. ROS学习笔记(四)—使用 VScode 启动launch文件运行多个节点 05. ROS学习笔…

探索 Vue3 (二) 插槽slot

插槽就是子组件中的提供给父组件使用的一个占位符&#xff0c;用<slot></slot> 表示&#xff0c;父组件可以在这个占位符中填充任何模板代码&#xff0c;如 HTML、组件等&#xff0c;填充的内容会替换子组件的<slot></slot>标签。 匿名插槽 在子组件…

Linux上随机输出谚语的程序fortune

概要&#xff1a; Linux上有一个随机输出谚语的程序叫fortune 手册对它的描述是&#xff1a;输出一个随机的、充满希望的、有趣的谚语 本篇所用的系统是Ubuntu22.04 一、fortune的安装 sudo apt install fortune-mod 二、fortune的使用 1、示例一 这个谚语是什么意思啊…