更多相关内容
什么是Ansible Playbook以及如何上手?
什么是 Ansible Playbook?
Ansible 是 Red Hat(红帽) 推出的一款配置管理工具,能自动完成多台服务器的配置和应用程序的部署,Playbook是任何在 Ansible 平台之上进行配置的核心组件。
Ansible playbook是一个自动化脚本集合,定义了 Ansible 在一台或多台机器上要执行的一系列配置管理工作。管理员无需逐个运行单个 Ansible 命令,而是通过 playbook 简化配置管理工具的使用。熟悉了 Ansible 命令后,你就可以从头开始编写Play(剧本),或从 Ansible 及其用户社区获取预编写的playbook和模块。
Ansible Playbook的组件
Ansible Playbook 由一个或多个 play 组成,而 play 又由各种模块(module)组成。
Playbook 不是标准文本文件,而是 YAML 格式。他们可以定义与托管服务器上的配置相关的工作,IT运维人员会为目标机器创建带有特定环境参数的版本,所以并不存在一个标准版的Playbook。
用 Python 或 PowerShell 编写的脚本(模块)与目标托管服务器的各个方面相关,适用于系统配置的许多方面。包括软件安装和用户管理。模块组件的存在使得Ansible工具非常灵活,不光Ansible本身提供了许多模块,很多Ansible相关的开源社区也提供了丰富的选择。
使用 Ansible playbook
当管理员对目标机器运行 ansible-playbook 命令时,就会执行一个 playbook。
管理员必须使用清单文件(inventory file)来指定Playbook所管理的主机。清单文件包含 Ansible 管理的所有主机列表,可按功能对主机进行分组。例如,管理员可以对一组网络服务器应用一个管理程序,对一组数据库服务器应用另一个管理程序。
要开始使用这些 Ansible 管理程序,首先要确认该工具已安装并正在运行。 发出以下命令运行一个 playbook,其中 myfile 是 YAML 文件名:
Ansible 通过 SSH 与它所管理的机器通信,因此 Ansible playbook 和 Ansible 可执行文件都存储在本地服务器的文件夹中。
使用检查模式和分组
在实际环境执行之前,可以在检查模式下运行playbook,尤其是对于那些刚开始使用 Ansible 的管理人员。此操作会在不修改任何文件的前提下,输出系统在标准模式下运行时会发生的更改,以便于我们及时勘误。
要使用检查模式,可添加 –check 指令:
要检查语法是否有误:
管理员可以根据主机的功能或其他层次结构,将类似的主机归为一组,并只对组内的主机执行操作。例如,分隔不同主机组确保只有网络服务器运行最新版本的 Apache,排除了数据库服务器。
所有主机都存储在名为 /etc/ansible/hosts 的本地 Ansible 清单文件中。虽然管理员可以更改主机信息的存储位置,但该位置是默认设置(建议不要更改)。如果该文件经常更改,请使用版本控制功能。
星融元网络操作系统AsterNOS对Ansible的支持
在实际部署使用中,如果对应设备的软件版本没有提供现成的Ansible插件/模块,则需要对其进行二次开发。设备能否被顺利集成完全取决于运维人员的研发能力。
AsterNOS是星融元开发的一款功能强大的企业级SONiC发行版,稳定兼容几乎所有主流商业交换芯片,已在全球有着数万台的商业拷贝。作为一款为云计算时代构建的新一代NOS,AsterNOS具备开放、开源、以业务为中心的特点,完全顺应NetDevOps理念。
我们的官方模块集合 Asterfusion AsterNOS Collection 现已正式上线,目前已完成cliconf插件和asternos_command模块的开发适配。我们将为其持续提供开发更新。
更多相关信息请访问星融元的Ansible Galaxy主页查看,欢迎各位运维工程师下载体验,与我们深度交流!