2015-02-11 54 views
0

我無法從遠程shell切換用戶。 另外我怎樣才能將密碼傳遞到遠程shell。如何從遠程shell切換用戶

我試着玩玩書,命令和shell任務。 但它不工作

這是我的代碼

- hosts: test1 
    tasks: 
    - name: Switch user 
     shell: $(echo "{{ su - username }}") 
     shell: $(echo "{{ 'password' }}」) 
+0

請出示你在做什麼,包括錯誤消息 – serverhorror 2015-02-11 07:48:15

+0

一個代碼示例 - 主機:TEST1 任務: - 名稱:切換用戶 殼:$(回聲「{{蘇 - 用戶名}}「) shell:$(echo」{{'password'}}「) – 2015-02-11 10:02:47

回答

0

我的片段下方道歉,當然你不能奇蹟般地運行ansible代碼,但我沒能獲得體面的格式不這個。

你在這裏做了一些事情,不可能不喜歡。我的心情很好,所以我將其分解爲你,在現實中,這是包括在excellent documentation

  • 任務只能有一個動作
  • 每個任務之前獨立的任務運行它

翻譯你做了什麼,以有效ansible語法將發生以下情況:

  1. 你用來嘗試爲exp的語法什麼是{{ ... }}內 - 這將faile
  2. 運行與調用bash -c $(echo "{{ su - username }}")

- name: Run a single action for each Task 
 
    hosts: test1 
 
    tasks: 
 
    - name: Task 1 # fails with 'standard in must be a tty' 
 
     shell: su - nobody 
 
    - name: Task 2 # never executed because 'Task 1' fails 
 
     shell: whoami 
 
     register: whoami_result 
 
    - name: Task 3 # never executed because 'Task 1' fails 
 
     debug: 
 
     msg: "Result: {{ whoami_result }}"

現在對於固定ansible-劇本SSH用戶一個shell:

--- 
 
- name: Run a single action for each Task 
 
    hosts: test1 
 
    tasks: 
 
    - name: Task 1 
 
     sudo: true # use sudo to change roles 
 
     sudo_user: nobody # the target user under which to execute 
 
     shell: whoami 
 
     register: whoami_result 
 
    - name: Task 2 
 
     debug: 
 
     msg: "Result: {{ whoami_result.stdout }}"

$ ansible-playbook -u root test1.yml 
 

 
PLAY [Run a single action for each Task] ************************************** 
 

 
GATHERING FACTS *************************************************************** 
 
ok: [test1] 
 

 
TASK: [Task 1] **************************************************************** 
 
changed: [test1] 
 

 
TASK: [Task 2] **************************************************************** 
 
ok: [test1] => { 
 
    "msg": "Result: nobody" 
 
} 
 

 
PLAY RECAP ******************************************************************** 
 
test1      : ok=3 changed=1 unreachable=0 failed=0

+0

無需指定sudo密碼? – 2015-02-11 12:16:04

+0

您需要對劇本做出正確的調用。 'ansible-playbook --help'會告訴你命令行開關使用 – serverhorror 2015-02-11 13:57:48

+0

「優秀文檔」?不是我迄今爲止的經歷。可能全面不透明。 – CorayThan 2016-01-30 21:16:48