在此篇 Nutanix Calm DSL快速提示中,将介绍文档中的其他容易被新用户忽略的功能以及内容。这些小功能看似微不足道(就像开发人员世界中的许多事情一样),但是当用作整体工作流程的一部分时,它们可以有效提高效率和生产率。
用于配置的环境变量
第一个快速技巧是环境变量的使用,可以使用环境变量来指示Calm DSL连接哪个 Prism Central IP 地址和端口,要使用的凭据。默认情况下,首次使用Calm DSL时,这些设置为空这适用于本地开发环境和使用Calm DSL容器的开发环境。
Calm DSL repo 的文件以文本格式对此进行介绍,本文将在此处进一步说明整个详细流程。首先,让我们看看如果缺少此配置时尝试运行任何Calm DSL命令会发生什么。
缺少 Calm DSL 的 Configuration 会产生错误
这里有个明显的问题,因为Calm DSL告诉我们确切的情况。我们可以透过执行以下命令直接配置DSL来解决此问题:
calm init dsl
或者,我们可以使用环境变量。在上面的错误消息中,显示了可用的环境变量之一 – CALMDSLPCIP。如果设置了该怎么办?
执行“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环境变量来指定日誌级别,但是在这里没有更改它。
要求 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 容器,这就是检查环境的简单命令。
透过 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感谢您的阅读,祝您有美好的一天!