ansible_user и стал_пользователем не работает - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь подключиться к целевому серверу через пользователя "naresh" и установить apache2 через пользователя "vijay", а пользователь "vijay" является пользователем sudo без пароля, но моя книга воспроизведения все еще не работает.

ansible-playbook ds.yml  -u naresh

cat ds.yml

---
- hosts: all
  gather_facts: no
  tasks:

  - name: install apache2
    command: apt install apache2 -y
    register: abcd
    become: yes
    become_user: vijay


  - debug: var=abcd

Я получаю ошибку ниже


fatal: [52.87.204.142]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python3"}, "changed": true, "cmd": ["apt", "install", "apache2", "-y"], "delta": "0:00:00.007384", "end": "2019-11-06 14:25:58.346627", "msg": "non-zero return code", "rc": 100, "start": "2019-11-06 14:25:58.339243", "stderr": "\nWARNING: apt does not have a stable CLI interface. Use with caution in scripts.\n\nE: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)\nE: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?", "stderr_lines": ["", "WARNING: apt does not have a stable CLI interface. Use with caution in scripts.", "", "E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)", "E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?"], "stdout": "", "stdout_lines": []}

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Простое извлечение из вашего сообщения об ошибке:

Невозможно получить блокировку внешнего интерфейса dpkg (/ var / lib / dpkg / lock-frontend), вы являетесь пользователем root?

Вы подключаетесь как первый пользователь (naresh, без прав администратора), чтобы стать вторым пользователем (vijay, без прав администратора). Это не будет работать, ansible не вызовет никакой другой эскалации.

Вам необходимо:

  1. связаться с пользователем, имеющим полные права sudo (например, похоже, что это "vijay" в вашемcase)
  2. становится пользователем с административными привилегиями (т.е. root в этом случае, который используется по умолчанию при использовании become, если вы не укажете become_user)

И определеннода ! Как указывает @Ash, используйте модуль apt.

0 голосов
/ 06 ноября 2019

Можете ли вы попробовать с ANSIBLE модуля

- name: Install apache httpd  (state=present is optional)
  apt:
    name: apache2
    state: present
  become: yes
  become_user: vijay 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...