利用Ansible实现批量服务器自动化管理详解

 更新时间:2024年01月19日 09:08:53   作者:二进制空间安全  
Ansible是基于Python开发的,采用YAML语言编写自动化脚本playbook, 可以在Linux、Unix等系统上运行, 本文主要介绍了如何利用Ansible实现批量服务器自动化管理,需要的可以参考下

1.Ansible介绍

Ansible是一款开源的自动化运维工具, 在2012年由Michael DeHaan创建, 现在由Red Hat维护。Ansible是基于Python开发的,采用YAML语言编写自动化脚本playbook, 可以在Linux、Unix等系统上运行, 通过SSH协议管理节点, 无需在被管理节点安装agent。Ansible以其简单、高效、无agent成为广泛使用的自动化工具, 可以应用于配置管理、应用部署、任务调度等。

Ansible能够自动管理远程系统和控制它们的期望状态, 一个基础Ansible环境主要包含三大组件:

  • 控制节点 - 安装有Ansible的系统。我们可以在控制节点上运行Ansible命令,如ansibleansible-inventory
  • 管理节点 - Ansible控制的远程系统或主机。
  • 清单 - 在逻辑上组织起来的受控节点列表。在控制节点上创建清单,用来描述Ansible管理的主机部署。

架构如下:

2.Ansible安装和配置

在我实验的环境中, 我分配了四台虚拟机,IP地址分别为:192.168.201.202 -205, 其中192.168.201.202是主控端, 需要在该机器上安装Ansible; 另外从203-205的三台机器为受控端, 接收从202发来的指令。这里我安装的Linux系统为ubuntu 22.04.3 LTS版本,直接输入以下命令安装:

# apt install ansible

安装完成后输入命令: ansible --version查看版本号,如图:

接下来需要配置管理hosts, 在目标目录新建一个名为hosts的清单文件:/etc/ansible/hosts, 注意:如果/etc/下没有ansible目录,需要手动新建一个。

编辑hosts文件,输入以下格式内容,如图:

在标签名称下的三个IP地址是我的另外三台虚拟机,它们将接收ansible的统一管理。保存退出。

在命令行输入命令:

# ansible all --list-hosts

该命令将验证清单中的主机, 返回信息如下:

在控制节点192.168.201.202中, 我们需要生成一个SSH的密钥对,输入以下命令:

# ssh-keygen -t rsa

中间提示一律按回车键即可, 结束后将在~/.ssh目录下生成id_rsa和id_rsa.pub两个密钥文件,我们要将公钥id_rsa.pub文件发送到三台虚拟机上(192.168.201.203-205), 分别输入以下命令:

# ssh-copy-id root@192.168.201.203
# ssh-copy-id root@192.168.201.204
# ssh-copy-id root@192.168.201.205

执行结果如下:

接下来我们输入以下命令进行免密码登录验证:

此时, 我们可以输入以下命令进行批量主机管理测试:

# ansible all -m ping

返回结果如下:

可以看到, 三台受管理的主机已经全部Ping通。

3.创建清单

通过清单文件, Ansible可以通过单个命令管理大量主机, 且可以通过减少需要指定的命令行选项数量来帮助我们更有效地使用Ansible,例如:清单通常包含SSH用户, 因此在运行Ansible命令时可以不需要包含-u参数来指定用户名。

在任意目录创建一个名为inventory.yaml的文件, 这里我把清单文件建在目录: /home/inventory.yaml, 内容如下:

下面输入命令进行验证:

# ansible-inventory -i inventory.yaml --list

注意一下 -i 参数后面的yaml文件路径, 我这里是cd到yaml文件的当前目录了, 所以直接跟的文件名, 在实际应用过程中需要根据情况进行全路径和相对路径的选择。

该命令执行返回结果如下:

接下来对清单中的受管节点执行Ping操作, 执行命令:

# ansible virtualmachines -m ping -i inventory.yaml

返回结果如下:

4.创建剧本(playbook)

剧本是Ansible用来部署和配置受管节点的自动化蓝图,使用YAML格式编写。

下面先解释一下剧本的基本元素:

  • Play - 按顺序排列的任务列表,与inventory中受管节点对应映射。
  • 任务(task) - 定义Ansible要执行的一个或多个模块操作的列表。
  • 模块:Ansible在受管节点上运行的代码单元或二进制文件。Ansible的模块按集合组织,每个模块有一个完全限定的集合名称(Fully Qualified Collection Name, FQCN)。

在上面的操作中,我们使用了ansible命令来ping清单中的主机。现在创建一个playbook,它不仅可以ping主机,还可以打印“Hello world”消息。

继续在/home目录下创建一个名为playbook.yaml的文件, 输入以下内容:

在该配置文件中, 我们定义了一个剧本的名称、定义了hosts名称和具体的任务(tasks), 其中任务项这里包含两个: Ping主机和打印消息。

接下来我们看看剧本效果如何, 输入以下命令:

# ansible-playbook -i inventory.yaml playbook.yaml

返回结果如下:

从结果来看,一切都OK, 成功执行了我们的剧本并对三个目标主机进行了Ping

以上就是利用Ansible实现批量服务器自动化管理详解的详细内容,更多关于Ansible服务器自动化管理的资料请关注脚本之家其它相关文章!

相关文章

  • Centos中VNC远程桌面程序的安装与使用教程

    Centos中VNC远程桌面程序的安装与使用教程

    这篇文章主要介绍了Centos中VNC远程桌面程序的安装与使用的方法,较为详细的分析了CentOS的VNC远程桌面程序安装、配置、连接、启动等命令与相关操作技巧,需要的朋友可以参考下
    2016-07-07
  • 伪静态URL中文乱码问题解决方法

    伪静态URL中文乱码问题解决方法

    ISAPI_Rewrite伪静态中文URL乱码的解决方案 细心有朋友会发现,在众多知名程序,比如ShopEx网店、Discuz论坛等系统的伪静态规则都存在中文编码问题
    2014-07-07
  • rysnc命令过滤规则入门教程

    rysnc命令过滤规则入门教程

    本文针对 rsync 过滤规则主要讲解了4大块内容:配置方法、内部运行方式、规则语法和使用技巧举例,其内容都是来自官方手册和实操测试,若有谬误,欢迎大家批评指正,也欢迎大家在评论区沟通交流 rsync 的各种经验和技巧
    2024-05-05
  • htaccess 防盗链,防止目录浏览等10大技巧

    htaccess 防盗链,防止目录浏览等10大技巧

    htaccess 防盗链,防止目录浏览等10大技巧,使用apache服务器的朋友可以参考下
    2012-02-02
  • CentOS6.9下svn快速安装配置方法

    CentOS6.9下svn快速安装配置方法

    这篇文章主要为大家详细介绍了CentOS6.9下svn快速安装配置方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 快速分辨清楚 IaaS、PaaS、BaaS和SaaS

    快速分辨清楚 IaaS、PaaS、BaaS和SaaS

    上到BAT的百度云、腾讯云、阿里云,再到各大手机厂商的华为云、OPPO云、联想云,甚至电商里的京东云、苏宁云等等。一时间,仿佛谁家不出一个云服务就不好意思说自己是互联网企业
    2017-06-06
  • 护卫神 主机管理系统使用说明篇 系统设置

    护卫神 主机管理系统使用说明篇 系统设置

    护卫神·主机管理系统支持在Windows Server 2003/2008/2012,含32位和64位,直接开设配置WEB站、FTP站,以及SQL Server和MySQL,是您开设和管理虚拟主机的绝好帮手,但是对于新用户可能在使用上有一些困难,因此请仔细阅读如下说明文档
    2015-01-01
  • Elasticsearch6.2服务器升配后的bug(避坑指南)

    Elasticsearch6.2服务器升配后的bug(避坑指南)

    这篇文章主要介绍了Elasticsearch6.2服务器升配后的bug问题及解决方法,可以帮助有其他人避坑,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • FileZilla Server搭建FTP服务器配置及425错误与TLS警告解决方法详解

    FileZilla Server搭建FTP服务器配置及425错误与TLS警告解决方法详解

    本文详细讲解了FileZilla Server搭建FTP服务器配置以及425 Can't open data,You appear to be behind a NAT router,FTP over TLS is not enabled等相关问题的解决方法
    2018-10-10
  • 戴尔R510_R410_R610_R710等所有服务器安装win2003解决办法

    戴尔R510_R410_R610_R710等所有服务器安装win2003解决办法

    这篇文章主要介绍了戴尔R510_R410_R610_R710等所有服务器安装win2003解决办法,需要的朋友可以参考下
    2016-04-04

最新评论