mirror of
https://github.com/ZwareBear/JFrog-Cloud-Installers.git
synced 2026-01-21 12:06:56 -06:00
Added ARM, AWS templates and pipelines.
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
---
|
||||
- name: install python2 psycopg2
|
||||
apt:
|
||||
name: python-psycopg2
|
||||
update_cache: yes
|
||||
become: yes
|
||||
|
||||
- name: install python3 psycopg2
|
||||
apt:
|
||||
name: python3-psycopg2
|
||||
update_cache: yes
|
||||
become: yes
|
||||
|
||||
- name: add postgres apt key
|
||||
apt_key:
|
||||
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
||||
id: "0x7FCC7D46ACCC4CF8"
|
||||
state: present
|
||||
become: yes
|
||||
|
||||
- name: register APT repository
|
||||
apt_repository:
|
||||
repo: deb http://apt.postgresql.org/pub/repos/apt/ {{ ansible_distribution_release }}-pgdg main
|
||||
state: present
|
||||
filename: pgdg
|
||||
become: yes
|
||||
|
||||
- name: install postgres packages
|
||||
apt:
|
||||
name:
|
||||
- postgresql-{{ postgres_server_version }}
|
||||
- postgresql-server-dev-{{ postgres_server_version }}
|
||||
- postgresql-contrib-{{ postgres_server_version }}
|
||||
state: present
|
||||
become: yes
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
|
||||
- name: install EPEL repository
|
||||
yum: name=epel-release state=present
|
||||
when: > # not for Fedora
|
||||
ansible_distribution == 'CentOS' or
|
||||
ansible_distribution == 'Red Hat Enterprise Linux'
|
||||
become: yes
|
||||
|
||||
- name: install python2 psycopg2
|
||||
yum:
|
||||
name:
|
||||
- python-psycopg2
|
||||
- sudo
|
||||
- wget
|
||||
- perl
|
||||
state: present
|
||||
|
||||
- name: install python3 psycopg2
|
||||
yum:
|
||||
name:
|
||||
- python3-psycopg2
|
||||
- sudo
|
||||
- wget
|
||||
- perl
|
||||
state: present
|
||||
|
||||
- name: fixup some locale issues
|
||||
lineinfile:
|
||||
dest: /etc/default/locale
|
||||
line: 'LANGUAGE="{{ item }}"'
|
||||
state: present
|
||||
create: yes
|
||||
loop:
|
||||
- 'en_US:en'
|
||||
- 'en_us.UTF-8'
|
||||
|
||||
- name: get latest version
|
||||
vars:
|
||||
base: http://download.postgresql.org/pub/repos/yum
|
||||
ver: "{{ ansible_distribution_version }}"
|
||||
shell: |
|
||||
set -eo pipefail
|
||||
wget -O - {{ base }}/{{ postgres_server_version }}/redhat/rhel-{{ ver }}-x86_64/ 2>/dev/null | \
|
||||
grep 'pgdg-redhat' | \
|
||||
perl -pe 's/^.*rpm">//g' | \
|
||||
perl -pe 's/<\/a>.*//g' | \
|
||||
tail -n 1
|
||||
args:
|
||||
executable: /bin/bash
|
||||
changed_when: false
|
||||
check_mode: false
|
||||
register: latest_version
|
||||
tags: [skip_ansible_lint] # yes, I want wget here
|
||||
|
||||
- name: config postgres repository
|
||||
vars:
|
||||
base: http://download.postgresql.org/pub/repos/yum
|
||||
ver: "{{ ansible_distribution_version }}"
|
||||
yum:
|
||||
name: "{{ base }}/{{ postgres_server_version }}/redhat/rhel-{{ ver }}-x86_64/{{ latest_version.stdout }}"
|
||||
state: present
|
||||
become: yes
|
||||
|
||||
- name: install postgres packages
|
||||
yum:
|
||||
name:
|
||||
- postgresql{{ postgres_server_pkg_version }}-server
|
||||
- postgresql{{ postgres_server_pkg_version }}-contrib
|
||||
- postgresql{{ postgres_server_pkg_version }}-devel
|
||||
state: present
|
||||
become: yes
|
||||
105
Ansible/collection/jfrog/ansible/roles/postgres/tasks/main.yml
Normal file
105
Ansible/collection/jfrog/ansible/roles/postgres/tasks/main.yml
Normal file
@@ -0,0 +1,105 @@
|
||||
---
|
||||
- name: define distribution-specific variables
|
||||
include_vars: "{{ ansible_os_family }}.yml"
|
||||
|
||||
- name: create directory for bind mount if necessary
|
||||
file:
|
||||
path: "{{ postgres_server_bind_mount_var_lib_pgsql_target }}"
|
||||
state: directory
|
||||
become: yes
|
||||
when: postgres_server_bind_mount_var_lib_pgsql
|
||||
|
||||
|
||||
- name: perform bind mount if necessary
|
||||
mount:
|
||||
path: "/var/lib/pgsql"
|
||||
src: "{{ postgres_server_bind_mount_var_lib_pgsql_target }}"
|
||||
opts: bind
|
||||
state: mounted
|
||||
fstype: none
|
||||
become: yes
|
||||
when: postgres_server_bind_mount_var_lib_pgsql
|
||||
|
||||
- name: perform installation
|
||||
include_tasks: "{{ ansible_os_family }}.yml"
|
||||
|
||||
- name: extend path
|
||||
copy:
|
||||
dest: /etc/profile.d/postgres-path.sh
|
||||
mode: a=rx
|
||||
content: "export PATH=$PATH:/usr/pgsql-{{ postgres_server_version }}/bin"
|
||||
become: yes
|
||||
|
||||
- name: initialize PostgreSQL database cluster
|
||||
environment:
|
||||
LC_ALL: "en_US.UTF-8"
|
||||
vars:
|
||||
ansible_become: "{{ postgres_server_initdb_become }}"
|
||||
ansible_become_user: "{{ postgres_server_user }}"
|
||||
command: "{{ postgres_server_cmd_initdb }} {{ postgres_server_data_location }}"
|
||||
args:
|
||||
creates: "{{ postgres_server_data_location }}/PG_VERSION"
|
||||
|
||||
- name: install postgres configuration
|
||||
template:
|
||||
src: "{{ item }}.j2"
|
||||
dest: "{{ postgres_server_config_location }}/{{ item }}"
|
||||
owner: postgres
|
||||
group: postgres
|
||||
mode: u=rw,go=r
|
||||
vars:
|
||||
ansible_become: "{{ postgres_server_initdb_become }}"
|
||||
ansible_become_user: "{{ postgres_server_user }}"
|
||||
loop:
|
||||
- pg_hba.conf
|
||||
- postgresql.conf
|
||||
|
||||
- name: enable postgres service
|
||||
systemd:
|
||||
name: "{{ postgres_server_service_name }}"
|
||||
state: started
|
||||
enabled: yes
|
||||
become: yes
|
||||
|
||||
- name: Hold until Postgresql is up and running
|
||||
wait_for:
|
||||
port: 5432
|
||||
|
||||
- name: Create users
|
||||
become_user: postgres
|
||||
become: yes
|
||||
postgresql_user:
|
||||
name: "{{ item.db_user }}"
|
||||
password: "{{ item.db_password }}"
|
||||
conn_limit: "-1"
|
||||
loop: "{{ db_users|default([]) }}"
|
||||
no_log: true # secret passwords
|
||||
|
||||
- name: Create a database
|
||||
become_user: postgres
|
||||
become: yes
|
||||
postgresql_db:
|
||||
name: "{{ item.db_name }}"
|
||||
owner: "{{ item.db_owner }}"
|
||||
encoding: UTF-8
|
||||
loop: "{{ dbs|default([]) }}"
|
||||
|
||||
- name: Grant privs on db
|
||||
become_user: postgres
|
||||
become: yes
|
||||
postgresql_privs:
|
||||
database: "{{ item.db_name }}"
|
||||
role: "{{ item.db_owner }}"
|
||||
state: present
|
||||
privs: ALL
|
||||
type: database
|
||||
loop: "{{ dbs|default([]) }}"
|
||||
|
||||
- name: restart postgres
|
||||
service:
|
||||
name: "{{ postgres_server_service_name }}"
|
||||
state: restarted
|
||||
become: yes
|
||||
|
||||
- debug:
|
||||
msg: "Restarted postgres service {{ postgres_server_service_name }}"
|
||||
Reference in New Issue
Block a user