Setup plays and tasks
This commit is contained in:
		
							
								
								
									
										10
									
								
								plays/lib/certs.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								plays/lib/certs.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Setup lets encrypt certificates
 | 
			
		||||
  shell: "dokku letsencrypt {{ app }}"
 | 
			
		||||
  args:
 | 
			
		||||
    creates: "/home/dokku/{{ app }}/letsencrypt/certs"
 | 
			
		||||
 | 
			
		||||
- name: Setup lets encrypt certificates renew cron job
 | 
			
		||||
  shell: dokku letsencrypt:cron-job --add
 | 
			
		||||
  args:
 | 
			
		||||
    creates: "/home/dokku/{{ app }}/letsencrypt/cron-job"
 | 
			
		||||
@ -1,25 +1,31 @@
 | 
			
		||||
---
 | 
			
		||||
- name: "Create {{ db['type'] }} database"
 | 
			
		||||
 | 
			
		||||
- name: Setup preparatory facts
 | 
			
		||||
  set_fact:
 | 
			
		||||
    db_type: "{{ db['type'] }}"
 | 
			
		||||
    mount_map:
 | 
			
		||||
      mariadb: /var/lib/mysql
 | 
			
		||||
 | 
			
		||||
- name: "Create {{ db_type }} database"
 | 
			
		||||
  no_log: true
 | 
			
		||||
  shell: "
 | 
			
		||||
    dokku
 | 
			
		||||
    {{ db['type'] }}:create
 | 
			
		||||
    {{ db_type }}:create
 | 
			
		||||
    {{ app }}
 | 
			
		||||
    --password {{ db_passwd }}
 | 
			
		||||
    --root-password {{ root_db_passwd }}
 | 
			
		||||
  "
 | 
			
		||||
  args:
 | 
			
		||||
    creates: "/var/lib/dokku/services/{{ db['type'] }}/{{ app }}"
 | 
			
		||||
    creates: "/var/lib/dokku/services/{{ db_type }}/{{ app }}"
 | 
			
		||||
 | 
			
		||||
- name: Link mariadb database to application
 | 
			
		||||
  dokku_service_link:
 | 
			
		||||
    app: keycloak
 | 
			
		||||
    name: keycloak
 | 
			
		||||
    service: mariadb
 | 
			
		||||
    app: "{{ app }}"
 | 
			
		||||
    name: "{{ app }}"
 | 
			
		||||
    service: "{{ db_type }}"
 | 
			
		||||
 | 
			
		||||
- name: Specify mariadb docker volume mounts
 | 
			
		||||
- name: "Specify {{ db_type }} volume mounts"
 | 
			
		||||
  dokku_storage:
 | 
			
		||||
    app: keycloak
 | 
			
		||||
    app: "{{ app }}"
 | 
			
		||||
    mounts:
 | 
			
		||||
      - /var/lib/dokku/services/mariadb/keycloak:/var/lib/mysql
 | 
			
		||||
 | 
			
		||||
      - "/var/lib/dokku/services/{{ db_type }}/{{ app }}:{{ mount_map[db_type] }}"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								plays/lib/debug.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								plays/lib/debug.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Debug all Ansible variables
 | 
			
		||||
  debug:
 | 
			
		||||
    msg: |
 | 
			
		||||
      Module Variables ("vars"):
 | 
			
		||||
      --------------------------------
 | 
			
		||||
      {{ vars | to_nice_json }}
 | 
			
		||||
 | 
			
		||||
      Environment Variables ("environment"):
 | 
			
		||||
      --------------------------------
 | 
			
		||||
      {{ environment | to_nice_json }}
 | 
			
		||||
 | 
			
		||||
      GROUP NAMES Variables ("group_names"):
 | 
			
		||||
      --------------------------------
 | 
			
		||||
      {{ group_names | to_nice_json }}
 | 
			
		||||
 | 
			
		||||
      GROUPS Variables ("groups"):
 | 
			
		||||
      --------------------------------
 | 
			
		||||
      {{ groups | to_nice_json }}
 | 
			
		||||
 | 
			
		||||
      HOST Variables ("hostvars"):
 | 
			
		||||
      --------------------------------
 | 
			
		||||
      {{ hostvars | to_nice_json }}
 | 
			
		||||
  when: debug
 | 
			
		||||
@ -5,3 +5,4 @@
 | 
			
		||||
    domains:
 | 
			
		||||
      - "{{ domain }}"
 | 
			
		||||
    state: present
 | 
			
		||||
  when: domain is defined
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								plays/lib/env.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								plays/lib/env.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Configure the app environment
 | 
			
		||||
  dokku_config:
 | 
			
		||||
    app: "{{ app }}"
 | 
			
		||||
    restart: false
 | 
			
		||||
    config: "{{ env }}"
 | 
			
		||||
  when: env is defined
 | 
			
		||||
							
								
								
									
										7
									
								
								plays/lib/http.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								plays/lib/http.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Set HTTP 80 port proxy
 | 
			
		||||
  dokku_ports:
 | 
			
		||||
    app: "{{ app }}"
 | 
			
		||||
    mappings:
 | 
			
		||||
      - "http:80:{{ port }}"
 | 
			
		||||
    state: present
 | 
			
		||||
							
								
								
									
										7
									
								
								plays/lib/https.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								plays/lib/https.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Set HTTP 443 port
 | 
			
		||||
  dokku_ports:
 | 
			
		||||
    app: "{{ app }}"
 | 
			
		||||
    mappings:
 | 
			
		||||
      - "https:443:{{ port }}"
 | 
			
		||||
    state: present
 | 
			
		||||
							
								
								
									
										7
									
								
								plays/lib/proxy.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								plays/lib/proxy.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Remove automatically configured ports
 | 
			
		||||
  dokku_ports:
 | 
			
		||||
    app: keycloak
 | 
			
		||||
    mappings:
 | 
			
		||||
      - "http:{{ port }}:{{ port }}"
 | 
			
		||||
    state: absent
 | 
			
		||||
							
								
								
									
										9
									
								
								plays/lib/vars.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								plays/lib/vars.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Check if internal variables are available for loading
 | 
			
		||||
  stat:
 | 
			
		||||
    path: "{{ app_config_root }}/vars.yml"
 | 
			
		||||
  register: internal_vars
 | 
			
		||||
 | 
			
		||||
- name: Load internal variables
 | 
			
		||||
  include_vars: "{{ app_config_root }}/vars.yml"
 | 
			
		||||
  when: internal_vars.stat.exists
 | 
			
		||||
@ -1 +1,27 @@
 | 
			
		||||
---
 | 
			
		||||
- hosts: all
 | 
			
		||||
  gather_facts: false
 | 
			
		||||
  tasks:
 | 
			
		||||
    - name: Include debug tasks
 | 
			
		||||
      include: ./lib/debug.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include config tasks
 | 
			
		||||
      include: ./lib/config.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include vars tasks
 | 
			
		||||
      include: ./lib/vars.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include vault tasks
 | 
			
		||||
      include: ./lib/vault.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include http tasks
 | 
			
		||||
      include: ./lib/http.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include certs tasks
 | 
			
		||||
      include: ./lib/certs.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include proxy tasks
 | 
			
		||||
      include: ./lib/proxy.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include https tasks
 | 
			
		||||
      include: ./lib/https.yml
 | 
			
		||||
 | 
			
		||||
@ -2,26 +2,20 @@
 | 
			
		||||
- hosts: all
 | 
			
		||||
  gather_facts: false
 | 
			
		||||
  tasks:
 | 
			
		||||
    - name: Include debug tasks
 | 
			
		||||
      include: ./lib/debug.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include config tasks
 | 
			
		||||
      include: ./lib/config.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include vars tasks
 | 
			
		||||
      include: ./lib/vars.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include vault tasks
 | 
			
		||||
      include: ./lib/vault.yml
 | 
			
		||||
 | 
			
		||||
    - name: Include domain tasks
 | 
			
		||||
      include: ./lib/domain.yml
 | 
			
		||||
 | 
			
		||||
    - name: Configure the dokku app environment
 | 
			
		||||
      dokku_config:
 | 
			
		||||
        app: keycloak
 | 
			
		||||
        restart: false
 | 
			
		||||
        config:
 | 
			
		||||
          DB_ADDR: "dokku-mariadb-keycloak:3306"
 | 
			
		||||
          DB_DATABASE: "keycloak"
 | 
			
		||||
          DB_PASSWORD: "{{ db_passwd }}"
 | 
			
		||||
          DB_USER: "mariadb" # https://github.com/dokku/dokku-mariadb/issues/89
 | 
			
		||||
          DB_VENDOR: "mariadb"
 | 
			
		||||
          DOKKU_LETSENCRYPT_EMAIL: "{{ autonomic_admin_mail }}"
 | 
			
		||||
          KEYCLOAK_PASSWORD: "{{ autonomic_admin_pass }}"
 | 
			
		||||
          KEYCLOAK_USER: "{{ autonomic_admin_user }}"
 | 
			
		||||
          PROXY_ADDRESS_FORWARDING: "{{ proxy_address_forwarding }}"
 | 
			
		||||
    - name: Include env tasks
 | 
			
		||||
      include: ./lib/env.yml
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user