ansible的基本安装

目录

一、简介

1.ansible自动化运维人工运维时代

2.自动化运维时代

3.ansible介绍

4.ansible特点

二、ansible实践

1.环境

2.ansible管理安装

3.ansible被管理安装

4.管理方式

5.添加被管理机器的ip

6.ssh密码认证方式管理

三、配置免密登录

1.ansible自带的密码认证参数

2.ssh密钥方式批量管理


一、简介

1.ansible自动化运维人工运维时代

运维人员早期需要维护数量众多的机器,因此需要执行反复,重复的劳动力,很多机器需要同时部署相同的服务或是执行相同的命令,得反复的登录不同的机器,执行重复的动作。

比如说你要在backup服务器配置rsync服务,进行数据同步的操作,那么客户端都得单独的安装一下rsync命令工具才能正确使用你可能一台台机器去登录,安装rsync之后,再推出,登录下一个机器,可以使用xshel等工具,快捷的创建ssh登录,但是还是属于人]运维,效率比较低

2.自动化运维时代

早期运维人员会结合ssh免密登录以及shell脚本来完成自动化的部署操作系统管理员面临的问题主要是,配置管理系统,远程执行命令,批量安装服务,启停服务等等

后来也就诞生了众多的开源软件,自动化运维软件

  • fabric
  • puppet
  • saltstack
  • chef
  • Ansible

3.ansible介绍

ansible是一个同时管理多个远程主机的软件,必须是任意可以通过ssh登录的机器,因此ansible可以管理的机器如

  • 远程虚拟机
  • 物理机
  • 也可以直接管理本机机器

ansible通过shh协议实现了,管理节点(老板,安装了ansible服务的机器),被管理节点(员工,被管理的机器节点)的通信。只能是通过ssh协议登录的主机,就可以完成ansible自动化部署操作。

ansible通过shh协议实现了,管理节点(老板,安装了ansible服务的机器),被管理节点(员工,被管理的机器节点)的通信。只能是通过ssh协议登录的主机,就可以完成ansible自动化部署操作

  • 批量文件分发
  • 批量数据复制
  • 批量数据修改,删除
  • 批量自动化安装软件服务
  • 批量服务启停
  • 脚本化,自动批量服务部署

4.ansible特点

ansible的编排引擎可以出色的完成各种任务配置管理,ansible在流程控制,资源部署等方便很强大,并且ansible无须安装客户端软件管理简洁,使用yaml配置文件语法,功能强大,便于维护。

ansible是基于python语言开发的,主要由python的两个ssh处理模块,paramiko,以及PyYAML模块。

  • 安装部署简单
  • 管理主机便捷,支持多台主机并行管理
  • 无须安装被管理节点的客户端(no agent),且无须占用客户端的其他端口,仅仅使用ssh服务即可
  • 不仅仅支持python,还支持其他语言的二次开发
  • 不用root用户也可执行,降低系统权限

二、ansible实践

1.环境

准备三个虚拟机

一台管理机器

两台被管理机器

三台设备要配置好ssh

2.ansible管理安装

yum install epel-release -y
yum install ansible libselinux-python -y

看下ansible的各种命令

rpm -ql ansible | grep -E '^/etc|^/usr/bin'

3.ansible被管理安装

yum install ansible libselinux-python -y

4.管理方式

ansible批量管理主机的方式主要两种

  • 传统的输入ssh密码验证
  • 密钥管理

备份一下hosts文件

cp /etc/ansible/hosts{,.ori} 
ls /etc/ansible/

5.添加被管理机器的ip

vim /etc/ansible/hosts

添加被管理ip

[manage]
192.168.0.107
192.168.0.103

6.ssh密码认证方式管理

ansible是直接利用linux本地的ssh服务,以及一些远程的ssh操作,一般情况下客户端的sh服务默认都是开启的,无须额外管理

  • -m MODULE_NAME,--module-name=MODULE_NAME

#module name to execute (default=command)

#指定执行使用的模块,默认使用 command 模块

  • -a MODULE_ARGS,--args=MODULE_ARGS

#module arguments

#指定执行模块使用的参数

  • -k 询问密码验证

在管理机器上,告诉其他被管理的机器,你要执行什么命令,以及用什么用户去执行

ansible manage -m command -a 'hostname' -k -u root

输出网卡信息

ansible manage -m command -a 'ip a' -k -u root

三、配置免密登录

每次执行ansible命令的时候,都需要输入ssh的认证密码,也就是rot的密码,如果不同的主机密码不一致,那你还得输入多次才行因此我们可以配置如下的快捷登录方式

1.ansible自带的密码认证参数

可以在 /etc/ansible/hosts文件中,定义好密码即可,即可实现快速的认证,远程管理主机

参数

  • ansible_host 主机地址
  • ansible_port 端口,默认是22端口
  • ansible_user 认证的用户
  • ansible ssh_pass 用户认证的密码
vim /etc/ansible/hosts

填入

[manage]
192.168.0.107 ansible_user=root ansible_ssh_pass=123456
192.168.0.103 ansible_user=root ansible_ssh_pass=123456

验证

ansible manage -m command -a 'hostname'

2.ssh密钥方式批量管理

ssh免密登录形式

原理图

105(ansible管理机的配置)

生成私钥

 ssh-keygen -f ~/.ssh/id_rsa -P "" >  /dev/null 2>&1

编写公钥分发脚本
 

cd /myshell/vim ssh.sh
#!/bin/bash
rm -rf ~/.ssh/id_rsa*
ssh-keygen -f ~/.ssh/id_rsa -P ""> /dev/null 2>&1
SSH_Pass=123456
Key_Path=~/.ssh/id_rsa.pubfor ip in 103 107
dosshpass -p$SSH_Pass ssh-copy-id -i $Key_Path "-o StrictHostKeyChecking=no" 192.168.0.$ip
done# 非交互式分发公销命令需要用 sshpass指定SSH密码,通过-o StrictHostlking=no 跳过 SSH连接确认信息

测试一下

成功

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

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

相关文章

【grep】从html表格中快速定位某个数据

文章目录 1 背景2 参考知识2.1 grep2.2 HTML基础语言标签 3 解决方案 1 背景 在html中是一堆表格、图片、文字什么的,想从表格中提取关键词为“GJC”后对应的数字,怎么办呢? 逐个打开html文件,“ctrlF”搜一下,然后复…

vue项目中element-ui对话框el-dialog嵌套显示时多了一个遮罩层解决办法

在对话框里又嵌套了一个对话框展示时&#xff0c;多了一个遮罩层&#xff0c;如下图所示&#xff1a; 解决办法如下&#xff1a; 给对话框添加append-to-body 属性&#xff0c;参考以下代码&#xff1a; <el-dialog :visible.sync"dialogVisible" append-to-body …

所有产品都值得用AI再做一遍,让AGI与品牌营销双向奔赴

微软 CEO Satya Nadella 曾经说过&#xff1a;“所有的产品都值得用 AI 重做一遍。” AI 大模型的出现&#xff0c;开启了一个全新的智能化时代&#xff0c;重新定义了人机交互。这让生成式 AI 技术变得「触手可得」&#xff0c;也让各行业看到 AGI 驱动商业增长的更大可能性。…

ui设计师简历自我评价的范文(合集)

ui设计师简历自我评价的范文篇一 本人毕业于艺术设计专业&#xff0c;具有较高的艺术素养&#xff0c;平时注重设计理论知识的积累&#xff0c;并将理论应用到作品中。了解当下设计的流行趋势&#xff0c;设计注重细节、重视用户体验&#xff0c;对色彩搭配有着浓厚的兴趣&…

13、深度学习之神经网络

深度学习是机器学习中重要的一个学科分支,它的特点就在于需要构建多层“深度”的神经网络。 人们在探索人工智能初期,就曾设想构建一个用数学方式来表达的模型,它可以模拟人的大脑,大脑我们都知道,有很多神经元,每个神经元之间通过突触链接。 神经网络的设计就是模仿了这…

11.6AOP

一.AOP是什么 是面向切面编程,是对某一类事情的集中处理. 二.解决的问题 三.AOP的组成 四.实现步骤 1.添加依赖(版本要对应): maven仓库链接 2.添加两个注解 3.定义切点 4.通知 5.环绕通知 五.excution表达式 六.AOP原理 1.建立在动态代理的基础上,对方法级别的拦截. 2. …

【机器学习】贝叶斯分类器

贝叶斯分类器是一种概率模型&#xff0c;利用贝叶斯公式来解决分类问题。假设样本的特征向量服从一定的概率分布&#xff0c;我们就可以计算出该特征向量属于各个类的条件概率。分类结果是条件概率最大的分类结果。如果假设特征向量的每个分量彼此独立&#xff0c;则它是朴素贝…

【OpenCV实现图像:OpenCV利用Python创作热力图】

文章目录 概要读取图像图像灰度化**像素化效果**小结 概要 热力图是一种强大的统计图表&#xff0c;通过对数据进行色彩映射&#xff0c;直观展示了数据分布的热度和密度。在绘制热力图时&#xff0c;关键在于指定颜色映射的规则&#xff0c;这决定了图中不同数值的呈现方式。…

渗透实例------2个星期艰难的渗透纪实

2个星期艰难的渗透纪实 kyo327 入侵原因,需删一帖子,目标用www.111.com代替,前期通过初期的网站文件暴力猜解,扫描到robots.txt这个文件,有以下目录。如图1: 图1 再通过对这些文件的访问,从3gadm.php文件的标题栏得到该网站采用的是diy-page8.3的cms,自然可以先用搜索…

Android JNI 异常定位(2)—— addr2line

Android native报错有时候只有一句 signal 11 (SIGSEGV)&#xff0c;这种情况仅通过log是很难定位到问题的。不过Android 在/data/tombstones目录保存了错误的堆栈信息&#xff0c;为定位bug提供了路径。不过一般这里的log都无法像java一样直接定位的出错的行数。如下图&#x…

2023做车载测试真的可以远离内耗!转行车载月入20K!

2023年&#xff0c;车载测试正处于一个发展阶段&#xff0c;随着新能源汽车的蓬勃发展&#xff0c;电气化、智能化逐渐成为发展趋势。在汽车开发过程中&#xff0c;测试是非常重要的一个环节。现在软件越来越多地被应用到汽车上&#xff0c;对软件测试的需求也越来越多、越来越…

数据库数据恢复—MongoDB数据库文件拷贝出现错误的数据恢复案例

MongoDB数据库数据恢复环境&#xff1a; 一台Windows Server操作系统的虚拟机&#xff0c;虚拟机上部署有MongoDB数据库。 MongoDB数据库故障&检测&#xff1a; 在未关闭MongoDB服务的情况下&#xff0c;工作人员将MongoDB数据库文件拷贝到其他分区&#xff0c;然后将原数…

力扣:175. 组合两个表(Python3)

题目&#xff1a; 表: Person ---------------------- | 列名 | 类型 | ---------------------- | PersonId | int | | FirstName | varchar | | LastName | varchar | ---------------------- personId 是该表的主键&#xff08;具有唯一值的列&#…

js进阶笔记之原型,原型链

目录 1、原型对象 constructor 属性 对象原型 2、原型链 3、instanceof 4、原型继承 1、原型对象 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候再一个一个的依次调用就可以了。 面向对象是把事务分解成为…

音频采集的相关基础知识

本文引注: https://zhuanlan.zhihu.com/p/652629744 1.麦克风的种类 (1)模拟麦克风 ECM麦克风&#xff1a;驻极体电容麦克风(ECM)&#xff0c;典型的汽车ECM麦克风是一种将ECM单元与小型放大器电路整合在单个外壳中的装置。放大器提供一个模拟信号&#xff0c;其电压电平允许…

JavaScript 如何拷贝对像(Object)或者数组(Array)

目录 JavaScript数据拷贝类型 浅拷贝 深拷贝 举例&#xff1a; 浅拷贝 数组 对象 深拷贝 lodash cloneDeep使用示例 自定义深拷贝方法示例 JSON.parse() 和 JSON.stringify()使用示例 JavaScript数据拷贝类型 浅拷贝 数组可以使用Array.prototype.slice()方法 …

python实现鼠标实时坐标监测

python实现鼠标实时坐标监测 一、说明 使用了以下技术和库&#xff1a; tkinter&#xff1a;用于创建GUI界面。pyperclip&#xff1a;用于复制文本到剪贴板。pynput.mouse&#xff1a;用于监听鼠标事件&#xff0c;包括移动和点击。threading&#xff1a;用于创建多线程&…

PWM实验

PWM相关概念 PWM:脉冲宽度调制定时器 脉冲&#xff1a;方波信号&#xff0c;高低电平变化产生方波 周期&#xff1a;高低电平变化所需要时间 频率&#xff1a;1s钟可以产生方波个数 占空比&#xff1a;在一个方波内&#xff0c;高电平占用的百分比 宽度调制&#xff1a;占…

AI:86-基于深度学习的街景图像地理位置识别

🚀 本文选自专栏:人工智能领域200例教程专栏 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的代码,详细讲解供大家学习,希望可以帮到大家。欢迎订阅支持,正在不断更新中,…

Leetcode:622. 设计循环队列 题解【具详细】

目录 一、题目&#xff1a; 二、思路详解&#xff1a; 1.循环队列的存储定义 2.循环队列的创建 3.循环队列的判空与判断情况 (1) 循环队列的判空: (2) 循环队列的判满 4.循环队列元素的插入 5.循环队列元素的删除 6.获取队头元素 7.获取队尾元素 8.循环队列释放 三…