Страницы

Поиск по вопросам

воскресенье, 7 июля 2019 г.

Ansible как запустить скрип от другого пользователя, если плейбук начат root?

Доброй ночи,
Составляю роль для установки Rust.
Весь плейбук запущен под become_user = root
Игра фейлится после выполнения последнего таска, где нужно запустить скачаный скрипт от пользователя который был до become_user:
iwi.yml
---
- hosts: localhost become: True become_method: su become_user: root roles: - iwi-sys-upgrade-install - iwi-lang-rust
iwi-lang-rast/tasks/main.yml
---
- name: "download rustup-init.sh from https://www.rustup.rs" get_url: url: https://sh.rustup.rs dest: /tmp/rustup-init.sh mode: 0755
- name: "install Rust with /tmp/rustup-init.sh, run by {{ ansible_user_id }}" become: yes become_user: {{ ansible_user_id }} shell: '/tmp/rustup-init.sh -y'
Почемуто выдает синтаксическую ошибку:
ERROR! Syntax Error while loading YAML.
The error appears to have been in '/home/Sharlatan/Projects/prj/iwi/Ansible/roles/iwi-lang-rust/tasks/main.yml': line 11, column 17, but may be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
become: yes become_user: {{ ansible_user_id }} ^ here


Ответ

Кавычки добавьте:
become_user: "{{ ansible_user_id }}"
Подробности в доках. Без " Ansible думает, что { - это словарик.

Комментариев нет:

Отправить комментарий