diff options
author | Micah Anderson <micah@riseup.net> | 2014-10-20 21:38:18 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2014-10-20 21:47:11 -0400 |
commit | bbed56bfccd84e6d7056dee25c508571ce3082c6 (patch) | |
tree | d5cafba761dc0e0c78574cd35b4bfa5617bf2252 /lib | |
parent | 9026cc61318fb5cbd3bb23e89ee759a1b60868e6 (diff) | |
download | leap_cli-bbed56bfccd84e6d7056dee25c508571ce3082c6.tar.gz leap_cli-bbed56bfccd84e6d7056dee25c508571ce3082c6.tar.bz2 |
implement optional provider custom puppet support (#6201, #6225)
if files/custom-puppet/{manifests,modules} does not exist, it will be
created and files/custom-puppet/manifests/site.pp will be populated with
a comment and necessary tag to apply in the platform.
The site.pp must exist, if it does not, then the import in the
platform/manifest/site.pp will fail.
Any puppet resources put in custom-puppet/manifests/site.pp will be
executed, and any modules placed in custom-puppet/modules will be made
available through the --modulepath parameter to puppet.
This requires the associated platform changes (#6226)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/leap_cli/commands/deploy.rb | 15 | ||||
-rw-r--r-- | lib/leap_cli/constants.rb | 6 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/leap_cli/commands/deploy.rb b/lib/leap_cli/commands/deploy.rb index b4e3779..54c2bdb 100644 --- a/lib/leap_cli/commands/deploy.rb +++ b/lib/leap_cli/commands/deploy.rb @@ -204,6 +204,21 @@ module LeapCli :flags => "-rlt --relative --delete --copy-links" } end + ssh.rsync.update do |server| + custom_site = Path.provider + LeapCli::CUSTOM_PUPPET_SITE + custom_modules = Path.provider + LeapCli::CUSTOM_PUPPET_MODULES + if !file_exists?(custom_site) + write_file!(custom_site, "# custom puppet configuration" + "\n" + "tag 'leap_base'" + "\n") + end + ensure_dir custom_modules + ssh.leap.log(Path.provider + LeapCli::CUSTOM_PUPPET_SOURCE + ' -> ' + server.host + ':' + LeapCli::CUSTOM_PUPPET_DESTINATION) + { + :dest => LeapCli::CUSTOM_PUPPET_DESTINATION, + :source => Path.provider + LeapCli::CUSTOM_PUPPET_SOURCE, + :chdir => Path.platform, + :flags => "-rlt --delete --copy-links" + } + end end # diff --git a/lib/leap_cli/constants.rb b/lib/leap_cli/constants.rb index bf30df1..dcb66be 100644 --- a/lib/leap_cli/constants.rb +++ b/lib/leap_cli/constants.rb @@ -1,7 +1,11 @@ module LeapCli PUPPET_DESTINATION = '/srv/leap' + CUSTOM_PUPPET_DESTINATION = '/srv/leap/custom-puppet' + CUSTOM_PUPPET_SOURCE = '/files/custom-puppet/' + CUSTOM_PUPPET_SITE = "#{CUSTOM_PUPPET_SOURCE}/manifests/site.pp" + CUSTOM_PUPPET_MODULES = "#{CUSTOM_PUPPET_SOURCE}/modules" INITIALIZED_FILE = "#{PUPPET_DESTINATION}/initialized" DEFAULT_TAGS = ['leap_base','leap_service'] -end
\ No newline at end of file +end |