Ansible Playbook keeps adding ^M to my files

2019-08-23 21:36发布

I have the below ansible playbook where i am identifying a string in a file and replacing it with another

---
- name: Ansible Playbook
  hosts: webserver1
  remote_user: user45

  tasks:
  - name: Replacing content with other
    lineinfile:
     path: /home/user45/run.sh
     regexp: '^(.*)DEBUG=(.*)$'
     line: 'DEBUG=ON'

the above works, but it adds ^M to the end of every other line in that file and every blank line

From what I have read online this normally occurs when you copy and paste from Windows to Linux but i typed this out manually so i am kind of stumped

Playbook is running on Linux Redhat 7

2条回答
甜甜的少女心
2楼-- · 2019-08-23 22:00

For whatever reason lineinfile was adding the ^M .. If I change it to use replace module it does not add the ^M bits

---
- name: Ansible Playbook
  hosts: webserver1
  remote_user: user45

  tasks:
  - name: Replacing content with other
    replace:
     dest: /home/user45/run.sh
     regexp: 'DEBUG=.*'
     line: 'DEBUG=ON'
查看更多
神经病院院长
3楼-- · 2019-08-23 22:22

Please verify your script "/home/user45/run.sh".Looks like carriage-return character exist in there.

查看更多
登录 后发表回答