Solution for exam added.
parent
9905044dad
commit
88fd7ab8e9
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
- hosts: nodepgs
|
||||||
|
become: yes
|
||||||
|
tasks:
|
||||||
|
- import_tasks: tasks/setup_grub.yml
|
||||||
|
vars:
|
||||||
|
grub_timeout: 1
|
||||||
|
- import_tasks: tasks/install_selinux.yml
|
||||||
|
- import_tasks: tasks/setup_raid1_for_postgres.yml
|
||||||
|
- import_tasks: tasks/install_postgres.yml
|
||||||
|
- import_tasks: tasks/setup_weather_db.yml
|
@ -0,0 +1,27 @@
|
|||||||
|
- name: Install gnupg
|
||||||
|
apt:
|
||||||
|
pkg: gnupg
|
||||||
|
|
||||||
|
- name: Install key
|
||||||
|
apt_key:
|
||||||
|
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add postgresql repository into sources list as pgdg file
|
||||||
|
ansible.builtin.apt_repository:
|
||||||
|
repo: "deb http://apt.postgresql.org/pub/repos/apt {{ ansible_distribution_release }}-pgdg main"
|
||||||
|
state: present
|
||||||
|
filename: pgdg
|
||||||
|
|
||||||
|
- name: Install postgre
|
||||||
|
apt:
|
||||||
|
pkg: postgresql-15*
|
||||||
|
register: postgre_installation
|
||||||
|
|
||||||
|
- name: Delete old configuration
|
||||||
|
shell: rm -rf /var/lib/postgresql/*
|
||||||
|
when: postgre_installation.changed
|
||||||
|
|
||||||
|
- name: Init PostgreSQL
|
||||||
|
shell: pg_createcluster 15 main --start
|
||||||
|
when: postgre_installation.changed
|
@ -0,0 +1,20 @@
|
|||||||
|
- name: 'Install SELinux'
|
||||||
|
apt:
|
||||||
|
pkg:
|
||||||
|
- selinux-basics
|
||||||
|
- selinux-policy-default
|
||||||
|
- auditd
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: 'Activate SELinux'
|
||||||
|
shell: selinux-activate
|
||||||
|
when: ansible_selinux.status == "disabled"
|
||||||
|
|
||||||
|
- name: 'Reboot after SElLinux install'
|
||||||
|
reboot:
|
||||||
|
when: ansible_selinux.status == "disabled"
|
||||||
|
|
||||||
|
- name: 'Check SELinux in permissive mode'
|
||||||
|
ansible.posix.selinux:
|
||||||
|
policy: default
|
||||||
|
state: permissive
|
@ -0,0 +1,11 @@
|
|||||||
|
- name: "Get grub timeout value"
|
||||||
|
shell: cat /etc/default/grub | grep GRUB_TIMEOUT | sed 's/GRUB_TIMEOUT=//g'
|
||||||
|
register: current_grub_timeout
|
||||||
|
|
||||||
|
- name: 'Configure grub timeout if not already'
|
||||||
|
shell: sed 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT={{ timeout }}/g' -i /etc/default/grub
|
||||||
|
when: current_grub_timeout.stdout != "{{ grub_timeout }}"
|
||||||
|
|
||||||
|
- name: 'Update grub'
|
||||||
|
shell: update-grub
|
||||||
|
when: current_grub_timeout.stdout != "{{ grub_timeout }}"
|
@ -0,0 +1,59 @@
|
|||||||
|
- name: 'Install mdadm'
|
||||||
|
apt:
|
||||||
|
pkg: mdadm
|
||||||
|
|
||||||
|
- name: 'Check raid 1 has mount point at /var/lib/postgresql'
|
||||||
|
command: /bin/mountpoint -q /var/lib/postgresql/
|
||||||
|
register: raid1_mounted
|
||||||
|
failed_when: False
|
||||||
|
|
||||||
|
- name: 'Configure md raid 1'
|
||||||
|
shell: mdadm --create /dev/md0 --raid-devices=2 --level=1 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi[1,2] --run
|
||||||
|
register: "array_created"
|
||||||
|
when: ansible_facts['devices']['md0'] is undefined and
|
||||||
|
raid1_mounted.rc == 1
|
||||||
|
|
||||||
|
- name: 'Get configuration strings for configured raids'
|
||||||
|
command: "mdadm --detail --scan"
|
||||||
|
register: array_details
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: 'Persist configuration in /etc/mdadm/mdadm.conf '
|
||||||
|
lineinfile:
|
||||||
|
dest: "/etc/mdadm/mdadm.conf"
|
||||||
|
regexp: "^{{ item }}"
|
||||||
|
line: "{{ item }}"
|
||||||
|
state: "present"
|
||||||
|
with_items: '{{ array_details.stdout_lines }}'
|
||||||
|
when: array_created.changed
|
||||||
|
register: updated_mdadm_conf
|
||||||
|
|
||||||
|
- name: 'Updating Initramfs'
|
||||||
|
command: update-initramfs -u
|
||||||
|
when: updated_mdadm_conf is defined and
|
||||||
|
updated_mdadm_conf.changed
|
||||||
|
|
||||||
|
- name: 'Format raid1, ext4 filesystem'
|
||||||
|
community.general.filesystem:
|
||||||
|
fstype: ext4
|
||||||
|
dev: /dev/md0
|
||||||
|
|
||||||
|
- name: 'Update facts about node.'
|
||||||
|
setup:
|
||||||
|
|
||||||
|
- name: 'Create postrgresql folder'
|
||||||
|
file:
|
||||||
|
path: /var/lib/postgresql
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: 'Setup permanent mountpoint /var/lib/postgresql for raid1'
|
||||||
|
ansible.posix.mount:
|
||||||
|
path: /var/lib/postgresql
|
||||||
|
src: UUID={{ ansible_facts['devices']['md0']['links']['uuids'][0] }}
|
||||||
|
fstype: ext4
|
||||||
|
state: present
|
||||||
|
register: permanent_raid1_mount
|
||||||
|
|
||||||
|
- name: reboot
|
||||||
|
reboot:
|
||||||
|
when: permanent_raid1_mount.changed
|
@ -0,0 +1,7 @@
|
|||||||
|
- name: Copy weather.sql
|
||||||
|
copy:
|
||||||
|
src: ./files/weather.sql
|
||||||
|
dest: /tmp/weather.sql
|
||||||
|
|
||||||
|
- name: import wether db to pg
|
||||||
|
shell: sudo -u postgres psql -f /tmp/weather.sql
|
Loading…
Reference in New Issue