Я использую доступную задачу
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 для замены строки в файле конфигурации, рассмотрите возможность использования собственного Ansible заменить модуль? Например, что-то вроде:
- name: Modify proxy settings for apt
replace:
path: /etc/apt/apt.conf
regexp: 'old_proxy'
replace: 'new_proxy'
backup: yes