ansible自动化运维(一)配置主机清单

news2025/1/23 6:02:57

目录

一、介绍

1.1了解自动化运维

1.2 ansible简介

1.3 ansible自动化运维的优势

1.4 ansible架构图

二、部署ansible

2.1 基本参数

2.2 Ansible帮助命令

2.3 配置主机清单

2.3.1 查看ansible的所有配置文件

2.3.2 /etc/ansible/ansible.cfg常用配置选项

2.3.3 ssh密码登录

2.3.4 Ansible主机清单里还可以定义变量、使用嵌套

​编辑

​编辑

2.3.5 ssh密钥登录


一、介绍

1.1了解自动化运维

我们要了解ansible自动化运维工具,就要先弄明白何为自动化运维。

自动化运维是指将日常运维的、大量的重复性工作自动化,把手工执行的工作,通过梳理分析,进行逻辑分解,借助平台或工具转为自动化操作。自动化是IT运维工作的升华,IT运维自动化不单纯是一个维护过程,更是一个管理的提升过程,是运维的更高层次,也是未来的发展趋势

1.2 ansible简介

Ansible是一款使用Python开发,模块化,依赖于ssh协议实现的自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复性的工作和维护成本,可以提高工作效率。

Ansible官网地址:www.ansible.com

官方文档:Ansible 文档 — Ansible 社区文档

1.3 ansible自动化运维的优势

  1. 可以提高项目的工作效率  ==》可以实现批量执行任务,自动化流程安排。
  2. 减少人为的失误操作  ==》 具有幂等性原则,如当执行一个安装任务时,ansible会先检查是否已安装且版本是否正确,如满足条件,便不会重复安装,避免重复安装导致的额外错误。
  3. 事务留痕  ==》会有具体执行任务的信息,比如执行任务发现服务器异常时,可根据执行记录去查看报错信息。
  4. 运维工作更加灵活  ==》 ansible默认情况是无代理模式的,这就意味着它不需要额外的代理程序,只需要服务器支持ssh(这对大部分linux服务器来说是满足的)
  5. 可以跨平台管理  ==》 ansible能够管理不同的操作系统,如linux,windows等等
  6. 方便信息的传递  ==》 ansible是允许定义变量和使用模板的,可以灵活地根据不同环境(如开发环境、测试环境、生产环境)传递相应的配置参数信息。

1.4 ansible架构图

 

1、主机清单Inventory:定义Ansible需要操作被控端主机的范围

2、剧本Playbook :Ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行

3、核心模块Core Modules:连接主机实现操作, 它依赖于具体的模块来做具体的事情

4、扩展模块Custom Modules:根据自己的需求编写具体的模块

5.插件Plugins:对模块功能的补充,如连接插件Connection Plugins:用于连接主机 用来连接被控端,还有查找插件、模块实用插件、回调插件等。

最重要的一点是:Ansible是模块化的,它所有的操作都依赖于模块。

二、部署ansible

# 先拉取epel扩展源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 更新yum源

yum makecache fast

# 安装Ansible

yum -y install ansible

# 查看Ansible版本

[root@localhost ~]# ansible --version

ansible 2.9.27

  config 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

  executable location = /usr/bin/ansible

  python version = 2.7.5 (default, Aug  7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
  1. 2.1 基本参数

其实最常用的莫过于-m,-a 和验证语法错误

-m          #指定使用的模块名称,不指定默认使用command模块

-a          #使用的模块参数,模块的具体动作;指定要执行的具体命令

--syntax-check      #验证语法

--version   #ansible版本信息

-v          #显示详细信息

-i          #主机清单文件路径,默认是在/etc/ansible/hosts

-k          #提示输入ssh密码,而不使用基于ssh的密钥认证

-C          #模拟执行测试,但不会真的执行

-T          #执行命令的超时

-f            #一次返回几个结果

  1. 2.2 Ansible帮助命令

ansible –help   #查询更多的参数命令

ansible-doc           #帮助命令

ansible-doc -l      #列出所以的模块

ansible-doc 模块名   #查看模块的详细信息

ansible-doc 模块名 -s  #查看模块的选项使用说明

2.3 配置主机清单

主机清单,用于定义被管理主机的认证信息, 例如被管理主机的主机名或IP地址、ssh登录用户名、密码以及key相关信息。

2.3.1 查看ansible的所有配置文件

[root@web01 ~]# rpm -qc ansible

/etc/ansible/ansible.cfg

/etc/ansible/hosts

2.3.2 /etc/ansible/ansible.cfg常用配置选项

[defaults]

#inventory      = /etc/ansible/hosts      #主机列表配置文件

#library        = /usr/share/my_modules/  #库文件存放目录

#remote_tmp     = ~/.ansible/tmp          #临时py文件存放在远程主机目录

#local_tmp      = ~/.ansible/tmp          #本机的临时执行目录

#forks          = 5                       #默认并发数

#sudo_user      = root                    #默认sudo用户

#ask_sudo_pass = True                     #每次执行是否询问sudo的ssh密码

#ask_pass      = True                     #每次执行是否询问ssh密码

#remote_port    = 22                      #远程主机端口

host_key_checking = False                 #跳过检查主机指纹

log_path = /var/log/ansible.log           #ansible日志

host_key_checking = False    当使用密码登录时需要配置此项不然会报错

因为ansible是通过ssh对被管理主机建立连接,所以他的登录方式也就是ssh的登陆方式

分为密码登录,密钥登录(公钥、私钥)

2.3.3 ssh密码登录

此方式没有密钥登录安全

密码登录可将密码,用户等信息直接放在主机清单里,在/etc/ansible/hosts中配置

[web01]

192.168.143.161 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=050801

# [web01]是用户组,可以在里面配置多个ip,后续对组进行操作时可对里面所有ip进行操作

[web02]

192.168.143.162 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=050801

~

Ansible执行命令返回的四种颜色

黄色:执行命令成功,并且做了修改;

绿色:执行命令成功,只查看信息,没有修改

红色:执行失败,报错

紫色:表示对命令发错的操作有警告信息

测试是否成功

2.3.4 Ansible主机清单里还可以定义变量、使用嵌套

语法格式:嵌套 [组名:children]

本身web_group里没有任何主机,但使用嵌套把web01,web02都赋予给了web_group

对组定义变量 [组名:vars]

2.3.5 ssh密钥登录

除了使用密码连接,还可以用密钥连接,实现免密登录。这时就不需要为在主机清单中指定密码了。

Ssh加密使用的是非对称算法,即公钥用于加密,私钥用于解密

实现操作:

生成密钥对

[root@web01 ~]# ssh-keygen

密钥存放位置

推送公钥到远程服务器上

[root@web01 ssh]# ssh-copy-id 192.168.143.162

 尝试登录看看是否需要密码

[root@web01 ssh]# ssh 192.168.143.162

Last failed login: Mon Dec  2 14:00:04 CST 2024 from 192.168.143.161 on ssh:notty

There were 2 failed login attempts since the last successful login.

Last login: Mon Dec  2 09:16:21 2024 from 192.168.143.1

[root@web02 ~]#

此时配置主机清单便不需要密码了。

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

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

相关文章

高效集成:将聚水潭数据导入MySQL的实战案例

聚水潭数据集成到MySQL:店铺信息查询案例分享 在数据驱动的业务环境中,如何高效、准确地实现跨平台的数据集成是每个企业面临的重要挑战。本文将聚焦于一个具体的系统对接集成案例——将聚水潭的店铺信息查询结果集成到MySQL数据库中,以供BI…

Spark基本命令详解

文章目录 Spark基本命令详解一、引言二、Spark Core 基本命令1、Transformations(转换操作)1.1、groupBy(func)1.2、filter(func) 2、Actions(动作操作)2.1、distinct([numTasks])2.2、sortBy(func, [ascending], [numTasks]) 三、…

[在线实验]-ActiveMQ Docker镜像的下载与部署

镜像下载 下载ActiveMQ的Docker镜像文件。通常,这些文件会以.tar格式提供,例如activemq.tar。 docker的activemq镜像资源-CSDN文库 加载镜像 下载完成后,您可以使用以下命令将镜像文件加载到Docker中: docker load --input a…

CQ 社区版 2024.11 | 新增“审批人组”概念、可通过SQL模式自定义审计图表……

CloudQuery 社区 11 月新版本来啦!本月版本依旧是 CUG(CloudQuery 用户组)尝鲜版的更新。 针对审计模块增加了 SQL 模式自定义审计图表;在流程模块引入了“审批人组”概念。此外,在 SQL 编辑器、连接管理等模块都涉及…

mac终端自定义命令打开vscode

1.打开终端配置文件 open -e ~/.bash_profile终端安装了zsh,那么配置文件是.zshrc(打开zsh配置,这里举🌰使用zsh) sudo open -e ~/.zshrc 2.在zshrc配置文件中添加新的脚本(这里的code就是快捷命令可以进…

关于单片机的原理与应用!

成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///目前正在学习C😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于单片…

深入解析 MySQL 启动方式:`systemctl` 与 `mysqld` 的对比与应用

目录 前言1. 使用 systemctl 启动 MySQL1.1 什么是 systemctl1.2 systemctl 启动 MySQL 的方法1.3 应用场景1.4 优缺点优点缺点 2. 使用 mysqld 命令直接启动 MySQL2.1 什么是 mysqld2.2 mysqld 启动 MySQL 的方法2.3 应用场景2.4 优缺点优点缺点 3. 对比分析结语 前言 MySQL …

简单介绍下 VitePress 中的 vp-doc 和 vp-raw

VitePress 是一个轻量级的静态网站生成器,专为快速构建文档网站而设计。它是基于 Vite 和 Vue 3 构建的,旨在提供快速的开发体验和高效的构建过程。 存在两个需要注意的点:vp-doc 和 vp-raw,它们代表了不同的 CSS 样式类和用途&a…

HTML前端开发-- Flex布局详解及实战

引言 Flex布局,全称为Flexible Box Layout,是一种现代CSS布局技术,它提供了一种更有效的方式来设计响应式布局和复杂页面布局。本文将详细介绍Flex布局的基本概念、属性以及实战应用。 一、基本概念 Flex布局的核心是Flex容器(…

【前端】理解 JavaScript 中 typeof 操作符的独特行为

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯typeof 操作符的基本使用💯为什么 typeof 数组是 "object"?💯为什么 typeof {} 返回 "object"?&…

一键解析RAW文件,GPS定位展示,摄影师专用照片管理软件

作为一款精心打造的数码影像管理工具,bkViewer以其轻量化设计和强大的功能特性脱颖而出。这款软件不仅能够完美处理各类主流图片格式,更整合了专业级的图像信息处理系统,包含完整的EXIF、XMP、IPTC、GPS、ICC等元数据解析能力,并通…

import.meta.glob动态加载图片

import.meta.glob 基于Vite(Vue 3 默认构建工具),用于动态导入模块,特别是当你需要批量导入文件或模块时. const modules import.meta.glob(/path/to/files/**/*.js);注意:import.meta.glob 是针对 源代码&#xff…

[高阶数据结构六]最短路径算法

1.前言 最短路径算法是在图论的基础上讲解的,如果你还不知道图论的相关知识的话,可以阅读下面几篇文章。 [高阶数据结构四] 初始图论_初始图结构-CSDN博客 [高阶数据结构五] 图的遍历和最小生成树_图的遍历和生成树求解-CSDN博客 本章重点:…

开源的跨平台SQL 编辑器Beekeeper Studio

一款开源的跨平台 SQL 编辑器,提供 SQL 语法高亮、自动补全、数据表内容筛选与过滤、连接 Web 数据库、存储历史查询记录等功能。该编辑器支持 SQLite、MySQL、MariaDB、Postgres 等主流数据库,并兼容 Windows、macOS、Linux 等桌面操作系统。 项目地址…

mysql 5.7安装及安装后无法启动问题处理

下载安装包,直接解压 配置环境变量 创建my.ini文件 [mysqld] #端口号 port 3306 #mysql-5.7.27-winx64的路径 basedirD:/soft/mysql57 #mysql-5.7.27-winx64的路径\data datadirD:/soft/mysql57/data #最大连接数 max_connections200 #编码 character-set-server…

spine 动画层 动态权重

前奏.业务背景 这边想实现一个功能,项目中有 一只猫 猫的头会盯着逗猫棒移动。因为素材还没到所以这里使用了 spine 自带的猫头鹰。他的动画 刚好挺有针对性:(关联上篇)https://blog.csdn.net/nicepainkiller/article/details/144…

Spark 内存管理机制

Spark 内存管理 堆内内存和堆外内存 作为一个 JVM 进程,Executor 的内存管理建立在 JVM(最小为六十四分之一,最大为四分之一)的内存管理之上,此外spark还引入了堆外内存(不在JVM中的内存),在spark中是指不…

Vision Transformer(vit)的主干

图解: 代码: class VisionTransformer(nn.Module):def __init__(self, img_size224, patch_size16, in_c3, num_classes1000,embed_dim768, depth12, num_heads12, mlp_ratio4.0, qkv_biasTrue,qk_scaleNone, representation_sizeNone, distilledFalse,…

mongodb配置ssl连接

mongodb5.0.9 centos7.6x86 1、正常启动mongod -f mongodb.conf 2、生成所需要的ssl证书 服务端ssl配置: 2.1生成ca.pem证书 #-x509: 用于生成自签证书,如果不是自签证书则不需要此项 #-days: 证书的有效期限&…

Linux 中的 ls 命令:从使用到源码解析

ls 命令是 Linux 系统中最常用和最基本的命令之一。下面将深入探讨 ls 命令的使用方法、工作原理、源码解析以及实际应用场景。 1. ls 命令的使用** ls 命令用于列出目录内容,显示文件和目录的详细信息。 1.1 基本用法 ls [选项] [文件或目录]例如: …