возможен ли цикл в файле config.json упаковщика? - PullRequest
0 голосов
/ 27 декабря 2018

возможно ли сделать петли в пакере?У меня есть Vagrantfile с циклом и я хочу преобразовать его в упаковщик.Я уже искал в Google и переполнение стека, но не нашел правильного решения.

У меня проблемы с преобразованием этого в формат json: (0 .. $ NODE_COUNT) .each do | I |

    # -*- mode: ruby -*-
    # vi: set ft=ruby :

    $BOX_IMAGE = "VAGRANT CLOUD IMAGE NAME"
    $TBSP_VERSION = "2.0"

    # number of additional tendermint validation nodes to be provisioned
    $NODE_COUNT = 1

    Vagrant.configure("2") do |config|
      (0..$NODE_COUNT).each do |i|
        config.vm.define "node#{i}" do |subconfig|
          subconfig.vm.box = $BOX_IMAGE
          subconfig.vm.hostname  = "node#{i}"
          subconfig.vm.network "private_network", ip: "192.168.50.#{i + 10}"
          subconfig.disksize.size = '10GB'
          subconfig.vm.provider "virtualbox" do |v|
            v.memory = 4096
            v.cpus = 4
            v.customize ["modifyvm", :id, "--name", "v2.0-abci-tm-d-multi-node#{i}-server"]
          end
          subconfig.trigger.after :up do |trigger|
            if(i == $NODE_COUNT)
              trigger.info = "last Node-#{$NODE_COUNT} is up"
              trigger.run = {path: "provision_tendermint.sh", :args => "'#{$NODE_COUNT}'"}
            end
          end
          subconfig.vm.provision "shell", path: "provision.sh", :args => "'#{i}' '#{$NODE_COUNT}'"
        end
      end
    end

1 Ответ

0 голосов
/ 04 января 2019

Нет, в настоящее время Packer JSON не поддерживает циклы.Вам придется подойти к этому по-другому.Я думаю, что вы просто используете Vagrant для предоставления виртуальных машин, а не для создания образа, тогда вам следует рассмотреть возможность использования Terraform.

...