2015-04-30 33 views
13

Yeni Ansible kurulumunu test etmek için son derece basit bir oyun kitabı çalıştırmaya çalışıyorum. Benim ansible.cfg dosyasında 'yeni' yanıtlayıcı 'Ayrıcalık Escalation yapılandırma seçeneklerini kullanarak Ansible 1.9.1 'oldum' ve sudo issue

:

[defaults] 

host_key_checking=false 

log_path=./logs/ansible.log 
executable=/bin/bash 

#callback_plugins=./lib/callback_plugins 

###### 

[privilege_escalation] 
become=True 
become_method='sudo' 
become_user='tstuser01' 
become_ask_pass=False 

[ssh_connection] 
scp_if_ssh=True 

aşağıdaki hata alıyorum:

fatal: [webserver1.local] => Internal Error: this module does not support running commands via 'sudo' 

FATAL: all hosts have already failed -- aborting 

oyun kitabı da çok basittir:

# Checks the hosts provisioned by midrange 
--- 
- name: Test su connecting as current user 
    hosts: all 
    gather_facts: no 
    tasks: 
    - name: "sudo to configued user -- tstuser01" 
    #action: ping 
    command: /usr/bin/whoami 

Ansible 1.9.1'de bozuk bir şey olup olmadığından emin değilim ya da birşeyler yapıyorsam Hing yanlış. Elbette Ansible'daki 'komut' modülü, komutları sudo olarak çalıştırmaya izin verir.

cevap

0

sudo:no bir görevde açıkça belirtilmedikçe, sonraki görevlerin sudo ayrıcalıklarıyla çalışabilmesi için ana bilgisayarlarda sudo yönergesini kullanmanız gerektiğini düşünüyorum.

sudo yönergesini kullanmak üzere değiştirdiğim oyun kitabınız.


# Checks the hosts provisioned by midrange 
--- 
- hosts: all 
    sudo: yes 
    gather_facts: no 
    tasks: 
    - name: "sudo to configued user -- tstuser01" 
     command: /usr/bin/whoami 
+0

Bunu okuduğumdan, bir RHEL 6 ana bilgisayarında Ansible'ı çalıştırmaya ve ControlPersist'i desteklemeyen eski bir OpenSSH sürümüne ilişkindir. Hala araştırıyorum. Ancak bunu yarın deneyeceğim. Ansible 1.9.0 ve üzerinde önerilmeyen sudo yapılandırma seçenekleri var gibi görünüyor. – ilium007

+0

Görünüşe göre, ControlPersist özelliği ile OpenSSL düzeltme eklenmiştir. – ilium007

+0

'Yeni' Ansible 'ile ilgili soru' sözdizimi 'olur. Yaşlı 'sudo: evet' iyi çalışıyor. – ilium007

26

Sorun yapılandırma ile; Örnek olarak it'u da aldım ve aynı problemi aldım.

[privilege_escalation] 
become = yes 
become_method = sudo 
: ansible.cfg kullanarak

--- 
- hosts: all 
    sudo: yes 
    gather_facts: no 
    tasks: 
    - name: "sudo to root" 
    command: /usr/bin/whoami 

2) yeni become

--- 
- hosts: all 
    become: yes 
    become_method: sudo 
    gather_facts: no 
    tasks: 
    - name: "sudo to root" 
    command: /usr/bin/whoami 

3):

1) sudo kaldırılmış

: süre oynadıktan sonra aşağıdaki işleri fark

ve ardından bir oynatma kitabında:

--- 
- hosts: all 
    gather_facts: no 
    tasks: 
    - name: "sudo to root" 
    command: /usr/bin/whoami 

Eğer tstuser01 (değil benim gibi bir kök), biraz oynamak lütfen "haline" çünkü muhtemelen kullanıcı adı çok alıntı olmamalı:

become_user = tstuser01 

en azından bu ben REMOTE_USER tanımlamak yoludur ansible.cfg içinde ve çalışıyor ... Sorunum çözüldü, umarım siz de

+2

Sorun, ansible.cfg dosyasındaki be_user ve become_method seçeneklerinin tırnak işaretleridir. Rpm örneği yanlış tırnak işaretleri içerir; Tırnakların çıkarılması çalışmasına sebep olur. – Jason

+0

Bunu "kullanıyorum: evet: hale getirildi: root oldu_method: sudo" Ama yine de bu can sıkıcı dışlama uyarısını göster ... –