написать конфигурацию марионетки для клонирования репозитория github

Я написал модуль Puppet для установки Git в Windows. Хозяин Марионеток — это Linux.

Можно ли написать манифест Puppet для клонирования репозитория GitHub, используя только ресурсы марионетки (т.е. без скрипта или exec)?

Это частное репо, поэтому решение должно включать безопасные учетные данные.


person BaltoStar    schedule 06.06.2015    source источник
comment
Не знаю, почему у вас есть это ограничение. Я не поддерживал систему Windows и могу порекомендовать только модули Forge для Linux: puppetlabs/vcsrepo   -  person BMW    schedule 06.06.2015
comment
Как показано, puppetlabs/vcsrepo действительно работает в Windows, просто официально не поддерживается :)   -  person Peter Souter    schedule 10.06.2015


Ответы (1)


Это действительно возможно в Windows! Вы можете использовать модуль puppetlabs-vcsrepo.

Пример в действииСнимок экрана с использованием машины Windows 2012R2 в Virtualbox, командная строка слева, графический интерфейс Правильно.

Код, который я использовал в примере:

vcsrepo { 'C:\foo':
  ensure   => present,
  provider => git,
  source   => 'https://github.com/puppetlabs/puppetlabs-vcsrepo',
}

Чтобы сохранить последнюю версию репозитория, установите для параметра «последняя версия» значение. Однако это перезаписывает любые локальные изменения в репозитории.

vcsrepo { 'C:\foo':
  ensure   => present,
  provider => git,
  source   => 'https://github.com/puppetlabs/puppetlabs-vcsrepo',
}

Чтобы контролировать, на какой ссылке, теге или ветке находится репозиторий git, используйте параметр ref:

vcsrepo { 'C:\foo':
  ensure   => present,
  provider => git,
  source   => 'git://example.com/repo.git',
  revision => 'development',
}

vcsrepo { 'C:\foo':
  ensure   => present,
  provider => git,
  source   => 'git://example.com/repo.git',
  revision => '0c466b8a5a45f6cd7de82c08df2fb4ce1e920a31',
}

vcsrepo { 'C:\foo':
  ensure   => present,
  provider => git,
  source   => 'git://example.com/repo.git',
  revision => '1.1.2rc1',
}
person Peter Souter    schedule 06.06.2015
comment
Эй, что ты использовал, чтобы сделать эту гифку? - person Chris Pitman; 07.06.2015
comment
спасибо Питер, но я на Windows: последняя версия совместима с: Puppet Enterprise 3.x Puppet 3.x RedHat, Ubuntu, Debian, SLES, Scientific, CentOS, OracleLinux - person BaltoStar; 08.06.2015
comment
Да, машина слева на скриншоте — это сервер Windows 2012R2 с установленным на нем Puppet. Совместимость версий в метаданных — это те платформы, которые явно поддерживаются, она может работать и на других платформах (что и происходит в случае с Windows! :D) - person Peter Souter; 09.06.2015
comment
Питер, в какой степени puppetlabs-vcsrepo обеспечивает репо? это гарантирует, что репо всегда находится в пригодном для использования состоянии? он повторно клонирует, если все репо (или даже файлы конфигурации репо git) удалено? проверяет ли он изменения в расписании, которое затем вытаскивает? - person BaltoStar; 11.06.2015
comment
Вы можете увидеть примеры на github.com/puppetlabs/puppetlabs-vcsrepo#usage, но простой ответ заключается в том, чтобы просто сделать клон git, а затем не трогать его, если вы не удалите каталог. Последний всегда гарантирует, что это последняя версия. Параметр ревизии позволяет указать конкретную ветвь или ссылку. - person Peter Souter; 11.06.2015
comment
Питер, мое приложение создаст/проверит рабочую ветку, добавит/изменит файл, этап/фиксацию/пуш. Заметит ли puppetlabs-vcsrepo, что эта текущая ветка не является основной, и переключит ли ее обратно? Я не хочу, чтобы это произошло. - person BaltoStar; 23.06.2015
comment
Если вы выберете sure=›present, будет проверено только то, что репо существует и имеет правильную конечную точку, изменения, внесенные вашим приложением, не будут отменены. - person Peter Souter; 23.06.2015
comment
спасибо, Питер, не могли бы вы проверить, что это правильная строка для добавления в Puppetfile: mod 'puppetlabs/puppetlabs-vcsrepo', '1.3.0'? - person BaltoStar; 23.06.2015
comment
Да, это последняя версия, которую я тестировал на компьютере с Windows. - person Peter Souter; 23.06.2015
comment
у вас есть решение для безопасного хранения учетных данных на кукольном сервере и включения в конфигурацию vcsrepo? - person BaltoStar; 24.06.2015