summaryrefslogtreecommitdiffstats
path: root/lib/ansible/modules/template.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/template.py')
-rw-r--r--lib/ansible/modules/template.py111
1 files changed, 111 insertions, 0 deletions
diff --git a/lib/ansible/modules/template.py b/lib/ansible/modules/template.py
new file mode 100644
index 0000000..7ee581a
--- /dev/null
+++ b/lib/ansible/modules/template.py
@@ -0,0 +1,111 @@
+# -*- coding: utf-8 -*-
+
+# Copyright: (c) 2017, Ansible Project
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+# This is a virtual module that is entirely implemented as an action plugin and runs on the controller
+
+from __future__ import absolute_import, division, print_function
+__metaclass__ = type
+
+
+DOCUMENTATION = r'''
+---
+module: template
+version_added: historical
+short_description: Template a file out to a target host
+options:
+ follow:
+ description:
+ - Determine whether symbolic links should be followed.
+ - When set to C(true) symbolic links will be followed, if they exist.
+ - When set to C(false) symbolic links will not be followed.
+ - Previous to Ansible 2.4, this was hardcoded as C(true).
+ type: bool
+ default: no
+ version_added: '2.4'
+notes:
+- For Windows you can use M(ansible.windows.win_template) which uses C(\r\n) as C(newline_sequence) by default.
+- The C(jinja2_native) setting has no effect. Native types are never used in the C(template) module which is by design used for generating text files.
+ For working with templates and utilizing Jinja2 native types see the C(jinja2_native) parameter of the C(template lookup).
+seealso:
+- module: ansible.builtin.copy
+- module: ansible.windows.win_copy
+- module: ansible.windows.win_template
+author:
+- Ansible Core Team
+- Michael DeHaan
+extends_documentation_fragment:
+- action_common_attributes
+- action_common_attributes.flow
+- action_common_attributes.files
+- backup
+- files
+- template_common
+- validate
+attributes:
+ action:
+ support: full
+ async:
+ support: none
+ bypass_host_loop:
+ support: none
+ check_mode:
+ support: full
+ diff_mode:
+ support: full
+ platform:
+ platforms: posix
+ safe_file_operations:
+ support: full
+ vault:
+ support: full
+'''
+
+EXAMPLES = r'''
+- name: Template a file to /etc/file.conf
+ ansible.builtin.template:
+ src: /mytemplates/foo.j2
+ dest: /etc/file.conf
+ owner: bin
+ group: wheel
+ mode: '0644'
+
+- name: Template a file, using symbolic modes (equivalent to 0644)
+ ansible.builtin.template:
+ src: /mytemplates/foo.j2
+ dest: /etc/file.conf
+ owner: bin
+ group: wheel
+ mode: u=rw,g=r,o=r
+
+- name: Copy a version of named.conf that is dependent on the OS. setype obtained by doing ls -Z /etc/named.conf on original file
+ ansible.builtin.template:
+ src: named.conf_{{ ansible_os_family }}.j2
+ dest: /etc/named.conf
+ group: named
+ setype: named_conf_t
+ mode: 0640
+
+- name: Create a DOS-style text file from a template
+ ansible.builtin.template:
+ src: config.ini.j2
+ dest: /share/windows/config.ini
+ newline_sequence: '\r\n'
+
+- name: Copy a new sudoers file into place, after passing validation with visudo
+ ansible.builtin.template:
+ src: /mine/sudoers
+ dest: /etc/sudoers
+ validate: /usr/sbin/visudo -cf %s
+
+- name: Update sshd configuration safely, avoid locking yourself out
+ ansible.builtin.template:
+ src: etc/ssh/sshd_config.j2
+ dest: /etc/ssh/sshd_config
+ owner: root
+ group: root
+ mode: '0600'
+ validate: /usr/sbin/sshd -t -f %s
+ backup: yes
+'''