2016-05-22 16 views
1

現在、与えられたタスクに関しては、become_userと呼ばれるオプションを提供し、コンテキスト内のタスクが実行される前にユーザを変更することができます。例えば:ここ作業のための可能なbecome_user

- name: Run Django database migrations 
    django_manage: 
    command: migrate 
    app_path: "{{ project_path }}" 
    settings: "{{ django_settings_file }}" 
    become_user: "{{ project_user }}" 

become_userは唯一のコンテキストでタスクに適用され、become_userも明示的にこれらのタスクに使用されていない限り、この後に実行されているすべての後続のタスクには適用されません。どのように我々は、一連のタスク/後続のタスクの別のユーザーとなるのでしょうか?

注: 私はこれを行う1つの方法を考えることができます。これらの後続のタスクのセットを新しいロールにリファクタリングし、その新しいロールを単一のタスクに適用します(become_userを希望どおりに設定します)。これらのタスクを別の役割に置かずに後続のタスクのためにアクティブなユーザーを変更する他の代替/簡単な方法はありますか?

答えて

3

これはAnsible 2で導入されblocks機能、で行うことができます。

- block: 
    - task 1 
    - task 2 
    - task N 
    become_user: ... 
関連する問題