summaryrefslogtreecommitdiff
path: root/cloudinit/config/cc_write_files.py
diff options
context:
space:
mode:
authorScott Moser <smoser@brickies.net>2016-11-04 13:46:09 -0400
committerScott Moser <smoser@brickies.net>2016-11-04 13:46:09 -0400
commitb380e16183446f2e39f47a3c0804d2081714acb2 (patch)
treea5e05b4a22553769d6eaa7e5fa93e3401a758b2b /cloudinit/config/cc_write_files.py
parent882b22e024733e17757fdbe36ba2a3672c6ebe06 (diff)
parenta1cdebdea65ccd827060c823146992bba9debe19 (diff)
downloadvyos-cloud-init-b380e16183446f2e39f47a3c0804d2081714acb2.tar.gz
vyos-cloud-init-b380e16183446f2e39f47a3c0804d2081714acb2.zip
merge from master at 0.7.8-34-ga1cdebd
Diffstat (limited to 'cloudinit/config/cc_write_files.py')
-rw-r--r--cloudinit/config/cc_write_files.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/cloudinit/config/cc_write_files.py b/cloudinit/config/cc_write_files.py
index b1096b9b..b5956bda 100644
--- a/cloudinit/config/cc_write_files.py
+++ b/cloudinit/config/cc_write_files.py
@@ -16,6 +16,48 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+"""
+Write Files
+-----------
+**Summary:** write arbitrary files
+
+Write out arbitrary content to files, optionally setting permissions. Content
+can be specified in plain text or binary. Data encoded with either base64 or
+binary gzip data can be specified and will be decoded before being written.
+
+.. note::
+ if multiline data is provided, care should be taken to ensure that it
+ follows yaml formatting standargs. to specify binary data, use the yaml
+ option ``!!binary``
+
+**Internal name:** ``cc_write_files``
+
+**Module frequency:** per instance
+
+**Supported distros:** all
+
+**Config keys**::
+
+ write_files:
+ - encoding: b64
+ content: CiMgVGhpcyBmaWxlIGNvbnRyb2xzIHRoZSBzdGF0ZSBvZiBTRUxpbnV4...
+ owner: root:root
+ path: /etc/sysconfig/selinux
+ permissions: '0644'
+ - content: |
+ # My new /etc/sysconfig/samba file
+
+ SMDBOPTIONS="-D"
+ path: /etc/sysconfig/samba
+ - content: !!binary |
+ f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAwARAAAAAAABAAAAAAAAAAJAVAAAAAA
+ AEAAHgAdAAYAAAAFAAAAQAAAAAAAAABAAEAAAAAAAEAAQAAAAAAAwAEAAAAAAA
+ AAAAAAAAAwAAAAQAAAAAAgAAAAAAAAACQAAAAAAAAAJAAAAAAAAcAAAAAAAAAB
+ ...
+ path: /bin/arch
+ permissions: '0555'
+"""
+
import base64
import os
import six