2015-04-30 15 views
13

Tôi đang cố gắng chạy một sổ tay cực kỳ đơn giản để kiểm tra thiết lập Ansible mới.Ansible 1.9.1 'trở thành' và vấn đề sudo

Khi sử dụng các tùy chọn 'mới' Ansible Privilege leo thang config trong tập tin ansible.cfg tôi:

[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 

tôi nhận được lỗi sau:

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

FATAL: all hosts have already failed -- aborting 

PlayBook cũng rất đơn giản:

# 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 

Tôi không chắc chắn nếu có điều gì đó bị hỏng trong Ansible 1.9.1 hoặc nếu tôi đang làm hing sai. Chắc chắn module 'lệnh' trong Ansible cho phép chạy các lệnh như sudo.

Trả lời

0

Tôi nghĩ bạn nên sử dụng chỉ thị sudo trong phần lưu trữ để các tác vụ tiếp theo có thể chạy với đặc quyền sudo trừ khi bạn chỉ định rõ ràng sudo:no trong một tác vụ.

Đây là sách bài hát của bạn mà tôi đã sửa đổi để sử dụng chỉ thị sudo.


# 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

Từ những gì tôi đọc nó liên quan đến việc chạy Ansible trên máy chủ RHEL 6 và phiên bản OpenSSH cũ không hỗ trợ ControlPersist. Tôi vẫn đang điều tra. Tôi sẽ thử điều này vào ngày mai. Có vẻ như có các tùy chọn cấu hình sudo không được chấp nhận trong Ansible 1.9.0 trở lên. – ilium007

+0

Hóa ra chúng ta có OpenSSL được vá bằng tính năng ControlPersist. – ilium007

+0

Câu hỏi liên quan đến cú pháp 'mới' Ansible 'trở thành'. Các sudo cũ: có 'hoạt động tốt. – ilium007

26

Vấn đề là có cấu hình; Tôi cũng lấy it làm ví dụ và gặp vấn đề tương tự. Sau khi chơi một lúc tôi nhận thấy rằng các công việc sau:

1) phản sudo:

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

2) mới become

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

3) sử dụng ansible.cfg:

[privilege_escalation] 
become = yes 
become_method = sudo 

và sau đó trong một playbook:

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

kể từ khi bạn "trở thành" tstuser01 (không phải là một gốc như tôi), hãy chơi một chút, có lẽ tên người dùng không nên được trích dẫn quá:

become_user = tstuser01 

ít nhất đây là cách tôi xác định REMOTE_USER Trong ansible.cfg và nó hoạt động ... Vấn đề của tôi đã được giải quyết, hy vọng bạn cũng có thể xem được

+2

Vấn đề chắc chắn là dấu ngoặc kép trên các tùy chọn trở thành người dùng và trở thành_method trong ansible.cfg. Ví dụ rpm không chính xác chứa các dấu ngoặc kép; loại bỏ các dấu ngoặc kép khiến nó hoạt động. – Jason

+0

Tôi đã sử dụng điều này "trở thành: có trở thành người dùng: root trở thành_method: sudo" Nhưng vẫn cho thấy cảnh báo không dùng nữa gây phiền nhiễu ... –

Các vấn đề liên quan