Instalacija PostgreSQL bazu podataka na ubuntu konteiner Ansible

Ansible playbook:

Instaliramo postgres data bazu preko apt modua
- postgresql instaliramo bazu podataka
- postgresql-contrib sadrži različite module proširenja koji su uključen u PostgreSQL distribuciju.
- libpq-dev biblioteka radi komunikacije s pozadinom baze podataka
- python3-psycopg2 adapter baze podataka za programski jezik Python treba nam da mozemo upravljati sa ansiblom
when: na kraju taska znaci filtriranje hosta u ovom slucaju kontejnera

  tasks:
    - name: install postgres databse
      apt:
        name:
          - postgresql
          - postgresql-contrib
          - libpq-dev
          - python3-psycopg2
        state: present
        update_cache: yes
      when: ansible_facts['hostname'] == 'backend'

Kreiranje usera baze i posavljanje šifre

name: ime usera baze
password: šifra baze
become: yes sudo komada
become_user: standardni admin user baze podataka

    - name: Create DB user
      community.postgresql.postgresql_user:
        state: present
        name: dbUser
        password: dbPassword
      become: yes
      become_user: postgres
      when: ansible_facts['hostname'] == 'backend'

Task za otvaranje porta kontejnera preko kojeg se spajamo na bazu

    - name: Open DB Firewall
      ansible.builtin.ufw:
        rule: allow
        port: '5432'
        proto: tcp
      when: ansible_facts['hostname'] == 'backend'

Postavljanje listen adrese baze podataka

    - name: Set listen address
      community.postgresql.postgresql_set:
        name: listen_addresses
        value: '*'
      become: yes
      become_user: postgres
      register: set
      when: ansible_facts['hostname'] == 'backend'

Restartanje servisa baze
systemd: ansible modul za systemd (kao task manager u windowsima)
state: restarted znaci da restarta
name: postgresql koji servis da restarta

    - name: Restart PQ Service
      systemd:
        state: restarted
        name: postgresql
      when: ansible_facts['hostname'] == 'backend'

Za spajanje pgAdmin pravimo tunel u ssh config fajli tako da dodajemo LocalForward 10001 localhost:5432 i kao host u connectionu pišemo localhost.

nano ~/.ssh/config
Host bk
        Hostname backend.truss
        IdentityFile ~/.ssh/proxmox
        User root
        LocalForward 10001 localhost:5432