ansible实训-Day2(ansible基本问题及部署安装)

news2024/12/24 2:53:40

一、前言

        该篇是对ansible实训第二天内容的归纳总结,主要包括ansible的一些基本问题以及ansible的部署安装。

二、理论部分

Q1:什么是ansible

        Ansible是一种自动化IT工具,它可以帮助管理和自动化IT基础架构。使用Ansible,管理员可以通过编写Playbooks和Roles来描述所需状态,然后Ansible将自动处理配置更改,软件安装以及任何其他任务。 Ansible是免费,开源的,支持多平台,可横向扩展,并且易于学习。它可以用于许多用例,例如配置管理,应用程序部署,云基础架构管理等。

Q2:ansible为什么要做ssh免密

        在Ansible中,SSH免密是一个很常见的需求,因为它可以简化管理任务并提高安全性。当使用Ansible执行任务时,系统需要使用SSH连接到管理主机上的所有受控主机。为了实现自动化,Ansible需要在这些主机之间进行通信,如果每次运行Playbook时都需要输入密码,那么这将会非常耗时和繁琐。因此,Ansible通常会要求管理员在Ansible主机和受控主机之间设置SSH免密连接,以便自动化任务可以在几秒钟内完成,而无需人工干预。除了提高效率外,SSH免密还可以提高安全性,因为它允许加密数据传输,并指定仅允许特定用户和主机之间的连接。这使得Ansible变得更加安全和可靠,同时也更方便和易于管理。

Q3:ansible无需代理

        Ansible不需要代理,它可以直接与受控主机进行通信。这是因为Ansible使用SSH协议进行通信,并通过SSH连接到受控主机来执行命令。这意味着任何机器上的SSH客户端都可以被用来连接到受控主机,而无需安装任何代理或其他额外的软件。

        与其他自动化工具不同,Ansible不需要在受控主机上运行任何代理或客户端程序。这使得Ansible变得更加轻量级,易于部署和管理。此外,因为没有代理,Ansible的安全性也更高,因为没有额外的软件需要维护和更新,也不需要担心代理可能成为攻击目标的问题。因此,Ansible是一种非常灵活和安全的自动化工具,可以帮助管理员轻松管理他们的IT基础设施。

Q4:ansible的优点

        1. 跨平台支持:Ansible是一款跨平台的自动化工具,可以轻松管理不同操作系统、云服务和网络设备等不同的平台。这意味着管理员可以在同一套工具中管理不同平台上的应用程序和主机,而不必为不同平台选择不同的工具。

        2. 人类可读的自动化:Ansible使用YAML格式的语法,可以轻松理解、维护和修改Ansible Playbook和清单文件。管理员无需编写复杂的脚本,可以使用可读性强的文本语言描述任务和操作。这使得整个运维过程更加透明和容易理解。

        3. 完美描述应用:Ansible提供了大量的模块,可以轻松部署、配置和管理应用程序。这些模块对应于如Docker、Kubernetes等应用模式,可以大幅减少部署时间和规范化部署过程。Ansible Playbook能够以同一种方式描述应用程序的部署和配置,无论应用部署在哪种环境中都是一样的。

        4. 支持动态清单:Ansible清单允许管理员添加、删除、变更主机和组信息。通过支持动态清单,Ansible可以实现灵活的自动化工作,例如动态的扩展和缩小集群容量。动态清单的支持使得Ansible可以应对大规模、复杂的情况下的自动化工作。

        总之,Ansible的跨平台支持、人类可读的自动化、完美描述应用和支持动态清单等特性使其成为一款优秀的

Q5:ansible的方式

        Ansible是一款开源自动化工具,提供了多种方式来管理和配置主机和应用程序。以下是Ansible的主要方式:

        1. 命令行方式:这是最简单的一种方式,使用ansible命令从控制节点管理远程主机。可以使用ansible命令执行单个任务或更复杂的操作,如Playbook等。

        2. Playbook方式:Playbook是一种基于YAML的脚本语言,可以用于定义多项任务和操作顺序。和命令行方式不同,它允许管理员在一个文件中定义多项任务,可以使用一种可读性较强的方式描述任务流程。

        3. Ansible Tower:Ansible Tower是一个具有GUI的企业级版本,可以在Web界面上执行Playbook,并提供一些额外的功能,如任务计划、队列等。可以使用它对远程主机进行管理和任务调度。

        4. API方式:Ansible还提供API,可用于编写脚本或插件执行自动化、无需手动调整。API方式可用于集成其他工具、插件和第三方服务,执行更灵活的操作和任务。

        总之,Ansible提供了多种方式来管理和配置主机和应用程序,使管理员能够根据应用场景选择最适合自己的方法。这也是Ansible在自动化管理领域备受青睐的原因之一。

Q6:ansible的安装

        在controller安装ansible,同时要在所有的受管理节点上安装python;

Q7:ansible的各文件作用

        ansible安装完成后默认配置路径在/etc/ansible这个目录下

文件名文件作用
ansible.cfg配置文件
hosts清单文件

Q8:什么是ansible清单

        Ansible清单(Inventory)是一个文本文件,它定义了Ansible需要执行操作的目标主机和主机组。清单中包含的信息包括主机名或IP地址、主机组、变量以及其他有关主机的信息,如SSH端口、用户名等。在Ansible中,清单是一个非常重要的概念,它定义了所有需要执行操作的主机。

        Ansible清单不仅可以用于指定单个主机,还可以用于定义主机组。通过定义主机组,可以让Ansible将一组主机作为一个整体来处理。这样,可以在一次操作中同时对这些主机执行命令,或者将它们作为一个单独的角色来定义和管理。

        清单还可以有多个组,并且可以支持嵌套和动态清单。动态清单是一个由脚本生成的清单,可以根据需要自动添加和删除主机和组。这使得清单能够适应不断变化的环境,从而使自动化管理变得更加容易。

        总而言之,Ansible清单是指定需要管理的主机和主机组的一种方式,它是Ansible中进行自动化管理的重要组成部分。

Q9:常见的ansible.cfg文件的配置指令

        ansible.cfg文件不必需要从/etc下复制过来,同样可以使用创建文件手写的方式进行,常见的ansible的ansible.cfg中配置指令如下:

指令作用
inventory指定Ansible要使用的主机清单文件的位置
remote_use指定在远程系统上执行Ansible任务时要使用的用户名
private_key_file指定连接到远程主机时要使用的私钥文件
host_key_checking指定Ansible是否应该检查主机密钥,以确保连接的主机是预期的主机
ask_pass如果设置为True,则在执行Ansible任务时,Ansible会提示您输入远程系统的密码
become如果设置为True,则Ansible会尝试使用sudo身份执行命令
become_method指定Ansible在远程主机上使用的身份转换方法。默认是sudo
become_user指定在执行命令期间要使用的远程用户身份。默认是root
become_ask_pass如果设置为True,则在切换到sudo用户时,Ansible会提示您输入sudo用户的密码
sudo_user指定在主机上以sudo身份执行任务时要使用的用户

三、ansible的部署

        注意,以下ansible部署中,安装、修改配置文件等所有操作均在普通用户下进行!!!

        注意,以下ansible部署中,安装、修改配置文件等所有操作均在普通用户下进行!!!

        注意,以下ansible部署中,安装、修改配置文件等所有操作均在普通用户下进行!!!

Step1:ansible的安装

        在controller下使用如下命令进行ansible的安装:

sudo yum install -y epel-release			
sudo yum install -y ansible

        安装后效果如下图:      

 Step2:在controller的用户目录下,创建文件夹ansible

        使用如下命令进行文件夹的安装:

mkdir ansible

        创建完成后如下图: 

 Step3:将/etc/ansible/ansible.cfg文件拷贝到刚刚创建的文件夹

        该操作在创建的文件夹下进行,使用如下命令进行安装:

cp /etc/ansible/ansible.cfg .

        注意,一定不要忘记最后的“ .”,这表明将前面的文件拷贝到当前目录下

        注意,一定不要忘记最后的“ .”,这表明将前面的文件拷贝到当前目录下

        注意,一定不要忘记最后的“ .”,这表明将前面的文件拷贝到当前目录下

        拷贝完成后效果如下:

 Step4:在该ansible文件夹下创建inventory,并写入以下内容(使用vim即可):

        使用vim修改,指令为vim inventory

[teacher]
node1
[student]
node2

        创建并修改完成后的文件如下:

Step5:修改ansible.cfg配置文件(使用vim即可)

        同样使用vim修改即可,指令为vim ansible.cfg

        具体修改需求如下:

inventory = /home/user/ansible/inventory 并把注释取消,注意,home后的文件夹应为进行ssh登录的用户文件夹

ask pass = False 并把注释取消

host key_checking = False 并把注释取消

remote_user = username     注意,“=”修改为实际进行ssh免密登录的用户名

[privilege_escalation] 下的注释全部取消

        请注意实际的False和True,部分与原配置文件不同,需要修改后取消注释;部分相同,只需要取消注释即可。

        该五行配置文件实际修改后在文件中显示如下:

四、ansible的常见临时命令

        Ansible临时命令是在主控节点上执行的单个Ansible模块(例如复制文件、执行命令等)的命令行。 使用这些临时命令,可以快速执行常见操作,而不必编写Playbooks。 临时命令可以针对某些或所有主机执行,可以在远程主机上执行某些操作,也可以用来具体测试某些任务。

① ansible运行临时命令的语法为:

ansible host-pattern -m module [-a 'module arguments'] [-i inventory]

        其各个元素的含义如下:

  • ansible: 表示要运行Ansible命令。
  • host-pattern: 是目标主机的模式,可以是一个主机名、一个IP地址、一个主机组,或是一个使用通配符的主机模式。
  • -m module: 指定要运行的Ansible模块名称。
  • -a 'module arguments': 指定要传递给模块的参数。
  • -i inventory: 指定Ansible要使用的inventory文件的路径。

② ansible的常见临时命令如下:

命令含义
ansible webserver1 -m user -a 'name=testuser password=aaa  state=present'

添加普通用户 ‘testuser’ 到主机 ‘webserver1’ 上:

ansible webserver1 -m user -a 'name=testuser state=absent remove=yes'删除普通用户 ‘testuser’ 从主机 ‘webserver1’ 上
ansible webserver1 -m group -a 'name=testgroup state=present'

添加用户组 ‘testgroup’ 到主机 ‘webserver1’ 上:

ansible webserver1 -m group -a 'name=testgroup state=absent'

删除用户组 ‘testgroup’ 从主机 ‘webserver1’ 上:

ansible webserver1 -m apt -a 'name=nginx state=present'安装包 ‘nginx’ 到主机 ‘webserver1’ 上
ansible webserver1 -m apt -a 'name=nginx state=absent'

卸载包 ‘nginx’ 从主机 ‘webserver1’ 上:

ansible webserver1 -m service -a 'name=nginx state=started'检查主机 ‘webserver1’ 上的服务 ‘nginx’ 是否已启动
ansible webserver1 -m service -a 'name=nginx state=stopped'

停止主机 ‘webserver1’ 上的服务 ‘nginx’ 

ansible webserver1 -m copy -a 'src=/src/myfile.txt dest=/tmp'拷贝本地文件 ‘/src/myfile.txt’ 到远程主机 ‘webserver1’ 上的目录 ‘/tmp’
ansible webserver1 -m command -a 'uname -a'

执行命令 ‘uname -a’ 在主机 ‘webserver1’ 上

asnible all -m setup列出所有 Ansible 变量

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

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

相关文章

神仙级编程神器,吹爆!

Visual Studio 编程领域公认的“最强IDE”,Visual Studio是目前最流行的Windows平台应用程序的集成开发环境,提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序,开发新的程序。 …

界面控件DevExpress ASP.NET中文 - 如何自定义编辑表单运行时布局?

在DevExpress ASP.NET控件v19.2版本中就针对ASP. NET WebForms和MVC平台的ASP. NET GridView和CardView控件添加了一个主要增强功能。 DevExpress ASP.NET v23.1正式版下载(Q技术交流:523159565) 当您使用预定义的或 自定义的编辑表单时,经…

网易兑换礼包码分析

🍋前言 由于C站版权太多,所有的爬虫相关均为记录,不做深入! 接到了一个项目大概是电商老板想弄一个自动化工具,方便自己处理买家买的兑换码,一个一个的兑换有点累人,代码写到一半才发现由于自己的原因分析错了,刚刚开始我以为他的验证码是在html上的,就像这样 <…

SpringBoot02:运行原理初探

目录 一、运行原理探究 1、pom.xml文件 1.1、父依赖 1.2、启动器Spring-boot-starter 2、主启动类 2.1、默认的主启动类&#xff1a; 2.2、分析主启动类注解&#xff1a;SpringBootApplication 1、Target(ElementType.TYPE) 2、Retention(RetentionPolicy.RUNTIME) 3…

【C语言初阶(3)】循环语句:for 循环

文章目录 1. 语法结构2. for 语句的执行流程3. for 循环中的 break 和 continue3.1 for 循环中的 break3.2 for 循环中的 continue 4. for 循环语句的循环控制变量5. for 循环的变种5.1 for( ; ; )5.2. for 循环的嵌套5.3 使用多个变量控制循环 6. for 循环笔试题 1. 语法结构 …

【读书笔记】《数据结构C语言版》

目录 第一章 线性表 第二章 栈和队列 第三章 字符串 第四章 广义表 第五章 树 第六章 图 第七章 查找 第八章 内排序 第一章 线性表 一个线性表是n个数据元素的优先序列线性表可分为顺序存储结构&#xff08;数组&#xff09;和链式存储结构&#xff08;链表&#xff…

安科瑞WHD智能型温湿度控制器

安科瑞WHD智能型温湿度控制器 安科瑞 崔丽洁

前端Vue自定义发送短信验证码弹框popup 实现剩余秒数计数 重发短信验证码

前端Vue自定义发送短信验证码弹框popup 实现剩余秒数计数 重发短信验证码&#xff0c; 请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13207 效果图如下&#xff1a; 实现代码如下: # cc-codeDialog #### 使用方法 使用方法 <!-- show:是…

【uniapp】uniapp反向代理解决跨域问题

背景介绍 前段时间&#xff0c;在拿uniapp开发的时候&#xff0c;出现了跨域问题&#xff0c;按理说跨域应该由后端解决&#xff0c;但既然咱前端可以上&#xff0c;我想就上了&#xff08;顺手装个13&#xff09; 什么是跨域 出于浏览器的同源策略&#xff0c;在请求时&…

React 简单实现 v-if和v-show的元素控制效果

react中并没有直接的想模板引擎那样的命令可以直接控制元素展示 但是 我们了解了 v-if和v-show之后 还是大有文章的 我们在 项目的 src下创建 components 文件夹 创建dom.jsx 编写代码如下 import React from "react" export default class dom extends React.Comp…

Ubuntu查看显卡信息

查看显卡信息&#xff0c;终端输入 lspci | grep VGA 输出结果 0000:65:00.0 VGA compatible controller: NVIDIA Corporation Device 24b0 (rev a1) 发现是十六进制码&#xff0c;进入网址PCI Devices查询&#xff0c;输入 24b0 并点击 Jump&#xff0c;得到结果 显卡型号…

Inline Assembly 内联汇编总结

The language used for inline assembly in Solidity is called Yul. 在solidity中&#xff0c;用于写内联汇编的语言是Yul. Inline assembly is a way to access the Ethereum Virtual Machine at a low level. This bypasses several important safety features and checks …

中国信通院联合腾讯安全发布《数据安全治理与实践白皮书》

6月26日&#xff0c;由中国通信标准化协会和中国信息通信研究院联合主办的“2023大数据产业发展大会”在北京启幕&#xff0c;大会发布了多项中国信息通信研究院及相关机构在数智化领域最新研究和实践成果。 腾讯云安全总经理李滨出席了数据安全高质量发展论坛&#xff0c;分享…

【探测器】opencv显示探测器的raw图像

【探测器】opencv显示探测器的raw图像 1、背景2、代码3、下载 1、背景 对于探测器&#xff08;相对于可见光成像的相机&#xff0c;这里的探测器指的是对X光成像的相机&#xff09;。 RAW文件几乎是未经过处理而直接从CCD或CMOS上得到的信息。 RAW格式是无损格式&#xff0c;相…

剑指 Offer ! ! 34. 二叉树中和为某一值的路径

剑指 Offer 34. 二叉树中和为某一值的路径 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 输入&#xff1a;root [5,4,8,11,null,13,4,7,2,null,null,5,1],…

京微齐力:基于H7的曼彻斯特(编码解码串口)系统

目录 前言一、关于曼彻斯特编码二、任务&实验效果三、硬件选择1、H7P20N0L176-M2H12、XC7A35TFGG484-2 四、程序设计1、顶层模块2、编码&发送模块3、解码&接收模块4、HC595驱动模块5、段选&位选模块 五、debugware 回环实验六、兼容设计七、工程获取 前言 四月…

Doris架构包含哪些技术?为什么进行技术整合?

Doris主要整合了Google Mesa(数据模型)&#xff0c;Apache Impala(MPP Query Engine)和Apache ORCFile (存储格式&#xff0c;编码和压缩)的技术。 为什么要将这三种技术整合? Mesa可以满足我们许多存储需求的需求&#xff0c;但是Mesa本身不提供SQL查询引擎。 Impala是一个…

在做debrief评论自动往上滚动和对讲自动滚动时遇到的问题

描述&#xff1a;在获取滚动高度并且给dom元素设置scrollTo属性后&#xff0c;对于第一个元素的滚动是有问题的&#xff0c;不管在top给补充高度都是无效的。 原因&#xff1a;第一个需要滚动的元素,没有进行正常滚动&#xff1a;因为vue还没有计算出来第一个元素的完整高度&a…

电子器件系列43:IGBT技术参数

以IXBH16N170为例 IGBT/三极管/MOS管的区别&#xff1f; IGBT/三极管/MOS管的区别_哔哩哔哩_bilibili 导通电阻&#xff1f; 如果器件导通&#xff0c;开始通过电流&#xff08;比如100A&#xff09;&#xff0c;那么其对应的电阻就是导通电阻&#xff0c;如果导通电阻小&am…