Added Ansible for Artifactory 7

This commit is contained in:
jefferyfry
2020-04-21 07:19:12 -07:00
parent fac7ef0cc3
commit 4c9ae058a1
63 changed files with 2083 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
---
- name: install ansible-related package
yum:
name:
- python3-psycopg2
- sudo
- wget
state: present
become: True
- name: add postgres apt key
apt_key:
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
id: "0x7FCC7D46ACCC4CF8"
state: present
become: True
- 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: True
- name: install postgres packages
apt:
name:
- postgresql-{{ postgres_server_version }}
- postgresql-server-dev-{{ postgres_server_version }}
- postgresql-contrib-{{ postgres_server_version }}
state: present
become: True

View File

@@ -0,0 +1,64 @@
---
- 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: True
- name: install ansible-related package
yum:
name:
- python-psycopg2
- sudo
- wget
- perl
state: present
become: True
- 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: True
- 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: True

View File

@@ -0,0 +1,107 @@
---
- name: define distribution-specific variables
include_vars: "{{ ansible_os_family }}.yml"
#- name: define postgres version-specific variables
# include_vars: "{{ lookup('first_found', params) }}"
# vars:
# params:
# files:
# - "{{ ansible_os_family }}_pg-{{ postgres_server_version }}.yml"
# - "{{ ansible_os_family }}_pg-default.yml"
# paths:
# - "vars"
# skip: true
# ignore_errors: true
- name: create directory for bind mount if necessary
file:
path: "{{ postgres_server_bind_mount_var_lib_pgsql_target }}"
state: directory
become: true
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: true
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: true
- 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: true
- name: Create artifactory users
become_user: postgres
become: true
postgresql_user:
name: "{{ db_user }}"
password: "{{ db_password }}"
conn_limit: "-1"
no_log: true # secret passwords
- name: Create a artifactory database
become_user: postgres
become: true
postgresql_db:
name: artifactory
owner: "{{ db_user }}"
encoding: UTF-8
- name: Grant privs to artifactory on artifactory db
become_user: postgres
become: true
postgresql_privs:
database: artifactory
role: artifactory
state: present
privs: ALL
type: database
- name: restart postgres
service:
name: "{{ postgres_server_service_name }}"
state: restarted
become: true