Назад | Перейти на главную страницу

Анзибль не работает стать

Я использую доступную задачу

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