Hi all, I have a playbook used for setting up new servers here, that among other things, ensures both NTP and NIS (yes, we still use NIS here...) are installed and are running. The problem I am seeing is that when the playbook executes the notify action for restarting the ntpd service, it is failing because the 'ntp' user is no longer in /etc/passwd. I believe the problem is occurring when I run tasks in the playbook that call the 'lineinfile' module to ensure I have a certain entry needed for NIS logins at the bottom of /etc/passwd, which seems to be overwriting the then-last-line which is the 'ntp' user one.
Here is the tasks that make sure NTPD is installed and running... [...] - name: DEBFAM | Ensure NTP package is installed apt: pkg=ntp state=present tags: ntp - name: DEBFAM | Ensure NTP configured correctly template: src=ntp.conf.j2 dest=/etc/ntp.conf notify: - restart deb-ntpd tags: ntp - name: DEBFAM | Ensure NTP is running and enabled service: name=ntp state=running enabled=yes tags: ntp [...] Right after these steps are run, I can cat /etc/password and notice that the 'ntp' user entry is there, and happens to be the last entry... [...] rtkit:x:116:124:RealtimeKit,,,:/proc:/bin/false saned:x:117:125::/home/saned:/bin/false whoopsie:x:118:126::/nonexistent:/bin/false speech-dispatcher:x:119:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh hplip:x:120:7:HPLIP system user,,,:/var/run/hplip:/bin/false ntp:x:121:127::/home/ntp:/bin/false Then the playbook runs the tasks I have set up to ensure NIS is installed and running... [...] - name: DEBFAM | Ensure NIS package is installed apt: pkg=nis tags: nis - name: DEBFAM | Ensure /etc/yp.conf configured correctly for NIS template: src=yp.conf.j2 dest=/etc/yp.conf notify: - restart nis tags: nis - name: DEBFAM | Ensure /etc/defaultdomain configured correctly for NIS template: src=etc-defaultdomain.j2 dest=/etc/defaultdomain notify: - restart nis tags: nis - name: DEBFAM | Ensure /etc/nsswitch.conf configured correctly for NIS template: src=nsswitch.conf.j2 dest=/etc/nsswitch.conf tags: nis - name: DEBFAM | Erase old /etc/passwd entry for NIS users lineinfile: dest=/etc/passwd regexp='::::::+' state=absent tags: nis - name: DEBFAM | Erase old /etc/shadow entry for NIS users lineinfile: dest=/etc/shadow regexp='::::::::+' state=absent tags: nis - name: DEBFAM | Ensure NIS is running and enabled service: name=ypbind state=restarted enabled=yes notify: - restart autofs tags: nis - name: DEBFAM | Ensure /etc/passwd has correct entry for NIS users lineinfile: dest=/etc/passwd regexp='' insertafter=EOF line='::::::+' notify: - restart nis tags: nis - name: DEBFAM | Ensure /etc/shadow has correct entry for NIS users lineinfile: dest=/etc/shadow regexp='' insertafter=EOF line='::::::::+' notify: - restart nis tags: nis [...] (I'm running the lineinfile module once on /etc/passwd and /etc/shadow to remove any old existing entries for the '+::::...' patterns, and then running them again on those files to ensure they are present and at the end of those respective files.) However, when the playbook is ending and running the accumulated notifies, when it hits the 'restart deb-ntpd' action, this fails, complaining that the 'ntp' user is not there -- NOTIFIED: [common | restart deb-ntpd] ***************************************** failed: [dhcp-207-150] => {"failed": true} msg: * Stopping NTP server ntpd ...done. * Starting NTP server ntpd * user "ntp" does not exist FATAL: all hosts have already failed -- aborting If I then cat /etc/passwd, I notice that the entry for the 'ntp' user is gone, and seemingly overwritten by the NIS entry: [...] rtkit:x:116:124:RealtimeKit,,,:/proc:/bin/false saned:x:117:125::/home/saned:/bin/false whoopsie:x:118:126::/nonexistent:/bin/false speech-dispatcher:x:119:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh hplip:x:120:7:HPLIP system user,,,:/var/run/hplip:/bin/false ::::::+ This has happened a number of times to me, enough that I believe I'm hitting a bug (or am using the 'lineinfile' module incorrectly somehow??) so I thought I'd post it to this list and ask for help with debugging this.... Thanks, Will -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/e5eada51-a098-4e46-b277-c1144ce74829%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.