Nutanix Calm DSL – Quick Tips 2

http://img2.58codes.com/2024/20129565ebYAMCwpMt.png

在此篇 Nutanix Calm DSL快速提示中,将介绍文档中的其他容易被新用户忽略的功能以及内容。这些小功能看似微不足道(就像开发人员世界中的许多事情一样),但是当用作整体工作流程的一部分时,它们可以有效提高效率和生产率。

用于配置的环境变量

第一个快速技巧是环境变量的使用,可以使用环境变量来指示Calm DSL连接哪个 Prism Central IP 地址和端口,要使用的凭据。默认情况下,首次使用Calm DSL时,这些设置为空这适用于本地开发环境和使用Calm DSL容器的开发环境。

Calm DSL repo 的文件以文本格式对此进行介绍,本文将在此处进一步说明整个详细流程。首先,让我们看看如果缺少此配置时尝试运行任何Calm DSL命令会发生什么。

http://img2.58codes.com/2024/20129565oPndZkOI4y.png
缺少 Calm DSL 的 Configuration 会产生错误

这里有个明显的问题,因为Calm DSL告诉我们确切的情况。我们可以透过执行以下命令直接配置DSL来解决此问题:

calm init dsl

或者,我们可以使用环境变量。在上面的错误消息中,显示了可用的环境变量之一 – CALMDSLPCIP。如果设置了该怎么办?

http://img2.58codes.com/2024/20129565ccM2e1bOXJ.png
执行“as we’re told” 并设定 CALMDSLPCIP 的环境变数

现在我们拥有良好的进展。如果我们要重複过程,那么最终我们将设置所有环境变量,并且可以使用Calm DSL。但这不是最有效的方式,所以让我们看一下透过简单的 Bash 脚本设置所有可用变量的列表。在我的开发环境中,我将此脚本称为set_env.sh并使该脚本可执行。

#!/bin/bash# set all required environment variablesexport CALM_DSL_PC_IP=10.42.250.39export CALM_DSL_PC_PORT=9440export CALM_DSL_PC_USERNAME=...export CALM_DSL_PC_PASSWORD=...export CALM_DSL_DEFAULT_PROJECT=MLproject

在Linux环境中,我们可以如下运行该脚本。

. ./set_env.sh

然后,我们可以使用另一个简单的Calm DSL命令检查配置是否正确设置。

calm show config

正如预期现在可以看到配置了环境,并且可以使用Calm DSL。确实可以透过设置CALM_DSL_LOG_LEVEL环境变量来指定日誌级别,但是在这里没有更改它。

http://img2.58codes.com/2024/201295655VgXQIzmHi.png
要求 Calm DSL 向我们展示当前环境配置

为什么要这么做

可以透过执行Calm的 init dsl 设置环境(需要手动输入)。从自动化的角度来看,任何手动输入,都会耗损整个自动化的过程。

自定义容器环境变量

综上所述,已显示可以使用自定义脚本来设置环境变量,Calm DSL在本地使用,即没有Docker。但是还有另一个类似的选项,专门针对Docker容器中的Calm DSL,使用机器可读的配置文件,包含上述脚本类似的设置。

现在让我们一起看看这些文件

CALM_DSL_PC_IP=10.42.250.39CALM_DSL_PC_PORT=9440CALM_DSL_PC_USERNAME=...CALM_DSL_PC_PASSWORD=...CALM_DSL_DEFAULT_PROJECT=MLprojectCALM_DSL_LOG_LEVEL=INFO

请注意以下部分假定您的环境已设置为运行Docker。如果您尚未设定,请参阅介绍DSL。
如何使用我们的配置文件启动Calm DSL容器。

docker run -it --env-file ./calm_env ntnx/calm-dsl

注意使用「 –env-file」参数。一旦执行了 Calm DSL 容器,这就是检查环境的简单命令。

http://img2.58codes.com/2024/20129565M5j5ncs4u3.png
透过 Running set | grep DSL 从我们的配置文件检查配置是否通过

提醒:Calm DSL 已更新为不再以纯文本形式显示密码,如上面截图所示。故若仍看到纯文本密码,请确保您使用的是最新版本。

自定义Dockerfile

最后一件事是使用自定义Dockerfile,对于那些拥有Docker经验的人来说,这是不费吹灰之力的,所以在这边会针对FYI添加详加说明。

如果使用默认的Dockerfile,则透过上述命令提取并运行的Calm DSL容器将运行Alpine Linux。下面显示的是一个自定义Dockerfile的範例,该文件将基于Dockerhub Python映像提取并构建映像。此範例由Nutanix的解决方案架构师Jose Gomez提供,是为配合Jose工作流中的各种情形而创建的。

ARG VARIANT="3.7"FROM python:${VARIANT}ARG CALM_DSL_TARBALL="https://github.com/nutanix/calm-dsl/archive/master.zip"WORKDIR /rootRUN mkdir -p `python3 -m site --user-site`ENV PATH=/root/.local/bin:$PATHRUN apt-get update && apt-get install -y sudo jq \    && rm -rf /var/lib/apt/lists/*RUN wget -q -O /tmp/calm-dsl.zip $CALM_DSL_TARBALLRUN unzip /tmp/calm-dsl.zip -d /tmp \    && rm /tmp/calm-dsl.zip \    && cd /tmp/calm-dsl-master \    && pip3 install --no-cache-dir -r requirements.txt virtualenv --user \    && make dist \    && pip3 install --no-cache-dir dist/calm.dsl*.whl --user \    && cd ~ \    && rm -fR /tmp/calm-dsl-master CMD ["bash"]

总结

即使这些快速提示都是最简单的功能,这边还有许多Calm DSL资源可以参考。

Nutanix.dev上的 Calm DSL 首页介绍 Nutanix Calm DSLGitHub 上的开源 Calm DSL Repo

感谢您的阅读,祝您有美好的一天!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章