当前位置: 首页 > news >正文

Linux运维篇-ansible的使用

目录

  • ansible简介
  • ansible架构
    • 1、连接插件
    • 2、核心模块
    • 3、自定义模块
    • 4、插件
    • 5、剧本
    • 6、主机清单
  • ansible的执行过程
  • 安装Ansible
  • ansible的使用
    • ansible.cfg文件修改
    • 添加主机清单
      • 方式一
      • 方式二
      • 方式三
    • 测试主机清单连接

ansible简介

简单来说,ansible就是一个自动化运维工具。主要功能是批量系统配置、批量程序部署、批量运行命令等。
ansible是基于python开发,且工作原理简单,通过ssh连接客户机执行任务。ansible是基于模块运行的,它本身并不具备批量执行任务的能力。

ansible架构

1、连接插件

connection plugins用于连接主机 用来连接被管理端

2、核心模块

core modules连接主机实现操作,它依赖于具体的模块来做具体的事情

3、自定义模块

custom modules根据自己的需求编写具体的模块

4、插件

plugins完成模块功能的补充

5、剧本

playbook ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行

6、主机清单

inventor定义ansible需要操作主机的范围

ansible是模块化的 它所有的操作都依赖于模块

在这里插入图片描述

ansible的执行过程

  1. Ansible读取playbook剧本,剧本中会记录哪些主机执行哪些任务。
  2. 首先Ansible通过主机清单inventory找到要执行的主机,然后调用具体的模块。
  3. 其次Ansible会通过连接插件连接对应的主机并发送对应的任务列表。
  4. 最后被管理的主机会将Ansible发送过来的任务解析为本地Shell命令执行。

安装Ansible

我的基础环境为centos7.9,需要配置yum源,和epel源,我这里选用的是阿里云。

首先删除系统原来的yum源配置文件,centos7的官方支持已过期且国内有网络访问限制,最好使用第三方源。
在这里插入图片描述
按照阿里云镜像站的说明,下载centos7版本的yum源文件
在这里插入图片描述
下载centos7版本的epel源文件
在这里插入图片描述
更新yum源配置和epel源配置
在这里插入图片描述有两个报错信息,但是没有影响,yum源和epel源都已经准备好了。
安装ansible非常简单,只需要
在这里插入图片描述等待任务完成即可。
ansible --version命令检查ansible的版本。
在这里插入图片描述

ansible 2.9.27config file = /etc/ansible/ansible.cfg    #配置文件configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']    # 模块目录ansible python module location = /usr/lib/python2.7/site-packages/ansible #python模块安装目录executable location = /usr/bin/ansible    #ansible命令python version = 2.7.5 (default, Oct 30 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] #python版本

ansible的使用

ansible.cfg文件修改

# ansible <host-pattern> [options]
--version     #ansible版本信息
-v            #显示详细信息
-i            #主机清单文件路径,默认是在/etc/ansible/hosts (一般用临时的,除非清单临时使用一次)
-m            #使用的模块名称,默认使用command模块
-a            #使用的模块参数,模块的具体动作
-k            #提示输入ssh密码,而不使用基于ssh的秘钥认证
-C            #模拟执行测试,但不会真的执行(没用)
-T            #执行命令的超时

Ansible的本身配置文件只有一个,即ansible.cfg,Ansible安装好后它默认存放于/etc/ansible/目录下。

ansible.cfg配置文件可以存在于多个地方,Ansible读取配置文件的顺序依次是:

当前命令执行目录用户家目录下的.ansible.cfg/etc/ansible.cfg
先找到哪个就使用哪个的配置。其ansible.cfg配置的所有内容均可在命令行通过参数的形式传递或定义在Playbooks中。

[root@localhost ~]# cat /etc/ansible/ansible.cfg
#inventory      = /etc/ansible/hosts        #主机清单配置文件
#library        = /usr/share/my_modules/    #库文件存放目录
#remote_tmp     = ~/.ansible/tmp            #临时py文件存放在远程主机目录
#local_tmp      = ~/.ansible/tmp            #主机的临时执行目录
#forks          = 5                            #默认并发数(一般不改,不要设置太大,实际上串行就行了)
#sudo_user      = root                        #默认sudo用户(ansible执行的用户,一般使用root用户)
#ask_sudo_pass = True                        #每次执行是否询问sudo的ssh密码
#ask_pass      = True                        #每次执行是否询问ssh密码
#remote_port    = 22                        #远程主机端口(默认22,因为每台端口可能不同,在主机清单里配)
host_key_checking = False                    #跳过检查主机指纹(一定要打开!ssh连接就不用输入yes,否则卡在输yes上)
log_path = /var/log/ansible.log                #ansible日志(无所谓配不配,运行时报错会直接展示)#普通用户提权操作(我们用的是root账户,这个一般也用不上)
[privilege_escalation]
#become=True        #是不是开启
#become_method=sudo    #提权的命令
#become_user=root    #提权的用户
#become_ask_pass=False    #要不要认证密码

我想要在其他目录来修改ansible的配置文件,避免对原生的配置文件造成破坏。如果你没有这个需求,那么在/etc/ansible目录中修改配置文件也是一样的。
所以,cp -R /etc/ansible /root/
在这里插入图片描述
修改当前目录下的配置文件

inventory      = /root/ansible/hosts
roles_path    = /root/ansible/roles
host_key_checking = False

添加主机清单

在上一步,我修改了默认的主机清单配置文件位置,inventory = /root/ansible/hosts,所以,这里我的主机清单位置为 /root/ansible/hosts,如果没有修改,那就是默认的/etc/ansible/hosts

方式一

[root@localhost ~]# vim /root/ansible/hosts
#方式一:IP + 端口 + 用户 + 密码 (端口默认22,用户默认root,ansible_ssh_port和ansible_ssh_usr可以不写)
[web01]
10.0.0.7 ansible_ssh_port=22 ansible_ssh_usr=root ansible_ssh_pass='admin123'
10.0.0.8 ansible_ssh_port=22 ansible_ssh_usr=root ansible_ssh_pass='admin123'

方式二

这种方式下, 需要做ssh免密登录,相对于明文的密码来说,更加安全。

#1.生成密钥对
[root@localhost ~]# ssh-keygen#2.推送公钥
[root@localhost ~]# ssh-copy-id root@172.16.1.7
[root@localhost ~]# ssh-copy-id root@172.16.1.8
#方式二:ip
[root@localhost ~]# vim /root/ansible/hosts
[web01]
172.16.1.7
172.16.1.8
#方式二:主机名
[web01]web01web02

方式三

#方式三:主机组
[root@localhost ~]# vim /etc/ansible/hosts
[web_group]
web01
web02
[lb_group]
172.16.1.4 ansible_ssh_pass='admin123'
172.16.1.5 ansible_ssh_pass='admin123'

查看指定组的主机

[root@localhost ~]# ansible web_group --list-hosthosts (2):web01web02

查看配置文件所有组的主机

#all为内置变量,表示配在主机清单里的所有主机
[root@localhost ~]# ansible all --list-host    hosts (4):172.16.1.4172.16.1.5web01web02

这里还有个需要注意的是多组整合。

[root@m01 ~]# vim /etc/ansible/hosts
[web_group]
web01
web02
[ftp_group]
172.16.1.4 ansible_ssh_pass='admin123'
172.16.1.5 ansible_ssh_pass='admin123'
[db_group]
172.16.1.51 ansible_ssh_pass='admin123'
172.16.1.52 ansible_ssh_pass='admin123'#定义多组,整合web_group组合lb_group组
[nginx_group:children]    #如果不加:children,下面的组名会被当成主机名
web_group
ftp_group

查看多组整合的主机列表你就可以看出来他们之间的区别:

[root@localhost ~]# ansible nginx_group:children --list-host
[WARNING]: Could not match supplied host pattern, ignoring: childrenhosts (4):web01web02172.16.1.4172.16.1.5

测试主机清单连接

[root@localhost ~]# ansible 'web01' -m ping #代表仅'web01'组内的主机
[root@localhost ~]# ansible '*' -m ping    #*代表所有主机
[root@localhost ~]# ansible 'all' -m ping    #all代表所有主机
[root@localhost ~]# ansible 'web01,web02' -m ping    #支持逗号

相关文章:

Linux运维篇-ansible的使用

目录 ansible简介ansible架构1、连接插件2、核心模块3、自定义模块4、插件5、剧本6、主机清单 ansible的执行过程安装Ansibleansible的使用ansible.cfg文件修改添加主机清单方式一方式二方式三 测试主机清单连接 ansible简介 简单来说&#xff0c;ansible就是一个自动化运维工…...

【MySQL】日志

1. 日志基本了解 常见的MySQL Server日志类型&#xff0c;以及记录的日志信息&#xff08;场景通俗理解&#xff09; 错误日志 记录的主要信息由服务器关闭、启动、崩溃事件&#xff1b;MySQL运行过程中出现的错误、警告和严重事件以及与权限、配置相关的问题使用场景 诊断MyS…...

2024年CentOS镜像下载地址,包括CentOS官网、国内镜像下载,超详细也

这里给大家提供了4种镜像下载地址&#xff0c;包括CentOS官方镜像下载、阿里云开源镜像站下载、网易开源镜像下载搜狐开源镜像下载。 1.CentOS官网镜像下载 因为服务器在国外所以打开CentOS官方网站的时候可能会比较慢。大家可以选择后面几种国内镜像下载方式。 1.1进入CentO…...

STL学习-顺序容器-array数组

array模板类是C11引入。它是有着固定大小用于保存一系列同类型元素的顺序容容器&#xff0c;因此不能对它进行增加或者删除,只能使用或者替换它的元素值。 1.定义及初始化 array定义对象时,需要传入类型和大小,且大小不能修改。array是唯--个如果不初始化,它的初始化是不明确…...

Spring Boot框架下的酒店住宿登记系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

electron展示下载进度条

我们使用electron下载文件时&#xff0c;会发现不像浏览器一样会有地方展示下载进度&#xff0c;这导致下载一些大文件时不知道下载进度到哪里了 下面我们通过electron提供的will-download监听和element-plus中的ElNotification和ElProgress组件实现这一功能 实现逻辑 触发…...

Spark 基础操作

Spark 操作 创建操作(Creation Operation) 用于RDD创建工作。RDD创建只有两种方法&#xff0c;一种是来自于内存集合和外部存储系统&#xff0c;另一种是通过转换操作生成的RDD 转换操作(Transformation Operation) 将RDD通过一定的操作变成新的RDD&#xff0c;比如HadoopR…...

VoLTE 微案例:VoLTE 注册失败,I-CSCF 返回 403,HSS(UAR) 返回 5001

目录 1. 问题描述 2. 故障注册流程与正常流程对照 3. 结论 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识(加入 51学通信),或者想要 cpp 方向修改简历,模拟面试,学习指导都可以添加博主低价指导哈。 1. 问题描述...

智能财务 | 数据与融合,激发企业财务数智化转型思考

数据与融合&#xff0c;激发企业财务数智化转型思考 用友持续深耕企业财务领域&#xff0c;见证中国企业走过了财务电算化、信息化时代&#xff0c;当下共同经历数智化时代。2023 年度&#xff0c;通过走访标杆企业&#xff0c;与高校教授、权威机构学者共同探讨等形式&#xf…...

docker 下载netcore 镜像

dotnet-docker/README.runtime.md at main dotnet/dotnet-docker GitHub docker pull mcr.microsoft.com/dotnet/runtime:8.0 docker pull mcr.microsoft.com/dotnet/runtime:3.1...

Ajax:请求 响应

Ajax&#xff1a;请求 & 响应 AjaxjQuery的Ajax接口$.get$.post$.ajax PostMan 接口测试getpost Ajax 浏览器中看到的数据&#xff0c;并不是保存在浏览器本地的&#xff0c;而是实时向服务器进行请求的。当服务器接收到请求&#xff0c;就会发回一个响应&#xff0c;此时浏…...

WebForms DataList 控件深入解析

WebForms DataList 控件深入解析 概述 在 ASP.NET WebForms 的众多服务器控件中&#xff0c;DataList 控件是一个功能强大的数据绑定控件&#xff0c;它允许开发者以表格形式展示和操作数据。DataList 控件类似于 Repeater 控件&#xff0c;但提供了更多的内置布局和样式选项…...

【有啥问啥】DINO:一种改进的去噪锚框的端到端目标检测器

DINO&#xff1a;一种改进的去噪锚框的端到端目标检测器 在目标检测领域&#xff0c;DINO&#xff08;DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection&#xff09;是一种创新的端到端目标检测模型&#xff0c;旨在解决传统目标检测算法中的一些关…...

自由学习记录(15)

Java注解 else if的省略问题&#xff08;可能看花&#xff09; else if也是取最近的if连通&#xff0c;看上去加了{}就可以正常执行了&#xff0c;缩进要命&#xff0c;不提示真容易看错&#xff0c; 组合数公式和数组参数 在 C 中&#xff0c;数组作为函数参数时&#xff0c;…...

Docker 部署 JDK11 图文并茂简单易懂

部署 JDK11 ( Docker ) [Step 1] : 下载JDK11 - JDK 11 | Oracle 甲骨文官网 [Step 2] : jdk11上传服务器/root/jdk11 可自行创建文件夹 进入目录 /root/jdk11 解压文件 tar -zxvf jdk-11.0.22_linux-x64_bin.tar.gz解压后 进入 /root/jdk11/jdk-11.0.22 创建 jre 文件 ./bi…...

Cisco ASAv虚拟防火墙

EVE-NG模拟器使用Cisco防火墙版本ASAv-9.20.3-PLR-Licensed。配置如下&#xff0c;主要是三个方面&#xff0c;配置管理口地址模式DHCP&#xff0c;配置安全级别&#xff1b;第二&#xff0c;开启http服务器&#xff0c;配置允许访问主机的网段和接口&#xff1b;最后配置用户名…...

w~自动驾驶合集6

我自己的原文哦~ https://blog.51cto.com/whaosoft/12286744 #自动驾驶的技术发展路线 端到端自动驾驶 Recent Advancements in End-to-End Autonomous Driving using Deep Learning: A SurveyEnd-to-end Autonomous Driving: Challenges and Frontiers 在线高精地图 HDMa…...

C/C++ H264文件解析

C实现H264文件以及一段H264码流解析&#xff0c;源码如下&#xff1a; h264Parse.h: #ifndef _H264PARSE_H_ #define _H264PARSE_H_#include <fstream>class H264Parse { public:int open_file(const std::string &filename);/*** brief 从文件中读取一个nalu&…...

【Windows】电脑端口明明没有进程占用但显示端口被占用(动态端口)

TOC 一、问题 重启电脑后&#xff0c;启用某个服务显示1089端口被占用。 查看是哪个进程占用了&#xff1a; netstat -aon | findstr "1089"没有输出&#xff0c;但是换其他端口&#xff0c;是可以看到相关进程的&#xff1a; 现在最简单的方式是给我的服务指定另…...

Redis 持久化 问题

前言 相关系列 《Redis & 目录》&#xff08;持续更新&#xff09;《Redis & 持久化 & 源码》&#xff08;学习过程/多有漏误/仅作参考/不再更新&#xff09;《Redis & 持久化 & 总结》&#xff08;学习总结/最新最准/持续更新&#xff09;《Redis & …...

vivado 配置

配置 配置指的是将特定应用数据加载到 FPGA 器件的内部存储器的进程。 赛灵思 FPGA 配置数据储存在 CMOS 配置锁存 (CCL) 中&#xff0c;因此配置数据很不稳定&#xff0c;且在每次 FPGA 器件上电后都必须重 新加载。 赛灵思 FPGA 器件可通过配置引脚&#xff0c;自行…...

Java如何实现PDF转高质量图片

大家好&#xff0c;我是 V 哥。在Java中&#xff0c;将PDF文件转换为高质量的图片可以使用不同的库&#xff0c;其中最常用的库之一是 Apache PDFBox。通过该库&#xff0c;你可以读取PDF文件&#xff0c;并将每一页转换为图像文件。为了提高图像的质量&#xff0c;你可以指定分…...

itemStyle.normal.label is deprecated, use label instead.

itemStyle.normal.label is deprecated, use label instead. normal’hierarchy in label has been removed since 4.0. All style properties are configured in label directly now. 错误写法&#xff1a; itemStyle: {normal: {// color: #00E0FF, // 设置折线点颜色 labe…...

如何在 Linux VPS 上保护 MySQL 和 MariaDB 数据库

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 有许多在 Linux 和类 Unix 系统上可用的 SQL 数据库语言实现。MySQL 和 MariaDB 是在服务器环境中部署关系型数据库的两个流行选项…...

CSS 样式 box-sizing: border-box; 用于控制元素的盒模型如何计算宽度和高度

文章目录 box-sizing: border-box; 的含义默认盒模型 (content-box)border-box 盒模型 在微信小程序中的应用示例 在微信小程序中&#xff0c;CSS 样式 box-sizing: border-box; 用于控制元素的盒模型如何计算宽度和高度。具体来说&#xff0c; box-sizing: border-box; 会改…...

预训练 BERT 使用 Hugging Face 和 PyTorch 在 AMD GPU 上

Pre-training BERT using Hugging Face & PyTorch on an AMD GPU — ROCm Blogs 2024年1月26日&#xff0c;作者&#xff1a;Vara Lakshmi Bayanagari. 这篇博客解释了如何从头开始使用 Hugging Face 库和 PyTorch 后端在 AMD GPU 上为英文语料(WikiText-103-raw-v1)预训练…...

鸿蒙是必经之路

少了大嘴的发布会&#xff0c;老实讲有点让人昏昏入睡。关于技术本身的东西&#xff0c;放在后面。 我想想来加把油~ 鸿蒙发布后褒贬不一&#xff0c;其中很多人不太看好鸿蒙&#xff0c;一方面是开源性、一方面是南向北向的利益问题。 不说技术的领先点&#xff0c;我只扯扯…...

Java项目实战II基于微信小程序的马拉松报名系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 马拉松运动…...

家用wifi的ip地址固定吗?换wifi就是换ip地址吗

在探讨家用WiFi的IP地址是否固定&#xff0c;以及换WiFi是否就意味着换IP地址这两个问题时&#xff0c;我们首先需要明确几个关键概念&#xff1a;IP地址、家用WiFi网络、以及它们之间的相互作用。 一、家用WiFi的IP地址固定性 家用WiFi环境中的IP地址通常涉及两类&#xff1a…...

codeforces _ 补题

C. Ball in Berland 传送门&#xff1a;Problem - C - Codeforces 题意&#xff1a; 思路&#xff1a;容斥原理 考虑 第 i 对情侣组合 &#xff0c;男生为 a &#xff0c;女生为 b &#xff0c;那么考虑与之匹配的情侣 必须没有 a | b &#xff0c;一共有 k 对情侣&#x…...

软件外包项目平台/seo技术外包 乐云践新专家

转载自AI Studio 项目链接https://aistudio.baidu.com/aistudio/projectdetail/3202434 赛题介绍 赛题背景 图像分类&#xff08;image classification&#xff09;是计算机视觉领域中最简单最基础的任务&#xff0c;学习研究图像分类是每个计算机视觉研究者的必经之路&…...

石岩做网站/全国各城市疫情搜索高峰进度

点击上方“AirPython”&#xff0c;选择“置顶公众号”第一时间获取 Python 技术干货&#xff01;阅读文本大概需要 8 分钟。1目 标 场 景女朋友会 Python 是多么可怕的一件事&#xff01;上篇文章发布之后&#xff0c;一位朋友告诉忽略了一件事&#xff0c;假设女朋友会 Pytho…...

保险网站/网络营销课程个人总结

十、mysql日志管理课程大纲1、MySQL日志类型简介2、MySQL错误日志配置及查看3、MySQL binlog介绍及管理实战4、MySQL 慢查询日志设置及管理实战1、日志的类型简介mysql> show variables like %log_error%&#xff1b;在配置文件中指定错误日志位置。mysql> show variable…...

吴江建设工程招标中心网站/百度seo招聘

https://grafana.com/ 时序数据库grafana搭建监控平台 https://www.jianshu.com/p/21ce6ee143f3 GrafanaPrometheus系统监控搭建 https://www.jianshu.com/p/5b40a2a75d70...

台州百度网站排名/win7一键优化工具

防火墙是一道关卡&#xff0c;阻止******的一种手段&#xff0c;防火墙是安全门&#xff0c;过滤网络的数据包&#xff0c;接下来的主要讲的iptables是一个重要的服务&#xff0c;现在我们隆重推出。 一、iptables基础 1.包的处理方式&#xff1a;DROP,ACCEPT,REJECT,LOG [root…...

wordpress 摘要长度/seo优化易下拉排名

国庆长假外出旅行&#xff0c;对于很多人来说&#xff0c;除了当地美景&#xff0c;美食&#xff0c;或许最重要的发朋友圈啦&#xff0c;不仅仅是为了分享旅途中的故事和心情&#xff0c;更多的是为了记录这一路上的回忆。而发朋友圈可是一门艺术&#xff0c;有些人不管什么都…...