Ubuntu 20.04 に Ansible を入れる

 
Ansible 使い始めたら便利だったのでメモ。
まずは Ansible をインストール。

sudo apt update -y
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible

non-root ユーザーでの作業を許可するために ansible.cfg に下記を追加

# /etc/ansible/ansible.cfg
[default]
allow_world_readable_tmpfiles = True
pipelining = True

あとは Playbook を用意する。
例えば Ansible で PostgreSQL のセットアップを自動化するならこう書く。

---
- name: Install PostgreSQL and configure
  hosts: localhost
  become: yes

  tasks:
    - name: Update APT cache
      apt:
        update_cache: yes

    - name: Install PostgreSQL and related tools
      apt:
        name: 
          - postgresql
          - postgresql-contrib
        state: present

    - name: Set PostgreSQL user password
      become: yes
      become_user: postgres
      become_method: sudo
      shell: |
        psql -c "ALTER USER postgres WITH PASSWORD '123456';" # Change password here
        exit

    - name: Add PostgreSQL bin directory to PATH
      lineinfile:
        path: /home/orenomemo/.profile # Replace username here
        line: 'export PATH=$PATH:/usr/lib/postgresql/12/bin'
        owner: orenomemo # Change username here
        state: present
        create: yes
    
    - name: Enable PostgreSQL password login
      postgresql_pg_hba:
        dest: /etc/postgresql/12/main/pg_hba.conf
        contype: local
        users: all
        databases: all
        method: md5
        state: present

    - name: Disable PostgreSQL peer login for postgres 
      postgresql_pg_hba:
        dest: /etc/postgresql/12/main/pg_hba.conf
        contype: local
        users: postgres
        databases: all
        method: peer
        state: absent

Playbook を用意したら実行。

ansible-playbook inst_psql.yml