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

这篇具有很好参考价值的文章主要介绍了ansible实训-Day2(ansible基本问题及部署安装)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

        该篇是对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

        安装后效果如下图:      ansible实训-Day2(ansible基本问题及部署安装)

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

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

mkdir ansible

        创建完成后如下图: 

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

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

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

cp /etc/ansible/ansible.cfg .

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

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

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

        拷贝完成后效果如下:

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

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

        使用vim修改,指令为vim inventory

[teacher]
node1
[student]
node2

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

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

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实训-Day2(ansible基本问题及部署安装)

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

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

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

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

四、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’ 上文章来源地址https://www.toymoban.com/news/detail-512665.html

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

到了这里,关于ansible实训-Day2(ansible基本问题及部署安装)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 红帽8.5 ansible 安装和部署 |(简单版)

            Ansible是一款基于OpenSSH开源的自动化运维工具,可以用它来配置系统、部署软件和编排更高级的 IT 任务,并且使用具有极高的安全性,ansible是当前市面上主流的自动化运维工具之一         比较直观的说,当你管理10台服务器安装系统的时候,没有使用ansibl

    2024年02月13日
    浏览(38)
  • 五.实战软件部署 1-3实战章节-前言&MYSQL 5.7版本在centos系统安装&MYSQL 8.0版本在centos系统安装

    目录 五.实战软件部署 1-实战章节-前言 五.实战软件部署 2-MYSQL 5.7版本在centos系统安装 1-配置yum仓库 2-使用yum安装mysql 3-安装完成后,启动mysql并配置开机自启动 4-检查mysql的运行状态 --配置 1-获取mysql的初识密码 2-登录mysql数据库系统 3-修改root用户密码 4-配置root的简单密码

    2024年02月21日
    浏览(49)
  • 分享kubernetes部署:基于Ansible自动安装kubernetes

    基于Ansible自动安装kubernetes 环境准备 我们以如下机器环境为例: 开放端口: 控制平面节点 工作节点 请按如上中规定的开放端口,或关闭防火墙: systemctlstopfirewalld systemctldisablefirewalld 安装常用工具 sudoyuminstall-yyum-utilswgetvimmtrcurltelentlsofgitunzip 下载安装工具 cd/opt/ (部分内容

    2024年02月14日
    浏览(43)
  • ansible自动化IT工具安装部署与使用验证

    目录 一、环境配置 1、关闭防火墙 2、免密登录配置 3、同步时区 二、服务端配置 1、安装软件 2、查看版本  3、实现远程控制huyang3  4、测试  结果验证: systemctl stop firewalld iptables -F setenforce0 【huyang3】ssh-keygen 【huyang3】ssh-copy-id 192.168.1.116 ntpdate huyang1 yum -y install ansible ansi

    2024年02月11日
    浏览(44)
  • 【头歌实训】Spark 完全分布式的安装和部署

    掌握 Standalone 分布式集群搭建。 我们已经掌握了 Spark 单机版安装,那么分布式集群怎么搭建呢? 接下来我们学习 Standalone 分布式集群搭建。 课程视频 如果你需要在本地配置 Spark 完全分布式环境,可以通过查看课程视频来学习。 课程视频《克隆虚拟机与配置网络》 课程视

    2024年02月04日
    浏览(53)
  • OpenStack Yoga安装部署,手把手使用kolla-ansible部署OpenStack

    基本上是按照官网文档快速入门进行安装,不过还有很多地方需要换源。重点在换源这块。如果说你的网关有魔法,那就不用看这篇文章了,直接复制官网命令安装。 部署OpenStack官方提供的Simple Configuration示例配置中的Web Application和Container Optimized两个组件配置清单。 其中包

    2024年02月06日
    浏览(61)
  • ARM day2、day3 汇编

    @ 注释 # 注释(放在行首表示注释一行) /*    */ 注释 #+数字 立即数 : 一种标号(比如main:        loop:) .text        .end+换行 固定格式 ARM指令构成 ARM 指令包含操作码和一些其他的信息,只剩下8 位存放数据 具体来说,一个 ARM 指令通常由以下部分组成: 操作码(Opcode)

    2024年01月19日
    浏览(60)
  • 爬虫 Day2

    一requests入门        (一) 用到的网页:豆瓣电影分类排行榜 - 喜剧片         抓取结果:         (二)反爬 注意到每次下滑刷新榜单只有start参数改变,20递增 二从html里提取数据--数据解析 1.正则re解析--效率高 2.bs4 beautiful soup解析--效率不高 3.xpath解析--简洁 1.正则解

    2024年03月19日
    浏览(78)
  • Qt day2

    实现登录框中,当登录成功时,关闭登录界面,并跳转到其他界面。 widget.cpp mainwindow.h MainWindow.cpp Main.cpp

    2024年02月13日
    浏览(39)
  • DAY2 Git

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 用于控制文件版本的分布式版本控制系统 1.乌龟壳(TortoiseGit) 初始化版本库:新建文件夹 → rightarrow → 文件夹内部右击Git在这里创建版本库 创建一个文件,以txt文件为例,修改后保存退出 文件夹内部

    2024年02月03日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包