2017-06-29 1 views
0

Ich habe ein Playbook geschrieben, die gut funktioniert, ich freue mich nur auf die Zeichenfolge in der Konfigurationsdatei ersetzen, dh /opt/collectd/etc/collectd.conf die ich in meinem Textbuch erwähnt, genau das, was ich erreichen müssen Sie wie folgt vor:Ansible Playbook, um den Standard Hostnamen zu tatsächlichen Hostnamen auf dem Remote-Host von vorkompilierten Konfig zu ersetzen

1) Meine /opt/collectd/etc/collectd.conf Datei wie unten voreingestellte Konfiguration hat, wo ich brauche & ersetzen die #Hostname "vl-karn01" chnage mit remote hostname, wo es in der unteren case installiert wird, indem es es durch Hostname "vl-karn" ersetzt, folglich iter das Hash-Zeichen entfernt und auch den hostnamen ersetzt.

############################################################################## 
# Global                  # 
#----------------------------------------------------------------------------# 
# Global settings for the daemon.           # 
############################################################################## 

#Hostname "vl-karn01" 
#FQDNLookup true 
#BaseDir  "${prefix}/var/lib/collectd" 
#PIDFile  "${prefix}/var/run/collectd.pid" 
#PluginDir "${exec_prefix}/lib/collectd" 
#TypesDB  "/opt/collectd/share/collectd/types.db" 
BaseDir "/var/lib/collectd" 
PIDFile "/var/run/collectd.pid" 
# Prefix "collectd.unix." 

2) Similarliy für # Prefix "collectd.unix." mit Prefix "collectd.gfpoll.

3) An dieser Stelle i manuell die Hostnamen in meinem playboook für jede Remote-Host gebe, wo es das Textbuch replace Modul läuft ...

--- 
- name: Playbook to Install CollectD 
    hosts: vm-karn 
    gather_facts: False 
    remote_user: root 
    become: true 
    tasks: 
    - name: Downloading collectd 
    get_url: 
     url="http://spot-dc/collectd-5.7.2.tar.gz" 
     dest="/opt/" 

    - name: Extracting collectd archive 
    unarchive: 
     src="/opt/collectd-5.7.2.tar.gz" 
     dest="/opt/" 
     remote_src=True 

    - name: Creating soft link to collectd Dir 
    file: 
     src: "/opt/collectd-5.7.2" 
     dest: "/opt/collectd" 
     state: link 
     owner: karn 
     group: ansible 

    - name: Replacing hostname entry 
    replace: 
     regexp: '#Hostname "vl-karn01"' 
     replace: 'Hostname "vm-karn"' 
     dest: /opt/collectd/etc/collectd.conf 
     backup: yes 

    - name: Replacing Prefix pattern 
    replace: 
     regexp: '# Prefix "collectd.unix."' 
     replace: ' Prefix "collectd.gfpoll."' 
     dest: /opt/collectd/etc/collectd.conf 

    - name: Copy the collectd Daemon to init .. 
    copy: 
     src: "/opt/collectd/startup/collectd" 
     dest: "/etc/init.d/" 
     remote_src: True 
     mode: 0755 
     owner: root 
     group: root 

    - name: starting collectd Service 
    service: 
     name: collectd 
     state: started 
     enabled: yes 
+0

Was machen Sie manuell und wann? – techraf

+0

ersetzt Hostname in meinem Fall 'vm-karn' wird neuer Name ersetzt' regexp: '#Hostname "vl-karn01"' ' – rockypy17

+0

Nein, Sie haben nichts klarer gemacht. – techraf

Antwort

1

Hier ist eine Aufgabe, die die Hostnamen in der Konfigurationsdatei mit dem aktuellen ersetzen:

- name: Replacing hostname entry 
    lineinfile: 
    regexp: Hostname 
    line: 'Hostname "{{ ansible_hostname }}"' 
    dest: /opt/collectd/etc/collectd.conf 
    backup: yes 
+0

Ich habe keine Ahnung, was du meinst. Und ich habe keine Ahnung, warum du das unter der Antwort geschrieben hast, ich sehe keine Beziehung. – techraf

Verwandte Themen