【问题标题】:How to properly connect steps with a puppet bolt plan (yaml format)如何正确连接步骤与木偶螺栓计划(yaml 格式)
【发布时间】:2020-10-18 00:27:11
【问题描述】:

我正在创建一个 puppet bolt 计划,在 4 台主机上安装 docker,在第一台主机上启用 swarm,然后将其他 3 台主机添加到该 swarm。

我的问题是我不知道如何将 yaml 的这一部分保存到变量中。

steps:
    - command: docker swarm init
      targets: $firstmanagementnode

这是我需要的,因为输出包含一个密钥,允许其他主机稍后在计划中加入集群

下面的 Puppet 文档中有一个示例,但老实说,我可以做出正面或反面

steps:
  - name: hostnames
    command: hostname -f
    targets: $targets
  - task: echo
    parameters:
      message: $hostnames.map |$hostname_result| { $hostname_result['stdout'] }.join(',')

我能够通过以下 yaml 和任务解决我的问题:

YAML:

  - name: initswarm
    command: docker swarm init
    targets: $firstmanagementnode
  - name: managertoken
    command: docker swarm join-token manager
    targets: $firstmanagementnode
  - name: managersjoin
    task: docker_swarm::joinswarm
    targets: $managernodes
    parameters:
      masternode: $managertoken.map |$token_result| { $token_result['stdout'] }.join(',')
    description: configure additional manager nodes

任务:

#!/bin/bash

$(echo $PT_masternode | grep -o 'docker.*2377')

任务json:

{
    "description": "joins a docker swarm",
    "input_method": "both",
    "parameters": {
        "masternode": {
            "description": "The first master node",
            "type": "String"
        }
    }
}

【问题讨论】:

    标签: yaml puppet bolt


    【解决方案1】:

    您是否尝试过查看 forge https://forge.puppet.com/puppetlabs/docker 上的 Docker 模块。

    您尝试做的很多工作已经作为独立任务完成,您可能只需将其包装到一个计划中。

    看看这里的任务https://github.com/puppetlabs/puppetlabs-docker/tree/main/tasks .rb 文件是代码,.json 实际上是手册页,如果你把这个模块拉到你的 Bolt 服务器上,你就可以运行 @ 987654323@获取更多信息。

    这里的任务初始化 swarm,还有另一个名为 swarm_token 的任务将返回您的令牌以在计划中使用并传递给 swarm_join。

    没有安装 docker 的任务,但您在计划中需要做的就是在计划开始时添加 include docker

    【讨论】:

    • 我确实查看了模块,但没有查看任务。谢谢!通过将命令的输出传递给执行 $(echo $PT_masternode | grep -o 'docker.*2377') 的 bash 任务,我能够创建安装 docker 以获取令牌的命令:docker swarm init。但是是的......模块任务可能更容易使用哈哈
    猜你喜欢
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 2014-09-02
    • 2014-07-29
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多