Bootstrap alerta
This commit is contained in:
		
							
								
								
									
										13
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.drone.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					kind: pipeline
 | 
				
			||||||
 | 
					name: default
 | 
				
			||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - name: Deploy Alerta with Dokku
 | 
				
			||||||
 | 
					    image: appleboy/drone-git-push:0.2.0-linux-amd64
 | 
				
			||||||
 | 
					    settings:
 | 
				
			||||||
 | 
					      remote: ssh://dokku@dokku.autonomic.zone:222/alerta
 | 
				
			||||||
 | 
					      ssh_key:
 | 
				
			||||||
 | 
					        from_secret: drone_deploy_key
 | 
				
			||||||
 | 
					    trigger:
 | 
				
			||||||
 | 
					      branch:
 | 
				
			||||||
 | 
					        - master
 | 
				
			||||||
							
								
								
									
										2
									
								
								.envrc.sample
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.envrc.sample
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					# The path to our pass credentials store
 | 
				
			||||||
 | 
					export PASSWORD_STORE_DIR=$(pwd)/../infrastructure/credentials/password-store
 | 
				
			||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					.venv
 | 
				
			||||||
							
								
								
									
										5
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					FROM alerta/alerta-web:7.4.4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXPOSE 8080
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY . ${WORKDIR}
 | 
				
			||||||
							
								
								
									
										5
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					# alerta
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[](https://drone.autonomic.zone/autonomic-cooperative/alerta)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> https://alerta.io/
 | 
				
			||||||
							
								
								
									
										5
									
								
								ansible/.vault.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								ansible/.vault.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -eu -o pipefail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo $(pass show hosts/autonomic-dokku/vault/password)
 | 
				
			||||||
							
								
								
									
										40
									
								
								ansible/post-deploy.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								ansible/post-deploy.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					- hosts: all
 | 
				
			||||||
 | 
					  gather_facts: false
 | 
				
			||||||
 | 
					  tasks:
 | 
				
			||||||
 | 
					    - name: Load variables
 | 
				
			||||||
 | 
					      include_vars:
 | 
				
			||||||
 | 
					        dir: "{{ dokku_lib_root }}/data/ansible/alerta/vars/"
 | 
				
			||||||
 | 
					        extensions:
 | 
				
			||||||
 | 
					          - yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Set HTTP 80 port proxy
 | 
				
			||||||
 | 
					      dokku_ports:
 | 
				
			||||||
 | 
					        app: alerta
 | 
				
			||||||
 | 
					        mappings:
 | 
				
			||||||
 | 
					          - "http:80:{{ http_port }}"
 | 
				
			||||||
 | 
					        state: present
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Setup LE certificates
 | 
				
			||||||
 | 
					      shell: dokku letsencrypt alerta
 | 
				
			||||||
 | 
					      args:
 | 
				
			||||||
 | 
					        creates: /home/dokku/alerta/letsencrypt/certs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Setup LE certificates renew cron job
 | 
				
			||||||
 | 
					      shell: dokku letsencrypt:cron-job --add
 | 
				
			||||||
 | 
					      args:
 | 
				
			||||||
 | 
					        creates: /home/dokku/alerta/letsencrypt/cron-job
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Remove automatically configured ports
 | 
				
			||||||
 | 
					      dokku_ports:
 | 
				
			||||||
 | 
					        app: alerta
 | 
				
			||||||
 | 
					        mappings:
 | 
				
			||||||
 | 
					          - "http:8080:8080"
 | 
				
			||||||
 | 
					        state: absent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Set HTTP 443 port
 | 
				
			||||||
 | 
					      dokku_ports:
 | 
				
			||||||
 | 
					        app: alerta
 | 
				
			||||||
 | 
					        mappings:
 | 
				
			||||||
 | 
					          - "https:443:{{ http_port }}"
 | 
				
			||||||
 | 
					        state: present
 | 
				
			||||||
							
								
								
									
										56
									
								
								ansible/pre-deploy.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								ansible/pre-deploy.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					- hosts: all
 | 
				
			||||||
 | 
					  gather_facts: false
 | 
				
			||||||
 | 
					  tasks:
 | 
				
			||||||
 | 
					    - name: Load variables
 | 
				
			||||||
 | 
					      include_vars:
 | 
				
			||||||
 | 
					        dir: "{{ dokku_lib_root }}/data/ansible/alerta/vars/"
 | 
				
			||||||
 | 
					        extensions:
 | 
				
			||||||
 | 
					          - yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: "Configure the {{ domain }} domain"
 | 
				
			||||||
 | 
					      dokku_domains:
 | 
				
			||||||
 | 
					        app: alerta
 | 
				
			||||||
 | 
					        domains:
 | 
				
			||||||
 | 
					          - "{{ domain }}"
 | 
				
			||||||
 | 
					        state: present
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Create postgres database
 | 
				
			||||||
 | 
					      shell: "
 | 
				
			||||||
 | 
					        dokku
 | 
				
			||||||
 | 
					        postgres:create
 | 
				
			||||||
 | 
					        alerta
 | 
				
			||||||
 | 
					        --password {{ db_passwd }}
 | 
				
			||||||
 | 
					        --root-password {{ root_db_passwd }}
 | 
				
			||||||
 | 
					      "
 | 
				
			||||||
 | 
					      args:
 | 
				
			||||||
 | 
					        creates: /var/lib/dokku/services/postgres/alerta
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Link postgres database to application
 | 
				
			||||||
 | 
					      dokku_service_link:
 | 
				
			||||||
 | 
					        app: alerta
 | 
				
			||||||
 | 
					        name: alerta
 | 
				
			||||||
 | 
					        service: postgres
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Map application port to free host port
 | 
				
			||||||
 | 
					      dokku_docker_options:
 | 
				
			||||||
 | 
					        app: alerta
 | 
				
			||||||
 | 
					        phase: run
 | 
				
			||||||
 | 
					        options:
 | 
				
			||||||
 | 
					          - "-p 3050:8080"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Configure the dokku app environment
 | 
				
			||||||
 | 
					      dokku_config:
 | 
				
			||||||
 | 
					        app: alerta
 | 
				
			||||||
 | 
					        restart: false
 | 
				
			||||||
 | 
					        config:
 | 
				
			||||||
 | 
					          ADMIN_KEY: "{{ alerta_admin_key }}"
 | 
				
			||||||
 | 
					          ADMIN_PASSWORD: "{{ alerta_admin_passwd }}"
 | 
				
			||||||
 | 
					          ALLOWED_KEYCLOAK_ROLES: "{{ keycloak_roles }}"
 | 
				
			||||||
 | 
					          AUTH_PROVIDER: "{{ auth_provider }}"
 | 
				
			||||||
 | 
					          AUTH_REQUIRED: "{{ auth_required }}"
 | 
				
			||||||
 | 
					          DATABASE_NAME: "{{ db_name }}"
 | 
				
			||||||
 | 
					          DATABASE_URL: "postgresql://{{ db_user }}:{{ db_passwd }}@{{ db_loc }}/{{ db_name }}"
 | 
				
			||||||
 | 
					          KEYCLOAK_REALM: "{{ keycloak_realm }}"
 | 
				
			||||||
 | 
					          KEYCLOAK_URL: "{{ keycloak_url }}"
 | 
				
			||||||
 | 
					          SECRET_KEY: "{{ alerta_secret_key }}"
 | 
				
			||||||
							
								
								
									
										6
									
								
								ansible/requirements.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ansible/requirements.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					- src: dokku_bot.ansible_dokku
 | 
				
			||||||
 | 
					  version: v2020.3.24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- src: https://git.autonomic.zone/autonomic-cooperative/autonomic.gandi/archive/0.0.5.tar.gz
 | 
				
			||||||
 | 
					  name: autonomic.gandi
 | 
				
			||||||
							
								
								
									
										9
									
								
								ansible/vars/alerta_admin_key.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								ansible/vars/alerta_admin_key.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					alerta_admin_key: !vault |
 | 
				
			||||||
 | 
					  $ANSIBLE_VAULT;1.1;AES256
 | 
				
			||||||
 | 
					  63646336653264643762383534656133316563613837663433303531313064333562303130366162
 | 
				
			||||||
 | 
					  6639613330663839356562303463616538393335636438650a356462663561313961366632653761
 | 
				
			||||||
 | 
					  64326530653339346138373666623430306138623139633061653466643939653032613538646237
 | 
				
			||||||
 | 
					  3832333964306461330a366334383539636431623261666530623739623533356163653535303064
 | 
				
			||||||
 | 
					  39363161326165623936346339313834383561366563356330303963666639353962336565356439
 | 
				
			||||||
 | 
					  6634313338326362353332356132353033396235633335663864
 | 
				
			||||||
							
								
								
									
										9
									
								
								ansible/vars/alerta_admin_passwd.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								ansible/vars/alerta_admin_passwd.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					alerta_admin_passwd: !vault |
 | 
				
			||||||
 | 
					  $ANSIBLE_VAULT;1.1;AES256
 | 
				
			||||||
 | 
					  38616564643264396163666135656438336266623132393436653734313339323731613638376630
 | 
				
			||||||
 | 
					  6138653434376366623966343930383565363665396132340a356461313738326438373963383738
 | 
				
			||||||
 | 
					  65356263303465366630666366616537316362656639663066616366383962393533393931366535
 | 
				
			||||||
 | 
					  3731333261346631360a356538626235333532353730383439393166323838353964393166376137
 | 
				
			||||||
 | 
					  61613034363765623966656536373135623139323566306665303064343437616464373631346665
 | 
				
			||||||
 | 
					  6566336638343939353764623833383733653232373062306264
 | 
				
			||||||
							
								
								
									
										9
									
								
								ansible/vars/alerta_secret_key.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								ansible/vars/alerta_secret_key.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					alerta_secret_key: !vault |
 | 
				
			||||||
 | 
					  $ANSIBLE_VAULT;1.1;AES256
 | 
				
			||||||
 | 
					  65373532396564323565326161386132323730396234323465323166666661333537613537613137
 | 
				
			||||||
 | 
					  6262333130363835336637313633383561343736663832320a316261623735356630646434383864
 | 
				
			||||||
 | 
					  65313564633434306136613936333666646431333530326566356535393465376633363065626533
 | 
				
			||||||
 | 
					  3935323633336234360a333030393965623364376233663134363562386463366238616336313163
 | 
				
			||||||
 | 
					  32623339373863363737663530663235356134323634386664623833336533653735623937396161
 | 
				
			||||||
 | 
					  3431306265383232393762333234333466336533346430333631
 | 
				
			||||||
							
								
								
									
										10
									
								
								ansible/vars/all.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								ansible/vars/all.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					auth_provider: "keycloak"
 | 
				
			||||||
 | 
					auth_required: "true"
 | 
				
			||||||
 | 
					db_loc: "dokku-postgres-alerta:3306"
 | 
				
			||||||
 | 
					db_name: "alerta"
 | 
				
			||||||
 | 
					db_user: "postgres"
 | 
				
			||||||
 | 
					http_port: "3050"
 | 
				
			||||||
 | 
					keycloak_realm: "Autonomic"
 | 
				
			||||||
 | 
					keycloak_roles: "Worker-Owner"
 | 
				
			||||||
 | 
					keycloak_url: "https://id.autonomic.zone"
 | 
				
			||||||
							
								
								
									
										8
									
								
								ansible/vars/ansible_become_pass.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								ansible/vars/ansible_become_pass.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					ansible_become_pass: !vault |
 | 
				
			||||||
 | 
					  $ANSIBLE_VAULT;1.1;AES256
 | 
				
			||||||
 | 
					  34396236353735666531323238656533643465303131663464613162396333313836363630666266
 | 
				
			||||||
 | 
					  6539323631656635333864316166633064633366323936610a656137616334313534333635313232
 | 
				
			||||||
 | 
					  35323561303763366563316631313638363333393763323935343563303963616334336639386462
 | 
				
			||||||
 | 
					  3837383830616637360a373539613630356564363662393836366462666430353439353637303035
 | 
				
			||||||
 | 
					  63396633303166343433313439303539313637306637663137313533316531616434
 | 
				
			||||||
							
								
								
									
										9
									
								
								ansible/vars/db_passwd.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								ansible/vars/db_passwd.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					db_passwd: !vault |
 | 
				
			||||||
 | 
					  $ANSIBLE_VAULT;1.1;AES256
 | 
				
			||||||
 | 
					  66613866666133643236393137646262346262356564333730656432303766623663656639316135
 | 
				
			||||||
 | 
					  6461373238626433343638326564316561623161666563390a323066616336336238643033313765
 | 
				
			||||||
 | 
					  35303436643633383637663162643731326130646165363733643833663966306233383339613661
 | 
				
			||||||
 | 
					  3234636138633533380a636363383366343834643831626633366366343732663334636632613730
 | 
				
			||||||
 | 
					  32653539383834343937346563643539623963383237303036336431346463333262613838356134
 | 
				
			||||||
 | 
					  6465386337343037336530646335663533656433306663343261
 | 
				
			||||||
							
								
								
									
										9
									
								
								ansible/vars/root_db_passwd.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								ansible/vars/root_db_passwd.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					root_db_passwd: !vault |
 | 
				
			||||||
 | 
					  $ANSIBLE_VAULT;1.1;AES256
 | 
				
			||||||
 | 
					  61623136343461613137323665303834646466636631396538616232663061376439303739633861
 | 
				
			||||||
 | 
					  6132323764333365396237303936353431313866383261340a336336313162643363643231656662
 | 
				
			||||||
 | 
					  32613561666538633364643066343261636239656637303134396565666536623334616234393837
 | 
				
			||||||
 | 
					  6165636634646332330a316130613531346430373163316130363330656532663137373832656237
 | 
				
			||||||
 | 
					  63666337303434623465366331336538626536313535393938656232323634316632656636613339
 | 
				
			||||||
 | 
					  3330386231353338343236356133393538366337626438613537
 | 
				
			||||||
							
								
								
									
										5
									
								
								app.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								app.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "alerta",
 | 
				
			||||||
 | 
					  "description": "A tool used to consolidate and de-duplicate alerts from multiple sources for quick ‘at-a-glance’ visualisation",
 | 
				
			||||||
 | 
					  "repository": "https://git.autonomic.zone/autonomic-cooperative/alerta"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					ansible==2.9.6
 | 
				
			||||||
							
								
								
									
										15
									
								
								sbin/encrypt.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								sbin/encrypt.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -eu -o pipefail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Usage
 | 
				
			||||||
 | 
					# ./encrypt.sh mysecretname mysecretvalue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare name="$1"
 | 
				
			||||||
 | 
					declare secret="$2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ansible-vault \
 | 
				
			||||||
 | 
					  encrypt_string \
 | 
				
			||||||
 | 
					  --vault-password-file ansible/.vault.sh \
 | 
				
			||||||
 | 
					  --name "$name" \
 | 
				
			||||||
 | 
					  "$secret"
 | 
				
			||||||
		Reference in New Issue
	
	Block a user