Add all files needed to bring up VM and run agaric.com locally
This commit is contained in:
parent
52c8b60bac
commit
4d2bc0ee24
742 changed files with 24037 additions and 0 deletions
2
box/provisioning/roles/geerlingguy.postgresql/.gitignore
vendored
Normal file
2
box/provisioning/roles/geerlingguy.postgresql/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*.retry
|
||||
tests/test.sh
|
45
box/provisioning/roles/geerlingguy.postgresql/.travis.yml
Normal file
45
box/provisioning/roles/geerlingguy.postgresql/.travis.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
services: docker
|
||||
|
||||
env:
|
||||
- distro: centos7
|
||||
postgresql_bin_dir: /usr/bin
|
||||
postgresql_data_dir: /var/lib/pgsql/data
|
||||
- distro: centos6
|
||||
postgresql_bin_dir: /usr/bin
|
||||
postgresql_data_dir: /var/lib/pgsql/data
|
||||
- distro: ubuntu1604
|
||||
postgresql_bin_dir: /usr/lib/postgresql/9.5/bin
|
||||
postgresql_data_dir: /var/lib/postgresql/9.5/main
|
||||
- distro: ubuntu1404
|
||||
postgresql_bin_dir: /usr/lib/postgresql/9.3/bin
|
||||
postgresql_data_dir: /var/lib/postgresql/9.3/main
|
||||
- distro: debian8
|
||||
postgresql_bin_dir: /usr/lib/postgresql/9.4/bin
|
||||
postgresql_data_dir: /var/lib/postgresql/9.4/main
|
||||
- distro: debian9
|
||||
postgresql_bin_dir: /usr/lib/postgresql/9.6/bin
|
||||
postgresql_data_dir: /var/lib/postgresql/9.6/main
|
||||
|
||||
script:
|
||||
# Configure test script so we can run extra tests after playbook is run.
|
||||
- export container_id=$(date +%s)
|
||||
- export cleanup=false
|
||||
|
||||
# Download test shim.
|
||||
- wget -O ${PWD}/tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/
|
||||
- chmod +x ${PWD}/tests/test.sh
|
||||
|
||||
# Run tests.
|
||||
- ${PWD}/tests/test.sh
|
||||
|
||||
# Check PostgreSQL status.
|
||||
- 'docker exec -u postgres ${container_id} ${postgresql_bin_dir}/pg_ctl -D ${postgresql_data_dir} status'
|
||||
|
||||
after_failure:
|
||||
# Check what happened on systemd systems.
|
||||
- 'docker exec --tty ${container_id} env TERM=xterm systemctl -l status postgresql.service'
|
||||
- 'docker exec --tty ${container_id} env TERM=xterm journalctl -xe --no-pager'
|
||||
|
||||
notifications:
|
||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
20
box/provisioning/roles/geerlingguy.postgresql/LICENSE
Normal file
20
box/provisioning/roles/geerlingguy.postgresql/LICENSE
Normal file
|
@ -0,0 +1,20 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Jeff Geerling
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
134
box/provisioning/roles/geerlingguy.postgresql/README.md
Normal file
134
box/provisioning/roles/geerlingguy.postgresql/README.md
Normal file
|
@ -0,0 +1,134 @@
|
|||
# Ansible Role: PostgreSQL
|
||||
|
||||
[](https://travis-ci.org/geerlingguy/ansible-role-postgresql)
|
||||
|
||||
Installs and configures PostgreSQL server on RHEL/CentOS or Debian/Ubuntu servers.
|
||||
|
||||
## Requirements
|
||||
|
||||
No special requirements; note that this role requires root access, so either run it in a playbook with a global `become: yes`, or invoke the role in your playbook like:
|
||||
|
||||
- hosts: database
|
||||
roles:
|
||||
- role: geerlingguy.postgresql
|
||||
become: yes
|
||||
|
||||
## Role Variables
|
||||
|
||||
Available variables are listed below, along with default values (see `defaults/main.yml`):
|
||||
|
||||
postgresql_enablerepo: ""
|
||||
|
||||
(RHEL/CentOS only) You can set a repo to use for the PostgreSQL installation by passing it in here.
|
||||
|
||||
postgresql_python_library: python-psycopg2
|
||||
|
||||
Library used by Ansible to communicate with PostgreSQL. If you are using Python 3 (e.g. set via `ansible_python_interpreter`), you should change this to `python3-psycopg2`.
|
||||
|
||||
postgresql_user: postgres
|
||||
postgresql_group: postgres
|
||||
|
||||
The user and group under which PostgreSQL will run.
|
||||
|
||||
postgresql_unix_socket_directories:
|
||||
- /var/run/postgresql
|
||||
|
||||
The directories (usually one, but can be multiple) where PostgreSQL's socket will be created.
|
||||
|
||||
postgresql_global_config_options:
|
||||
- option: unix_socket_directories
|
||||
value: '{{ postgresql_unix_socket_directories | join(",") }}'
|
||||
|
||||
Global configuration options that will be set in `postgresql.conf`. Note that for RHEL/CentOS 6 (or very old versions of PostgreSQL), you need to at least override this variable and set the `option` to `unix_socket_directory`.
|
||||
|
||||
postgresql_hba_entries:
|
||||
- { type: local, database: all, user: postgres, auth_method: peer }
|
||||
- { type: local, database: all, user: all, auth_method: peer }
|
||||
- { type: host, database: all, user: all, address: '127.0.0.1/32', auth_method: md5 }
|
||||
- { type: host, database: all, user: all, address: '::1/128', auth_method: md5 }
|
||||
|
||||
Configure [host based authentication](https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html) entries to be set in the `pg_hba.conf`. Options for entries include:
|
||||
|
||||
- `type` (required)
|
||||
- `database` (required)
|
||||
- `user` (required)
|
||||
- `address` (one of this or the following two are required)
|
||||
- `ip_address`
|
||||
- `ip_mask`
|
||||
- `auth_method` (required)
|
||||
- `auth_options` (optional)
|
||||
|
||||
If overriding, make sure you copy all of the existing entries from `defaults/main.yml` if you need to preserve existing entries.
|
||||
|
||||
postgresql_locales:
|
||||
- 'en_US.UTF-8'
|
||||
|
||||
(Debian/Ubuntu only) Used to generate the locales used by PostgreSQL databases.
|
||||
|
||||
postgresql_databases:
|
||||
- name: exampledb # required; the rest are optional
|
||||
lc_collate: # defaults to 'en_US.UTF-8'
|
||||
lc_ctype: # defaults to 'en_US.UTF-8'
|
||||
encoding: # defaults to 'UTF-8'
|
||||
template: # defaults to 'template0'
|
||||
login_host: # defaults to 'localhost'
|
||||
login_password: # defaults to not set
|
||||
login_user: # defaults to 'postgresql_user'
|
||||
login_unix_socket: # defaults to 1st of postgresql_unix_socket_directories
|
||||
port: # defaults to not set
|
||||
state: # defaults to 'present'
|
||||
|
||||
A list of databases to ensure exist on the server. Only the `name` is required; all other properties are optional.
|
||||
|
||||
postgresql_users:
|
||||
- name: jdoe #required; the rest are optional
|
||||
password: # defaults to not set
|
||||
priv: # defaults to not set
|
||||
role_attr_flags: # defaults to not set
|
||||
db: # defaults to not set
|
||||
login_host: # defaults to 'localhost'
|
||||
login_password: # defaults to not set
|
||||
login_user: # defaults to '{{ postgresql_user }}'
|
||||
login_unix_socket: # defaults to 1st of postgresql_unix_socket_directories
|
||||
port: # defaults to not set
|
||||
state: # defaults to 'present'
|
||||
|
||||
A list of users to ensure exist on the server. Only the `name` is required; all other properties are optional.
|
||||
|
||||
postgresql_version: [OS-specific]
|
||||
postgresql_data_dir: [OS-specific]
|
||||
postgresql_bin_path: [OS-specific]
|
||||
postgresql_config_path: [OS-specific]
|
||||
postgresql_daemon: [OS-specific]
|
||||
postgresql_packages: [OS-specific]
|
||||
|
||||
OS-specific variables that are set by include files in this role's `vars` directory. These shouldn't be overridden unless you're using a verison of PostgreSQL that wasn't installed using system packages.
|
||||
|
||||
## Dependencies
|
||||
|
||||
None.
|
||||
|
||||
## Example Playbook
|
||||
|
||||
- hosts: database
|
||||
become: yes
|
||||
vars_files:
|
||||
- vars/main.yml
|
||||
roles:
|
||||
- geerlingguy.postgresql
|
||||
|
||||
*Inside `vars/main.yml`*:
|
||||
|
||||
postgresql_databases:
|
||||
- name: example_db
|
||||
postgresql_users:
|
||||
- name: example_user
|
||||
password: supersecure
|
||||
|
||||
## License
|
||||
|
||||
MIT / BSD
|
||||
|
||||
## Author Information
|
||||
|
||||
This role was created in 2016 by [Jeff Geerling](https://www.jeffgeerling.com/), author of [Ansible for DevOps](https://www.ansiblefordevops.com/).
|
|
@ -0,0 +1,55 @@
|
|||
---
|
||||
# RHEL/CentOS only. Set a repository to use for PostgreSQL installation.
|
||||
postgresql_enablerepo: ""
|
||||
|
||||
postgresql_python_library: python-psycopg2
|
||||
postgresql_user: postgres
|
||||
postgresql_group: postgres
|
||||
|
||||
postgresql_unix_socket_directories:
|
||||
- /var/run/postgresql
|
||||
|
||||
# Global configuration options that will be set in postgresql.conf.
|
||||
postgresql_global_config_options:
|
||||
- option: unix_socket_directories
|
||||
value: '{{ postgresql_unix_socket_directories | join(",") }}'
|
||||
|
||||
# Host based authentication (hba) entries to be added to the pg_hba.conf. This
|
||||
# variable's defaults reflect the defaults that come with a fresh installation.
|
||||
postgresql_hba_entries:
|
||||
- { type: local, database: all, user: postgres, auth_method: peer }
|
||||
- { type: local, database: all, user: all, auth_method: peer }
|
||||
- { type: host, database: all, user: all, address: '127.0.0.1/32', auth_method: md5 }
|
||||
- { type: host, database: all, user: all, address: '::1/128', auth_method: md5 }
|
||||
|
||||
# Debian only. Used to generate the locales used by PostgreSQL databases.
|
||||
postgresql_locales:
|
||||
- 'en_US.UTF-8'
|
||||
|
||||
# Databases to ensure exist.
|
||||
postgresql_databases: []
|
||||
# - name: exampledb # required; the rest are optional
|
||||
# lc_collate: # defaults to 'en_US.UTF-8'
|
||||
# lc_ctype: # defaults to 'en_US.UTF-8'
|
||||
# encoding: # defaults to 'UTF-8'
|
||||
# template: # defaults to 'template0'
|
||||
# login_host: # defaults to 'localhost'
|
||||
# login_password: # defaults to not set
|
||||
# login_user: # defaults to '{{ postgresql_user }}'
|
||||
# login_unix_socket: # defaults to 1st of postgresql_unix_socket_directories
|
||||
# port: # defaults to not set
|
||||
# state: # defaults to 'present'
|
||||
|
||||
# Users to ensure exist.
|
||||
postgresql_users: []
|
||||
# - name: jdoe #required; the rest are optional
|
||||
# password: # defaults to not set
|
||||
# priv: # defaults to not set
|
||||
# role_attr_flags: # defaults to not set
|
||||
# db: # defaults to not set
|
||||
# login_host: # defaults to 'localhost'
|
||||
# login_password: # defaults to not set
|
||||
# login_user: # defaults to '{{ postgresql_user }}'
|
||||
# login_unix_socket: # defaults to 1st of postgresql_unix_socket_directories
|
||||
# port: # defaults to not set
|
||||
# state: # defaults to 'present'
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
- name: restart postgresql
|
||||
service: "name={{ postgresql_daemon }} state=restarted sleep=5"
|
25
box/provisioning/roles/geerlingguy.postgresql/meta/main.yml
Normal file
25
box/provisioning/roles/geerlingguy.postgresql/meta/main.yml
Normal file
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
dependencies: []
|
||||
|
||||
galaxy_info:
|
||||
author: geerlingguy
|
||||
description: PostgreSQL server for Linux.
|
||||
company: "Midwestern Mac, LLC"
|
||||
license: "license (BSD, MIT)"
|
||||
min_ansible_version: 2.0
|
||||
platforms:
|
||||
- name: EL
|
||||
versions:
|
||||
- 6
|
||||
- 7
|
||||
- name: Ubuntu
|
||||
versions:
|
||||
- all
|
||||
- name: Debian
|
||||
versions:
|
||||
- all
|
||||
galaxy_tags:
|
||||
- database
|
||||
- postgresql
|
||||
- postgres
|
||||
- rdbms
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
- name: Configure global settings.
|
||||
lineinfile:
|
||||
dest: "{{ postgresql_config_path }}/postgresql.conf"
|
||||
regexp: "^#?{{ item.option }}.+$"
|
||||
line: "{{ item.option }} = '{{ item.value }}'"
|
||||
state: "{{ item.state | default('present') }}"
|
||||
with_items: "{{ postgresql_global_config_options }}"
|
||||
notify: restart postgresql
|
||||
|
||||
- name: Configure host based authentication (if entries are configured).
|
||||
template:
|
||||
src: "templates/pg_hba.conf.j2"
|
||||
dest: "{{ postgresql_config_path }}/pg_hba.conf"
|
||||
owner: "{{ postgresql_user }}"
|
||||
group: "{{ postgresql_group }}"
|
||||
mode: 0600
|
||||
notify: restart postgresql
|
||||
when: postgresql_hba_entries
|
||||
|
||||
- name: Ensure PostgreSQL unix socket dirs exist.
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ postgresql_user }}"
|
||||
group: "{{ postgresql_group }}"
|
||||
mode: 02775
|
||||
with_items: "{{ postgresql_unix_socket_directories }}"
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
- name: Ensure PostgreSQL databases are present.
|
||||
postgresql_db:
|
||||
name: "{{ item.name }}"
|
||||
lc_collate: "{{ item.lc_collate | default('en_US.UTF-8') }}"
|
||||
lc_ctype: "{{ item.lc_ctype | default('en_US.UTF-8') }}"
|
||||
encoding: "{{ item.encoding | default('UTF-8') }}"
|
||||
template: "{{ item.template | default('template0') }}"
|
||||
login_host: "{{ item.login_host | default('localhost') }}"
|
||||
login_password: "{{ item.login_password | default(omit) }}"
|
||||
login_user: "{{ item.login_user | default(postgresql_user) }}"
|
||||
login_unix_socket: "{{ item.login_unix_socket | default(postgresql_unix_socket_directories[0]) }}"
|
||||
port: "{{ item.port | default(omit) }}"
|
||||
owner: "{{ item.owner | default(postgresql_user) }}"
|
||||
state: "{{ item.state | default('present') }}"
|
||||
with_items: "{{ postgresql_databases }}"
|
||||
become: yes
|
||||
become_user: "{{ postgresql_user }}"
|
||||
# See: https://github.com/ansible/ansible/issues/16048#issuecomment-229012509
|
||||
vars:
|
||||
ansible_ssh_pipelining: true
|
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
- name: Set PostgreSQL environment variables.
|
||||
template:
|
||||
src: postgres.sh.j2
|
||||
dest: /etc/profile.d/postgres.sh
|
||||
mode: 0644
|
||||
notify: restart postgresql
|
||||
|
||||
- name: Ensure PostgreSQL data directory exists.
|
||||
file:
|
||||
path: "{{ postgresql_data_dir }}"
|
||||
owner: "{{ postgresql_user }}"
|
||||
group: "{{ postgresql_group }}"
|
||||
state: directory
|
||||
mode: 0700
|
||||
|
||||
- name: Check if PostgreSQL database is initialized.
|
||||
stat:
|
||||
path: "{{ postgresql_data_dir }}/PG_VERSION"
|
||||
register: pgdata_dir_version
|
||||
|
||||
- name: Ensure PostgreSQL database is initialized.
|
||||
command: "{{ postgresql_bin_path }}/initdb -D {{ postgresql_data_dir }}"
|
||||
when: not pgdata_dir_version.stat.exists
|
||||
become: yes
|
||||
become_user: "{{ postgresql_user }}"
|
||||
# See: https://github.com/ansible/ansible/issues/16048#issuecomment-229012509
|
||||
vars:
|
||||
ansible_ssh_pipelining: true
|
26
box/provisioning/roles/geerlingguy.postgresql/tasks/main.yml
Normal file
26
box/provisioning/roles/geerlingguy.postgresql/tasks/main.yml
Normal file
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
# Variable configuration.
|
||||
- include: variables.yml
|
||||
static: no
|
||||
|
||||
# Setup/install tasks.
|
||||
- include: setup-RedHat.yml
|
||||
when: ansible_os_family == 'RedHat'
|
||||
static: no
|
||||
|
||||
- include: setup-Debian.yml
|
||||
when: ansible_os_family == 'Debian'
|
||||
static: no
|
||||
|
||||
- include: initialize.yml
|
||||
- include: configure.yml
|
||||
|
||||
- name: Ensure PostgreSQL is started and enabled on boot.
|
||||
service:
|
||||
name: "{{ postgresql_daemon }}"
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
# Configure PostgreSQL.
|
||||
- include: databases.yml
|
||||
- include: users.yml
|
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
- name: Ensure PostgreSQL Python libraries are installed.
|
||||
apt:
|
||||
name: "{{ postgresql_python_library }}"
|
||||
state: installed
|
||||
|
||||
- name: Ensure PostgreSQL packages are installed.
|
||||
apt:
|
||||
name: "{{ item }}"
|
||||
state: installed
|
||||
with_items: "{{ postgresql_packages }}"
|
||||
|
||||
- name: Ensure all configured locales are present.
|
||||
locale_gen: "name={{ item }} state=present"
|
||||
with_items: "{{ postgresql_locales }}"
|
||||
register: locale_gen_result
|
||||
|
||||
- name: Force-restart PostgreSQL after new locales are generated.
|
||||
service:
|
||||
name: "{{ postgresql_daemon }}"
|
||||
state: restarted
|
||||
when: locale_gen_result.changed
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
- name: Ensure PostgreSQL packages are installed.
|
||||
package:
|
||||
name: "{{ item }}"
|
||||
state: installed
|
||||
enablerepo: "{{ postgresql_enablerepo }}"
|
||||
with_items: "{{ postgresql_packages }}"
|
||||
|
||||
- name: Ensure PostgreSQL Python libraries are installed.
|
||||
package:
|
||||
name: "{{ postgresql_python_library }}"
|
||||
state: installed
|
||||
enablerepo: "{{ postgresql_enablerepo }}"
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
- name: Ensure PostgreSQL users are present.
|
||||
postgresql_user:
|
||||
name: "{{ item.name }}"
|
||||
password: "{{ item.password | default(omit) }}"
|
||||
priv: "{{ item.priv | default(omit) }}"
|
||||
role_attr_flags: "{{ item.role_attr_flags | default(omit) }}"
|
||||
db: "{{ item.db | default(omit) }}"
|
||||
login_host: "{{ item.login_host | default('localhost') }}"
|
||||
login_password: "{{ item.login_password | default(omit) }}"
|
||||
login_user: "{{ item.login_user | default(postgresql_user) }}"
|
||||
login_unix_socket: "{{ item.login_unix_socket | default(postgresql_unix_socket_directories[0]) }}"
|
||||
port: "{{ item.port | default(omit) }}"
|
||||
state: "{{ item.state | default('present') }}"
|
||||
with_items: "{{ postgresql_users }}"
|
||||
no_log: true
|
||||
become: yes
|
||||
become_user: "{{ postgresql_user }}"
|
||||
# See: https://github.com/ansible/ansible/issues/16048#issuecomment-229012509
|
||||
vars:
|
||||
ansible_ssh_pipelining: true
|
|
@ -0,0 +1,39 @@
|
|||
---
|
||||
# Variable configuration.
|
||||
- name: Include OS-specific variables (Debian).
|
||||
include_vars: "{{ ansible_distribution }}-{{ ansible_distribution_version.split('.')[0] }}.yml"
|
||||
when: ansible_os_family == 'Debian'
|
||||
|
||||
- name: Include OS-specific variables (RedHat).
|
||||
include_vars: "{{ ansible_os_family }}-{{ ansible_distribution_version.split('.')[0] }}.yml"
|
||||
when: ansible_os_family == 'RedHat'
|
||||
|
||||
- name: Define postgresql_packages.
|
||||
set_fact:
|
||||
postgresql_packages: "{{ __postgresql_packages | list }}"
|
||||
when: postgresql_packages is not defined
|
||||
|
||||
- name: Define postgresql_daemon.
|
||||
set_fact:
|
||||
postgresql_daemon: "{{ __postgresql_daemon }}"
|
||||
when: postgresql_daemon is not defined
|
||||
|
||||
- name: Define postgresql_version.
|
||||
set_fact:
|
||||
postgresql_version: "{{ __postgresql_version }}"
|
||||
when: postgresql_version is not defined
|
||||
|
||||
- name: Define postgresql_data_dir.
|
||||
set_fact:
|
||||
postgresql_data_dir: "{{ __postgresql_data_dir }}"
|
||||
when: postgresql_data_dir is not defined
|
||||
|
||||
- name: Define postgresql_bin_path.
|
||||
set_fact:
|
||||
postgresql_bin_path: "{{ __postgresql_bin_path }}"
|
||||
when: postgresql_bin_path is not defined
|
||||
|
||||
- name: Define postgresql_config_path.
|
||||
set_fact:
|
||||
postgresql_config_path: "{{ __postgresql_config_path }}"
|
||||
when: postgresql_config_path is not defined
|
|
@ -0,0 +1,9 @@
|
|||
{{ ansible_managed | comment }}
|
||||
# PostgreSQL Client Authentication Configuration File
|
||||
# ===================================================
|
||||
#
|
||||
# See: https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
|
||||
|
||||
{% for client in postgresql_hba_entries %}
|
||||
{{ client.type }} {{ client.database }} {{ client.user }} {{ client.address|default('') }} {{ client.ip_address|default('') }} {{ client.ip_mask|default('') }} {{ client.auth_method }} {{ client.auth_options|default("") }}
|
||||
{% endfor %}
|
|
@ -0,0 +1,2 @@
|
|||
export PGDATA={{ postgresql_data_dir }}
|
||||
export PATH=$PATH:{{ postgresql_bin_path }}
|
|
@ -0,0 +1,11 @@
|
|||
# Ansible Role tests
|
||||
|
||||
To run the test playbook(s) in this directory:
|
||||
|
||||
1. Install and start Docker.
|
||||
1. Download the test shim (see .travis.yml file for the URL) into `tests/test.sh`:
|
||||
- `wget -O tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/`
|
||||
1. Make the test shim executable: `chmod +x tests/test.sh`.
|
||||
1. Run (from the role root directory) `distro=[distro] playbook=[playbook] ./tests/test.sh`
|
||||
|
||||
If you don't want the container to be automatically deleted after the test playbook is run, add the following environment variables: `cleanup=false container_id=$(date +%s)`
|
24
box/provisioning/roles/geerlingguy.postgresql/tests/test.yml
Normal file
24
box/provisioning/roles/geerlingguy.postgresql/tests/test.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- hosts: all
|
||||
|
||||
vars:
|
||||
postgresql_databases:
|
||||
- name: example
|
||||
postgresql_users:
|
||||
- name: jdoe
|
||||
|
||||
pre_tasks:
|
||||
- name: Update apt cache.
|
||||
apt: update_cache=yes cache_valid_time=600
|
||||
when: ansible_os_family == 'Debian'
|
||||
|
||||
- name: Set custom variables for old CentOS 6 PostgreSQL install.
|
||||
set_fact:
|
||||
postgresql_hba_entries: []
|
||||
postgresql_global_config_options:
|
||||
- option: unix_socket_directory
|
||||
value: '{{ postgresql_unix_socket_directories[0] }}'
|
||||
when: ansible_os_family == 'RedHat' and ansible_distribution_version.split('.')[0] == '6'
|
||||
|
||||
roles:
|
||||
- role_under_test
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
__postgresql_version: "9.1"
|
||||
__postgresql_data_dir: "/var/lib/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_bin_path: "/usr/lib/postgresql/{{ __postgresql_version }}/bin"
|
||||
__postgresql_config_path: "/etc/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_daemon: postgresql
|
||||
__postgresql_packages:
|
||||
- postgresql
|
||||
- postgresql-contrib
|
||||
- libpq-dev
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
__postgresql_version: "9.4"
|
||||
__postgresql_data_dir: "/var/lib/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_bin_path: "/usr/lib/postgresql/{{ __postgresql_version }}/bin"
|
||||
__postgresql_config_path: "/etc/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_daemon: postgresql
|
||||
__postgresql_packages:
|
||||
- postgresql
|
||||
- postgresql-contrib
|
||||
- libpq-dev
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
__postgresql_version: "9.6"
|
||||
__postgresql_data_dir: "/var/lib/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_bin_path: "/usr/lib/postgresql/{{ __postgresql_version }}/bin"
|
||||
__postgresql_config_path: "/etc/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_daemon: postgresql
|
||||
__postgresql_packages:
|
||||
- postgresql
|
||||
- postgresql-contrib
|
||||
- libpq-dev
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
__postgresql_version: "8.4"
|
||||
__postgresql_data_dir: "/var/lib/pgsql/data"
|
||||
__postgresql_bin_path: "/usr/bin"
|
||||
__postgresql_config_path: "/var/lib/pgsql/data"
|
||||
__postgresql_daemon: postgresql
|
||||
__postgresql_packages:
|
||||
- postgresql
|
||||
- postgresql-server
|
||||
- postgresql-contrib
|
||||
- postgresql-libs
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
__postgresql_version: "9.2"
|
||||
__postgresql_data_dir: "/var/lib/pgsql/data"
|
||||
__postgresql_bin_path: "/usr/bin"
|
||||
__postgresql_config_path: "/var/lib/pgsql/data"
|
||||
__postgresql_daemon: postgresql
|
||||
__postgresql_packages:
|
||||
- postgresql
|
||||
- postgresql-server
|
||||
- postgresql-contrib
|
||||
- postgresql-libs
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
__postgresql_version: "9.3"
|
||||
__postgresql_data_dir: "/var/lib/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_bin_path: "/usr/lib/postgresql/{{ __postgresql_version }}/bin"
|
||||
__postgresql_config_path: "/etc/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_daemon: postgresql
|
||||
__postgresql_packages:
|
||||
- postgresql
|
||||
- postgresql-contrib
|
||||
- libpq-dev
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
__postgresql_version: "9.5"
|
||||
__postgresql_data_dir: "/var/lib/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_bin_path: "/usr/lib/postgresql/{{ __postgresql_version }}/bin"
|
||||
__postgresql_config_path: "/etc/postgresql/{{ __postgresql_version }}/main"
|
||||
__postgresql_daemon: postgresql
|
||||
__postgresql_packages:
|
||||
- postgresql
|
||||
- postgresql-contrib
|
||||
- libpq-dev
|
Loading…
Add table
Add a link
Reference in a new issue