我正在使用任务
playbook.yml
--- - hosts: servers remote_user: user become: True become_user: user become_method: sudo gather_facts: no tasks: - name: ┆ ┆ copy: ┆ ┆ ┆ src: editProxy.sh ┆ ┆ ┆ dest: /tmp/editProxy.sh ┆ ┆ ┆ mode: 0755 ┆ - name: run edit proxy settings for apt ┆ ┆ command: /tmp/editProxy.sh
editProxy.sh
#!/bin/bash if grep -q "old_proxy" /etc/apt/apt.conf; then sed -i 's/old_proxy/new_proxy/g' /etc/apt/apt.conf; fi
运行playbook ansible-playbook palybook.yml –extra-vars ='ansible_become_pass = passwd
脚本复制到服务器,并不返回错误
改变了:[10.1.1.1]
但是,服务器上的更改不会发生,如果您在服务器上手动运行脚本,则会发生更改。 可能是什么问题呢
而不是上传一个脚本,并执行它来运行sed来replaceconfiguration文件中的string,考虑使用Ansible原生replace模块 ? 比如说:
- name: Modify proxy settings for apt replace: path: /etc/apt/apt.conf regexp: 'old_proxy' replace: 'new_proxy' backup: yes