Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 Ansible 操作手册实现 NorthStar 安装自动化

Ansible palybook 与 NorthStar 下载包捆绑在一起。您可以从 NorthStar 下载页面下载 NorthStar 下载 包。该手册支持 NorthStar 软件安装的自动化,适用于实验室和生产系统。如果您不熟悉 Ansible 开源自动化工具,可以在线获取信息。示例资源包括:

Ansible 剧本将 NorthStar 与 cRPD 相结合。没有可用于 Junos VM 安装的剧本。

请参阅安装 NorthStar 控制器, 了解不使用 Ansible 操作手册的安装过程。

Ansible 操作指南需要一个从中启动安装的主机(虚拟机或笔记本电脑/台式机)。此主机称为“控制节点”。安装状态保留在控制节点上,以便于将来更改配置。这也是保存清单文件 (hosts.yml) 和许可证文件以供将来重新安装或更新的好地方。您需要将控制节点中存在的公共 SSH 密钥安装在要安装的目标主机(“托管式节点”)上,以便 Ansible 可以与这些节点通信。

开始之前

要准备执行 Ansible 剧本,请执行以下操作:

  1. 在控制节点上安装以下内容:

    • Linux 操作系统

    • Python

    • Python-pip(用于安装 Ansible)

    • Ssh

    • Ansible

    我们建议使用 virtualenv 创建一个隔离的 Python 环境来安装 Ansible。它会创建一个包含所有必要可执行文件的文件夹。您可以使用 virtualenv 中的命令安装 pip Ansible。您还可以用于 pip 在系统环境中安装 Ansible。

    下面是使用 virtualenv 安装 Ansible 的示例:

  2. 确定要安装 NorthStar 软件的所有受管节点。确保每个节点都具有以下内容:

    • 基本操作系统(Red Hat Enterprise Linux 7.x 或 CentOS 7.x)

    • 网络连接

    • SSH 服务器

  3. 确保您可以从控制节点通过 SSH 连接到所有受管节点。

    要执行 playbook,您必须能够连接到每个受管节点并成为 root。您可以通过将 SSH 密钥添加到每个托管式节点上的 ~/.ssh/authorized_keys 文件中来设置此设置,可以直接用于 root,也可以为另一个无需密码即可执行 sudo 而成为 root 的帐户。

    另一种方法是使用变量指定连接到受管节点的用户名/密码以及清单文件中的 sudo 密码。这些是变量:

    • ansible_user

      要连接到的用户,例如 root。默认值为当前用户。

    • ansible_password

      对 进行身份验证的密码 ansible_user

    • ansible_become

      如果不是根,则 ansible_user 将其设置为 true。

    • ansible_sudo_password

      提供给sudo的密码。

  4. 将适用于 NorthStar 和 NorthStar-Bundle.rpm 的 Ansible 剧本复制到控制节点,然后更改为该目录。

创建 Ansible 清单文件

为 NorthStar 安装创建自定义清单文件。清单是一组列表,用于定义计划的 NorthStar 安装中的受管节点。适用于 NorthStar 的 Ansible 手册包含一个名为 hosts.yml.sample 的示例清单文件,您可以将其用作启动自定义清单文件的模板。清单文件的默认名称为 hosts.yml。使用文本编辑器自定义库存文件。

模板清单文件分为几组:

  • all

    包含用于定义应用于所有受管节点的变量的小节 vars 。例如, ansible_user 定义用于连接到受管节点的帐户名。

  • northstar

    定义将运行 NorthStar 服务(如 PCS、TopoServer 和 Web 前端)的受管节点和变量。组中的节点应定义一个northstar_license变量,其中包含该节点的northstar许可证信息

  • northstar_ha

    包含为 NorthStar 高可用性配置的节点或节点子组。

  • northstar_analytics

    包含用于分析的节点和变量。

  • northstar_collector

    包含用于分析辅助收集器的节点和变量。

此示例显示了清单文件的一部分,其中包括以下一些组:

您可以使用命令 ansible-vault encrypt_string 加密机密变量,例如 northstar_password 或 ansible_password。更多信息可在此处获得: https://docs.ansible.com/ansible/latest/vault_guide/index.html

执行剧本

定义清单文件后,执行命令 ansible -m ping all 以验证所有受管节点是否已正确定义、可访问以及 SSH 登录是否成功。

执行 ./install.yml (或 ansible-playbook install.yml) 命令以执行安装手册并安装清单文件中定义的所有受管节点。您可以向 install.yml 命令添加可选参数。一些有用的示例包括:

  • -e key=value

    额外的变量。例如, -e northstar_bundle_rpm=NorthStar-Bundle-6.2.6.xxx.rpm

  • -我 inventory-file

    使用其他库存文件。例如,如果您使用控制节点为独立集群安装软件,则可以利用这一点。

  • -我 limit

    将执行限制为托管式节点的子集。例如, -l 10.10.10.4,10.10.10.5 只会安装在这两个受管节点上。

  • -t taglist

    将执行限制为一组标记的任务。例如, -t northstar 只会安装 NorthStar 应用程序。

  • --问金库通行证

    请求嵌入式机密的解密密钥。

安装数据收集器和辅助收集器以进行分析

您可以安装 NorthStar 数据收集器以支持以下两种分析配置之一:

  • 与 NorthStar 应用程序共同托管的分析

    对于此配置,请将清单组中的相同托管式节点northstar_analytics添加到清单组。northstar

  • 外部分析节点或群集

    对于此配置,请将一个或多个受管节点 northstar_analytics 添加到清单组。

通过将托管式节点 northstar_collector 添加到清单组来安装分析辅助收集器。为了成功安装辅助收集器,安装脚本需要访问运行 NorthStar 应用程序的节点。主节点必须与分析/收集器节点一起安装,或者必须在安装分析/收集器节点之前运行。该脚本从 northstar 清单组中获取所需信息,但您可以使用变量 northstar_primary覆盖该信息。

变量

表 1 中列出了专门为 NorthStar 行动手册而提供的变量。

表 1:NorthStar Ansible 剧本变量

变量名称

描述

northstar_bundle_rpm

要安装的捆绑包 RPM 的名称。

chrony_config_server

NTP 服务器列表。

如果未指定任何 NTP 服务器,则托管式节点将配置为与以下四个 NTP 服务器同步:

  • 0.pool.ntp.org

  • 1.pool.ntp.org

  • 2.pool.ntp.org

  • 3.pool.ntp.org

northstar_license_file

每节点 NorthStar 许可证文件。

northstar_license

每节点 NorthStar 许可证(内联)。

northstar_crpd_asn

用于 cRPD 路由反射器的 ASN。

默认行为是不修改 NorthStar 配置脚本中的默认 ASN。NorthStar 配置脚本中的默认 ASN 为 64512。

northstar_crpd_license_file

cRPD 许可证文件。

northstar_crpd_license

cRPD 许可证(内联)。

northstar_ha_group

属于 HA 的受管节点。

默认情况下,包括清单组的所有 northstar_ha 成员。

northstar_ha_vip

HA 的虚拟 IP 地址。

northstar_ha_site

地理 HA 站点的名称。

默认值为 site1。

northstar_ha_priority

每节点 HA 优先级。

默认值为 100。

northstar_primary

NorthStar 应用程序节点用于配置远程分析和收集器节点。主节点必须与分析/收集器节点一起安装,或者必须在安装分析/收集器节点之前运行。

默认值为 清单组 的第一个成员 northstar

northstar_app_nodes

运行 NorthStar 应用程序的受管节点。

默认情况下,包括清单组的所有 northstar 成员。

northstar_analytics_priority

每节点 HA 优先级。

默认值为 100。

northstar_analytics_vip

分析群集的虚拟 IP 地址。

表 2 列出了其他一些有用的变量。

变量

描述

ansible_user

用户以连接到受管节点。

ansible_password

用于连接到控制节点的密码。

ansible_become

如果不是根,则 ansible_user 将其设置为 true。

ansible_sudo_password

提供给sudo的密码。