Токен режима Swarm - модуль Puppet

В документации по настройке режима роя, похоже, отсутствует что-то важное.
Похоже, что для управления роем с помощью puppet мне нужно предоставить токен.
Но чтобы получить токен, мне нужно перейти на узел менеджера и ввести docker swarm join-token -q, скопировать вывод и вставить в puppet?

Я что-то упускаю? Или есть какой-то автоматизированный способ сделать это? Чего я ожидаю, так это:

if(host_has_label("my-swarm-manager")) {
  docker::swarm {'cluster_manager':
    init           => true,
    advertise_addr => current_host_ip(),
    listen_addr    => current_host_ip(),
    swarm_name     => 'my-swarm'
  }
} else if (host_has_label("my-swarm-worker")) {
  docker::swarm {'cluster_worker':
    join           => true,
    advertise_addr => current_host_ip(),
    listen_addr    => current_host_ip(),
    manager_ip     => get_ip_by_swarm_name('my-swarm'),
    token          => get_token_by_swarm_name('my-swarm')
  }
}

Токен режима Swarm


person Arya N    schedule 17.03.2019    source источник
comment
Какой модуль вы используете?   -  person Matt Schuchard    schedule 18.03.2019
comment
puppetlabs-docker --version 3.5.0 модуль Puppetlabs   -  person Arya N    schedule 18.03.2019
comment
Чтобы прояснить вопрос для всех остальных, вопрос не в том, как сделать то, что отсутствует в функционале из модуля (как подразумевает вопрос и псевдокод), а в том, как передать токен в модуль. Для этого вам понадобятся экспортированные ресурсы, объяснение которых содержится в нескольких ответах Джона Боллинджера. Он, вероятно, может ссылаться на свою любимую.   -  person Matt Schuchard    schedule 18.03.2019
comment
Хотя у этой проблемы есть несколько функций, которые хорошо подходят для экспортируемых ресурсов, есть проблема, заключающаяся в том, что токен соединения вычисляется, когда создается рой, и он доступен только с узла менеджера. Если есть желание добавить в рой дополнительных менеджеров, то этот вопрос коснется и их. Это не то, что модуль мог бы разумно обойти внутри.   -  person John Bollinger    schedule 18.03.2019
comment
Я вижу по крайней мере пару различных общих подходов, которые могли бы быть жизнеспособными для передачи этой информации мастеру, но я недостаточно хорошо разбираюсь в Docker, чтобы быть уверенным в том, чтобы давать конкретные рекомендации.   -  person John Bollinger    schedule 18.03.2019
comment
Как я видел, нет решения для динамического получения токена присоединения...   -  person Arya N    schedule 20.03.2019
comment
Нет, @AryaN, этого никто не говорил. На самом деле, я сказал, что думаю, что, вероятно, дело обстоит как раз наоборот. Но у меня самого недостаточно знаний в области Docker, чтобы написать достойный ответ SO на вопрос. Возможно, вам повезет больше на puppet-users Группа Google, где вы, скорее всего, найдете людей, хорошо разбирающихся в сочетании задействованных технологий, и где формат в стиле обсуждения более податлив для постепенного перехода туда и обратно, ведущего к решению.   -  person John Bollinger    schedule 20.03.2019
comment
Вы нашли решение? Я с той же проблемой! @АрьяН   -  person Alejandro Jaramillo    schedule 23.07.2020