aboutsummaryrefslogtreecommitdiffstats
path: root/firstboot
diff options
context:
space:
mode:
authorJiri Stransky <jistr@redhat.com>2015-04-30 19:37:32 +0200
committerJiri Stransky <jistr@redhat.com>2015-05-04 15:47:58 +0200
commit91e80992d4f44b004dfc152dc4a12bbdba005c7a (patch)
treed5803f7ed328af71c6d4404a5c76c5b09a9fbebf /firstboot
parent9ffe4ebb871d4267ce9f31cad77ee1f2db0080ac (diff)
Firstboot rsync for development purposes
Could be used to e.g. make changes to the puppet modules on the fly without the need to rebuild images. Documented in the template description. Change-Id: I6a1fef20d4f4afa4bedac5ea520949697793f0ed
Diffstat (limited to 'firstboot')
-rw-r--r--firstboot/userdata_dev_rsync.yaml49
1 files changed, 49 insertions, 0 deletions
diff --git a/firstboot/userdata_dev_rsync.yaml b/firstboot/userdata_dev_rsync.yaml
new file mode 100644
index 0000000..7dc7bd4
--- /dev/null
+++ b/firstboot/userdata_dev_rsync.yaml
@@ -0,0 +1,49 @@
+heat_template_version: 2014-10-16
+
+description: >
+ This is first boot configuration for development purposes. It allows
+ overriding contents of the deployed images via rsync before
+ configuration (e.g. Puppet) starts, speeding up the feedback loop
+ between making a change and seeing it applied.
+
+ To prepare the host, put something like this to /etc/rsyncd.conf:
+
+ [overcloudsync]
+ path = /root/overcloudsync
+ comment = overcloud pre-puppet customizations
+
+ Then run `rsync --daemon`.
+
+parameters:
+ dev_rsync_host:
+ type: string
+ default: 192.168.122.1
+ description: Host to sync contents from via rsync
+ dev_rsync_module:
+ type: string
+ default: overcloudsync
+ description: Name of the module defined in rsyncd.conf on rsync_host
+
+resources:
+ userdata:
+ type: OS::Heat::MultipartMime
+ properties:
+ parts:
+ - config: {get_resource: rsync_config}
+ subtype: 'x-shellscript'
+
+ rsync_config:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ config:
+ str_replace:
+ template: |
+ #!/bin/bash
+ rsync -avr rsync://RSYNC_HOST/RSYNC_MODULE /
+ params:
+ RSYNC_HOST: {get_param: dev_rsync_host}
+ RSYNC_MODULE: {get_param: dev_rsync_module}
+
+outputs:
+ OS::stack_id:
+ value: {get_resource: userdata}