2015-12-28 4 views
5

mój loginuser to użytkownik1 i chcę wykonać skrypt z rootem. jak mogę to zrobić. jeśli używam w cmdline, to nie działa tak, jak tojak zdefiniować użytkownika logowania i zostać rootem w playbooku

ansible-playbook main.yaml -i hosts --user=git -k --become-user=root --ask-become-pass --become-method=su 

Proszę mi powiedzieć, jak to zaimplementować.

name: Install and Configure IEM 
hosts: rhel 
ansible_become: yes 
ansible_become_method: su 
ansible_become_user: root 
ansible_become_pass: passw0rd 
tasks: 

- name: Creating masthead file path 
    file: path=/etc/opt/BESClient state=directory 

- name: Creating install directory 
+1

Witaj w SO, proszę być nieco dokładniejszym, gdy zadajesz pytanie: czego próbowałeś, czego się spodziewałeś itp. Zobacz [jak zapytać] (http://stackoverflow.com/help/how- to-ask) – Nehal

Odpowiedz

16

używam:

deploy.yml

- name: Todo something 
    hosts: all 
    become: yes 
    become_user: root 
    become_method: su 

podczas wykonywania PlayBook przekazać hasło jako dodatkowy var.

--extra-vars='ansible_become_pass=password' 
+9

Lepiej korzystaj z flagi '--ask-sta-pass', zamiast podawać hasło przez' --extra-vars', ponieważ przekazanie go przez '--extra-vars' będzie przechowuj swoje hasło w historii (np. '~/.bash_history' w bash). – XtraSimplicity

+1

Możesz przechowywać swoje hasło w skarbcu dla bezpieczeństwa –

2

Od Ansible docs:

  • można ustawić te w playbook jak @ Raul Hugo, z become_user i become_user;
  • alternatywnie można to również zrobić w ekwipunku, który umożliwia ustawienie na hosta lub grupę. Ale wtedy zmienne otrzymują prefiks "ansible_": ansible_become_user, ansible_become_user itd. Dlatego poradnik, który dałeś w swoim pytaniu, nie działa: używał nazw zmiennych, które są używane w inwentarzu.
Powiązane problemy