如何正确连接步骤与傀儡螺栓平面图(yaml格式)

如何正确连接步骤与傀儡螺栓平面图(yaml格式),yaml,puppet,bolt,Yaml,Puppet,Bolt,我正在创建一个puppet bolt计划,在4台主机上安装docker,在第一台主机上启用swarm,然后将其他3台主机添加到该swarm 我的问题是我不知道如何将yaml的这一部分保存到变量中 步骤: -命令:docker swarm init 目标:$firstmanagementnode 我需要它,因为输出包含一个密钥,允许其他主机稍后在计划中加入swarm 下面的Puppet文档中有一个例子,但老实说,我可以了解它的头绪 steps: - name: hostnames c

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

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

步骤:
-命令:docker swarm init
目标:$firstmanagementnode
我需要它,因为输出包含一个密钥,允许其他主机稍后在计划中加入swarm

下面的Puppet文档中有一个例子,但老实说,我可以了解它的头绪

steps:
  - name: hostnames
    command: hostname -f
    targets: $targets
  - task: echo
    parameters:
      message: $hostnames.map |$hostname_result| { $hostname_result['stdout'] }.join(',')
我能够用yaml解决我的问题,并完成以下任务:

亚马尔:

-名称:initswarm
命令:docker swarm init
目标:$firstmanagementnode
-姓名:managertoken
命令:docker swarm加入令牌管理器
目标:$firstmanagementnode
-姓名:managersjoin
任务:docker_swarm::joinswarm
目标:$managernodes
参数:
masternode:$managertoken.map |$token_result |{$token_result['stdout']}.join(','))
描述:配置其他管理器节点
任务:

#/bin/bash
$(echo$PT_masternode | grep-o'docker.*2377')
任务json:

{
“说明”:“加入码头工人群”,
“输入法”:“两者”,
“参数”:{
“主节点”:{
“说明”:“第一个主节点”,
“类型”:“字符串”
}
}
}

您是否尝试查看锻造厂上的Docker模块

您尝试做的许多工作已经作为独立任务完成,您可能只需要将其打包成一个计划

看看这里的任务,.rb文件是代码,.json实际上是手册页,如果您将此模块拉到您的Bolt服务器上,您将能够运行
Bolt任务秀docker::swarm_join
,以获取更多信息

这里的任务初始化swarm,还有另一个任务称为swarm_令牌,它将返回您的令牌用于计划并传递到swarm_加入


没有安装docker的任务,但您需要在计划开始时添加
包含docker

您是否尝试过查看forge上的docker模块

您尝试做的许多工作已经作为独立任务完成,您可能只需要将其打包成一个计划

看看这里的任务,.rb文件是代码,.json实际上是手册页,如果您将此模块拉到您的Bolt服务器上,您将能够运行
Bolt任务秀docker::swarm_join
,以获取更多信息

这里的任务初始化swarm,还有另一个任务称为swarm_令牌,它将返回您的令牌用于计划并传递到swarm_加入


没有安装docker的任务,但您需要在计划的开始添加
包含docker

我查看了模块,但没有查看任务。非常感谢。通过将命令的输出:docker swarm init传递给执行$(echo$PT_masternode | grep-o'docker.*2377')的bash任务,我能够创建命令来安装docker to get then令牌。但是是的…模块任务可能更容易使用hahaI确实查看了模块,但没有查看任务。非常感谢。通过将命令的输出:docker swarm init传递给执行$(echo$PT_masternode | grep-o'docker.*2377')的bash任务,我能够创建命令来安装docker to get then令牌。但是,是的…模块任务可能更容易使用哈哈