跳转到主要内容

一个用于管理数据中心生命周期的部署框架。

项目描述

Directord

Directord是一个强大的自动化平台和协议,旨在驱动跨越物理、边缘、IoT和云边界的的基础设施和应用程序;高效、准实时、可扩展,简单易用。

设计原则

Directord的设计原则可以在这里找到

文档

包含从应用程序设计、布线图、安装、使用等内容的附加文档都可以在这里找到

欢迎贡献者

  • 阅读有关如何部署和利用Directord的文档。

  • 准备好后,如果您想为Directord做出贡献,非常欢迎pull-requests。Directord是一个为运维人员构建的开源平台。如果您看到有问题,请随时提出bug和/或修复它。

  • 有关运行测试的信息可以在这里找到

有疑问吗?

加入我们,在 libera.chat#directord 频道。社区刚刚起步:这里有人提供帮助,解答问题,互相支持。

快速介绍

这个快速演示展示了如何轻松安装、初始化和部署一个可扩展测试环境。

asciicast

Hello World

让我们在你的本地机器上创建一个虚拟环境以初始化安装,一旦安装完毕,你可以转到服务器节点,并从这里调用所有任务

$ python3 -m venv --system-site-packages ~/directord
$ ~/directord/bin/pip install --upgrade pip setuptools wheel
$ ~/directord/bin/pip install directord

我们需要创建一个目录用于初始化。假设我们在两台机器上安装 directord

  • directord-1 192.168.1.100:directord 服务器,一个客户端

  • directord-2 192.168.1.101:仅作为客户端

为此,我们创建一个文件

$ vi ~/directord-catalog.yaml

包含以下内容

directord_server:
  targets:
  - host: 192.168.1.100
  port: 22
  username: fedora

directord_clients:
  args:
    port: 22
    username: fedora
  targets:
  - host: 192.168.1.100
  - host: 192.168.1.101

现在我们可以调用 directord 来初始化安装。初始化使用 ssh 连接到机器,但之后 ssh 就不再使用了。你只需要 ssh 密钥就可以将你的本地机器连接到你要安装的服务器和客户端之间,服务器和客户端之间不需要共享密钥。

要启动初始化,你需要使用你创建的目录文件和目录文件中包含的初始化所需任务的目录。

$ ~/directord/bin/directord bootstrap \
                            --catalog ~/directord-catalog.yaml  \
                            --catalog ~/directord/share/directord/tools/directord-dev-bootstrap-zmq.yaml

运行完毕后,你现在可以 ssh 到服务器,并从那里发出所有命令

$ ssh fedora@192.168.1.100

首先确保所有节点都已连接

$ sudo /opt/directord/bin/directord manage --list-nodes

应该显示以下内容

ID             EXPIRY  VERSION    HOST_UPTIME     AGENT_UPTIME
-----------  --------  ---------  --------------  --------------
directord-1    132.2   0.9.0      1:38:53.240000  0:00:00.051849
directord-2    131.69  0.9.0      1:39:25.780000  0:00:00.099533

然后我们创建我们的第一个编排作业,让我们添加一个名为

$ vi helloworld.yaml

包含以下内容

- jobs:
  - ECHO: hello world

然后我们调用编排以使用它

$ sudo /opt/directord/bin/directord orchestrate helloworld.yaml

应该返回类似以下内容

Job received. Task ID: 9bcf31cb-7faf-4367-bf37-57c11b3f81dc

我们使用该任务 ID 来检查作业的执行情况,或者我们可以使用""列出所有作业

$ sudo /opt/directord/bin/directord manage --list-jobs

返回类似以下内容

ID                                    PARENT_JOB_ID                           EXECUTION_TIME    SUCCESS    FAILED
------------------------------------  ------------------------------------  ----------------  ---------  --------
9bcf31cb-7faf-4367-bf37-57c11b3f81dc  9bcf31cb-7faf-4367-bf37-57c11b3f81dc              0.02          2         0

有了任务 ID,我们可以看到作业的执行情况

$ sudo /opt/directord/bin/directord manage --job-info 9bcf31cb-7faf-4367-bf37-57c11b3f81dc

好了,这就是我们的第一个编排好的 Hello World

KEY                   VALUE
--------------------  -------------------------------------------------------
ID                    9bcf31cb-7faf-4367-bf37-57c11b3f81dc
INFO                  test1 = hello world
                      test2 = hello world
STDOUT                test1 = hello world
                      test2 = hello world
...

许可协议

Apache 许可协议版本 2.0 COPY

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

directord-0.12.0.tar.gz (115.8 kB 查看哈希值)

上传时间

构建分布

directord-0.12.0-py3-none-any.whl (187.0 kB 查看哈希值)

上传时间 Python 3

支持者