postgresql_user

使用 postgresql_xxx 的模組存取 Postgresql 資料庫時,一般會需要切換為 postgres 使用者來進行操作。在 Ansible 可以怎麼去做呢?

在 Ansible 裡,可以用 become_user / become 來處理。

下面用 postgresql_user 來重置 test 使用者的密碼來當作例子,

- name: pd reset database user
  become: yes
  become_method: sudo
  become_user: postgres
  community.postgresql.postgresql_user: 
    db: test
    name: test
    password: ""

說明如下:

  • become: yes ,表示要切換使用者。
  • become_method: sudo,表示要使用 sudo 來切換。
  • become_user: postgres,表示切換過去的使用者名稱是 postgres

下面做一點組合,先建立名稱是 awx 的資料庫,然後再去建立可以操作這個資料庫的 awx 使用者,密碼設定為 redhat

  - name: Create database with name "awx" and specific encoding and locale # settings
    community.postgresql.postgresql_db:
      name: awx
      encoding: UTF-8
      lc_collate: en_US.UTF-8
      lc_ctype: en_US.UTF-8
      template: template0 
    become: yes
    become_method: sudo
    become_user: postgres

  - name: Connect to awx database, create awx user, and grant access to database and products table
    community.postgresql.postgresql_user:
      db: awx
      name: awx
      password: redhat
      priv: ALL
      state: present
    become: yes
    become_method: sudo
    become_user: postgres

看到這邊相信你應該知道怎麼應用這些模組了。

參考資料