Ansible Playbooksにおける「become: yes」の意味と使用方法


Ansible Playbooksで「become: yes」と指定すると、Ansibleが実行するタスクを特権ユーザー(通常はスーパーユーザー)として実行することを意味します。これにより、タスクが実行される際に必要な特権が確保されます。

通常、AnsibleはSSHを介してリモートサーバーに接続し、タスクを実行します。多くの場合、特権ユーザー権限が必要な操作(ファイルの作成、パッケージのインストールなど)が含まれるため、Ansibleはデフォルトでは通常のユーザーとして実行されません。しかし、特権昇格を必要とするタスクを実行するためには、Ansibleに特権ユーザーとして実行するよう指示する必要があります。

具体的な使用方法は、Ansible Playbookのタスクセクション内で「become: yes」と指定します。

例えば、以下のようなPlaybookがあるとします。

---
- name: Example Playbook
  hosts: myserver
  become: yes
  tasks:
    - name: Install package
      yum:
        name: mypackage
        state: present

このPlaybookでは、become: yesが指定されているため、yumモジュールを使用してmypackageパッケージをインストールするタスクが特権ユーザーとして実行されます。

なお、become: yesの代わりにbecome: trueと指定することもできます。

特権昇格を必要とするタスクがある場合は、become: yesを適切に設定することで、Ansible Playbooksを正常に実行することができます。