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

目录

一、介绍

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# 安装Ansibleyum -y install ansible# 查看Ansible版本[root@localhost ~]# ansible --versionansible 2.9.27config file = /etc/ansible/ansible.cfgconfigured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python2.7/site-packages/ansibleexecutable location = /usr/bin/ansiblepython 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.162Last failed login: Mon Dec  2 14:00:04 CST 2024 from 192.168.143.161 on ssh:nottyThere 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.mzph.cn/web/61621.shtml

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

相关文章

视频流媒体服务解决方案之Liveweb视频汇聚平台

一,Liveweb视频汇聚平台简介: LiveWeb是深圳市好游科技有限公司开发的一套综合视频汇聚管理平台,可提供多协议(RTSP/RTMP/GB28181/海康Ehome/大华,海康SDK等)的视频设备接入,支持GB/T28181上下级联&#xf…

物联网——WatchDog(监听器)

看门狗简介 独立看门狗框图 看门狗原理:定时器溢出,产生系统复位信号;若定时‘喂狗’则不产生系统复位信号 定时中断基本结构(对比) IWDG键寄存器 独立看门狗超时时间 WWDG(窗口看门狗) WWDG特性 WWDG超时时间 由于…

LabVIEW将TXT文本转换为CSV格式(多行多列)

在LabVIEW中,将TXT格式的文本文件内容转换为Excel格式(即CSV文件)是一项常见的数据处理任务,适用于将以制表符、空格或其他分隔符分隔的数据格式化为可用于电子表格分析的形式。以下是将TXT文件转换为Excel(CSV&#x…

我的第一个创作纪念日 —— 梦开始的地方

前言 时光荏苒,转眼间,我已经在CSDN这片技术沃土上耕耘了365天 今天,我迎来了自己在CSDN的第1个创作纪念日,这个特殊的日子不仅是对我过去努力的肯定,更是对未来持续创作的激励 机缘 回想起初次接触CSDN,那…

Android:生成Excel表格并保存到本地

提醒 本文实例是使用Kotlin进行开发演示的。 一、技术方案 org.apache.poi:poiorg.apache.poi:poi-ooxml 二、添加依赖 [versions]poi "5.2.3" log4j "2.24.2"[libraries]#https://mvnrepository.com/artifact/org.apache.poi/poi apache-poi { module…

Leecode刷题C语言之N皇后②

执行结果:通过 执行用时和内存消耗如下: struct hashTable {int key;UT_hash_handle hh; };struct hashTable* find(struct hashTable** hashtable, int ikey) {struct hashTable* tmp NULL;HASH_FIND_INT(*hashtable, &ikey, tmp);return tmp; }void insert(…

vue跳转以及传参

1.跳转页面的三种方法 <template><button click"twopage">跳转</button> </template><script setup> import { useRouter } from "vue-router"; const router useRouter(); // 获取 router 实例const twopage () > {r…

EasyMedia播放rtsprtmp视频流(flvhls)

学习链接 MisterZhang/EasyMedia - gitee地址 EasyMedia转码rtsp视频流flv格式&#xff0c;hls格式&#xff0c;H5页面播放flv流视频 EasyMedia播放rtsp视频流&#xff08;vue2、vue3皆可用&#xff09; EasyMedia转码rtsp视频流flv格式&#xff0c;hls格式&#xff0c;H5页…

用 React 编写一个笔记应用程序

这篇文章会教大家用 React 编写一个笔记应用程序。用户可以创建、编辑、和切换 Markdown 笔记。 1. nanoid nanoid 是一个轻量级和安全的唯一字符串ID生成器&#xff0c;常用于JavaScript环境中生成随机、唯一的字符串ID&#xff0c;如数据库主键、会话ID、文件名等场景。 …

【Linux探索学习】第十八弹——进程等待:深入解析操作系统中的进程等待机制

Linux学习笔记&#xff1a;https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 在Linux操作系统中&#xff0c;进程是资源的管理和执行单元&#xff0c;每个进程都有其自己的生命周期。在进程的执行过程中&#xff0c;进程…

大数据技术Kafka详解 ② | Kafka基础与架构介绍

目录 1、kafka的基本介绍 2、kafka的好处 3、分布式发布与订阅系统 4、kafka的主要应用场景 4.1、指标分析 4.2、日志聚合解决方法 4.3、流式处理 5、kafka架构 6、kafka主要组件 6.1、producer(生产者) 6.2、topic(主题) 6.3、partition(分区) 6.4、consumer(消费…

嵌入式Linux之wifi配网脚本分析

嵌入式Linux系统,一般都支持wifi联网,可以通过sh脚本或其它语言代码编程来实现wifi联网。 本篇来介绍一种通过sh脚本来配置wifi的脚本执行原理。 1 sh脚本wifi联网介绍 这里以飞凌开发板中的wifi启动脚本为例来介绍。 在飞凌开发板的串口中,执行如下命令(调用fltest_wif…

如何通过 JWT 来解决登录认证问题

1. 问题引入 在登录功能的实现中 传统思路&#xff1a; 登录页面时把用户名和密码提交给服务器服务器验证用户名和密码&#xff0c;并把检验结果返回给后端如果密码正确&#xff0c;则在服务器端创建 session&#xff0c;通过 cookie 把 session id 返回给浏览器 但是正常情…

【Linux】文件操作的艺术——从基础到精通

&#x1f3ac; 个人主页&#xff1a;谁在夜里看海. &#x1f4d6; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长&#xff0c;行则将至 目录 &#x1f4da;前言&#xff1a;一切皆文件 &#x1f4da;一、C语言的文件接口 &#x1f4d6;1.文件打…

JAVA |日常开发中常见问题归纳讲解

JAVA &#xff5c;日常开发中常见问题归纳讲解 前言一、语法错误相关问题1.1 分号缺失或多余1.2 括号不匹配1.3 变量未定义或重复定义 二、数据类型相关问题2.1 数据类型不匹配2.2 整数溢出和浮点数精度问题 三、面向对象编程相关问题3.1 空指针异常&#xff08;NullPointerExc…

Git常用命令参考手册

Git常用命令参考手册 整理了一篇git常用的命令参考手册&#xff0c;命令顺序按照一个项目从头到尾的常用命令顺序做了排序&#xff0c;后续会继续完善内容示例并补全其他命令使用说明&#xff0c;希望对不熟悉的小伙伴有所帮助。 git config # 配置列表 git config --list #…

翰高4.5.7安装测试手册centos

翰高4.5.7centos版本安装 1 环境准备 产品包&#xff1a;hgdb4.5.7-see-centos7-x86-64-20210804.rpm 环境&#xff1a;10.1.5.172 root/sh88861158 操作系统安装完成后&#xff0c;执行常规操作&#xff1a;修改hosts、关闭防火墙、关闭senliunx 2 安装步骤 2.1 安装前准…

港科夜闻 |香港科大推出 InvestLM生成式人工智能平台,支持金融中小企应用AI技术潜力...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大推出 InvestLM生成式人工智能平台&#xff0c;支持金融中小企应用AI技术潜力。香港科大商学院继去年研究团队成功开发本港首个专为金融界而设、应用于生成式人工智能(生成式AI)的开源大语言模型InvestLM后&#…

【计算机网络】实验6:IPV4地址的构造超网及IP数据报

实验 6&#xff1a;IPV4地址的构造超网及IP数据报 一、 实验目的 加深对IPV4地址的构造超网&#xff08;无分类编制&#xff09;的了解。 加深对IP数据包的发送和转发流程的了解。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、了解IPV4地址的构造超网…

FreeRtos开发之计数信号量

前面介绍过了计数信号量的定义取值只有0与1两种状态的信号量称之为二值信号量 取值大于1的信号量称之为计数信号量 计数信号量的取值也可以为1&#xff0c;但通常大于1&#xff0c;如果取值为1&#xff0c;相当于只有0与1两种状态&#xff0c;用二值信号量即可。 计数信号量应用…