aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2014-10-20 21:38:18 -0400
committerMicah Anderson <micah@riseup.net>2014-10-20 21:47:11 -0400
commitbbed56bfccd84e6d7056dee25c508571ce3082c6 (patch)
treed5cafba761dc0e0c78574cd35b4bfa5617bf2252
parent9026cc61318fb5cbd3bb23e89ee759a1b60868e6 (diff)
downloadleap_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)
-rw-r--r--lib/leap_cli/commands/deploy.rb15
-rw-r--r--lib/leap_cli/constants.rb6
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