??????????????
Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 173

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 174

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 175

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 176

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 177

Warning: Cannot modify header information - headers already sent by (output started at /home/mybf1/public_html/mentol.bf1.my/SS1.php:4) in /home/mybf1/public_html/mentol.bf1.my/SS1.php on line 178
σ ίUdac@`sΥddlmZmZmZeZidd6dgd6dd6ZdZd Zdd l Z dd l Z dd l Z dd l m Z dd lmZdd lmZd„Zd„Zd„ZedkrΡeƒnd S(i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatustcoret supported_bysΒ --- module: blockinfile short_description: Insert/update/remove a text block surrounded by marker lines version_added: '2.0' description: - This module will insert/update/remove a block of multi-line text surrounded by customizable marker lines. author: - Yaegashi Takeshi (@yaegashi) options: path: description: - The file to modify. - Before Ansible 2.3 this option was only usable as I(dest), I(destfile) and I(name). type: path required: yes aliases: [ dest, destfile, name ] state: description: - Whether the block should be there or not. type: str choices: [ absent, present ] default: present marker: description: - The marker line template. - C({mark}) will be replaced with the values C(in marker_begin) (default="BEGIN") and C(marker_end) (default="END"). - Using a custom marker without the C({mark}) variable may result in the block being repeatedly inserted on subsequent playbook runs. type: str default: '# {mark} ANSIBLE MANAGED BLOCK' block: description: - The text to insert inside the marker lines. - If it is missing or an empty string, the block will be removed as if C(state) were specified to C(absent). type: str default: '' aliases: [ content ] insertafter: description: - If specified, the block will be inserted after the last match of specified regular expression. - A special value is available; C(EOF) for inserting the block at the end of the file. - If specified regular expression has no matches, C(EOF) will be used instead. type: str choices: [ EOF, '*regex*' ] default: EOF insertbefore: description: - If specified, the block will be inserted before the last match of specified regular expression. - A special value is available; C(BOF) for inserting the block at the beginning of the file. - If specified regular expression has no matches, the block will be inserted at the end of the file. type: str choices: [ BOF, '*regex*' ] create: description: - Create a new file if it does not exist. type: bool default: no backup: description: - Create a backup file including the timestamp information so you can get the original file back if you somehow clobbered it incorrectly. type: bool default: no marker_begin: description: - This will be inserted at C({mark}) in the opening ansible block marker. type: str default: BEGIN version_added: '2.5' marker_end: required: false description: - This will be inserted at C({mark}) in the closing ansible block marker. type: str default: END version_added: '2.5' notes: - This module supports check mode. - When using 'with_*' loops be aware that if you do not set a unique mark the block will be overwritten on each iteration. - As of Ansible 2.3, the I(dest) option has been changed to I(path) as default, but I(dest) still works as well. - Option I(follow) has been removed in Ansible 2.5, because this module modifies the contents of the file so I(follow=no) doesn't make sense. - When more then one block should be handled in one file you must change the I(marker) per task. extends_documentation_fragment: - files - validate sE # Before Ansible 2.3, option 'dest' or 'name' was used instead of 'path' - name: Insert/Update "Match User" configuration block in /etc/ssh/sshd_config blockinfile: path: /etc/ssh/sshd_config block: | Match User ansible-agent PasswordAuthentication no - name: Insert/Update eth0 configuration stanza in /etc/network/interfaces (it might be better to copy files into /etc/network/interfaces.d/) blockinfile: path: /etc/network/interfaces block: | iface eth0 inet static address 192.0.2.23 netmask 255.255.255.0 - name: Insert/Update configuration using a local file and validate it blockinfile: block: "{{ lookup('file', './local/sshd_config') }}" dest: /etc/ssh/sshd_config backup: yes validate: /usr/sbin/sshd -T -f %s - name: Insert/Update HTML surrounded by custom markers after line blockinfile: path: /var/www/html/index.html marker: "" insertafter: "" block: |

Welcome to {{ ansible_hostname }}

Last updated on {{ ansible_date_time.iso8601 }}

- name: Remove HTML as well as surrounding markers blockinfile: path: /var/www/html/index.html marker: "" block: "" - name: Add mappings to /etc/hosts blockinfile: path: /etc/hosts block: | {{ item.ip }} {{ item.name }} marker: "# {mark} ANSIBLE MANAGED BLOCK {{ item.name }}" loop: - { name: host1, ip: 10.10.1.10 } - { name: host2, ip: 10.10.1.11 } - { name: host3, ip: 10.10.1.12 } N(tb(t AnsibleModule(tto_bytesc C`stjd|jƒ\}}tj|dƒ}|j|ƒ|jƒ|jjddƒ}| }|rέd|kr‰|j dd|ƒn|j ||ƒ\}} } |dk}|dkrέ|j dd|| fƒqέn|r|j ||d |jd ƒndS( Ntdirtwbtvalidates%stmsgsvalidate must contain %%s: %sis"failed to validate: rc:%s error:%st unsafe_writes( ttempfiletmkstempttmpdirtostfdopentwritetclosetparamstgettNonet fail_jsont run_commandt atomic_move( tmoduletcontentstpathttmpfdttmpfiletfR tvalidtrctoutterr((sE/usr/lib/python2.7/site-packages/ansible/modules/files/blockinfile.pyt write_changes’s       cC`sZ|j|jƒ}|j|td|ƒrP|r=|d7}nt}|d7}n||fS(Ntdiffs and s,ownership, perms or SE linux context changed(tload_file_common_argumentsRt set_file_attributes_if_differenttFalsetTrue(RtchangedtmessageR(t file_args((sE/usr/lib/python2.7/site-packages/ansible/modules/files/blockinfile.pytcheck_file_attrs·s  cC`sItdtdtdddtddddgƒd tdd d d d dd gƒdtdd d dƒdtdd d dddgƒdtdd ƒdtdd ƒdtddd tƒdtddd tƒdtdd ƒdtdd d dƒdtdd d dƒƒ dddggdtd tƒ}|j}|d}tjj|ƒrh|jd!d"d#d$|ƒntjj |ƒ}|s=|j |dƒs°|jd!d%d#d&|ƒntjj |ƒ}tjj |ƒ r.|j r.ytj |ƒWq.tk r*}|jd#d'||d(|d)fƒq.Xnd}g}n1t|d*ƒ}|jƒ}|jƒ|jƒ}idd+6dd,6d-|d.6d-|d/6} |jr΄|r΄|| d+krntjt| d3d4ƒƒ}n0| d?kr˜tjt| d3d4ƒƒ}nd}tjtd6ƒt|dƒ| ƒ}tjtd6ƒt|dƒ| ƒ}|r;| r;|jjd7ƒrtjd| dƒ} n|g| jƒ|g}ng}d}}xDt|ƒD]6\}}||kry|}n||krX|}qXqXWd||fkrFd}|dk r"x2t|ƒD]$\}}|j|ƒrΓ|}qΓqΓW|dkrt|ƒ}qC| dk rC|d)7}qCq}| dk r7d(}q}t|ƒ}n7||krfg|||d)+ng|||d)+|}||||+|rάtd8ƒj |ƒ}|dksΖ|j!td8ƒƒrβ|td8ƒ7}qβnd}|jrψ|| d,R;tinsertretmarker0tmarker1t blocklinestn0tn1titlinetresultRR-t real_patht attr_difftdifflist((sE/usr/lib/python2.7/site-packages/ansible/modules/files/blockinfile.pytmainΔsπ$!   ,            %%              !        t__main__(t __future__RRRR2t __metaclass__tANSIBLE_METADATAt DOCUMENTATIONtEXAMPLESRdRRtansible.module_utils.sixRtansible.module_utils.basicR tansible.module_utils._textR R'R0Rt__name__(((sE/usr/lib/python2.7/site-packages/ansible/modules/files/blockinfile.pyts"   W4     ›