Ansible deployed via boilerplates and playbooks
This commit is contained in:
3
boilerplates/semaphore/.env
Normal file
3
boilerplates/semaphore/.env
Normal file
@@ -0,0 +1,3 @@
|
||||
DATABASE_PASSWORD=cVMGmtkCcOsMReHi99GHBIWNmNTUQPfZ
|
||||
SEMAPHORE_ADMIN_PASSWORD=4U+gEcm0aUby+5q5
|
||||
SEMAPHORE_ACCESS_KEY_ENCRYPTION=6APgfDAgWtqg0XBXPKPyG7N3evwksB6u
|
||||
44
boilerplates/semaphore/compose.yaml
Normal file
44
boilerplates/semaphore/compose.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
services:
|
||||
semaphore:
|
||||
image: docker.io/semaphoreui/semaphore:v2.17.2
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- SEMAPHORE_DB_DIALECT=mysql
|
||||
- SEMAPHORE_DB_HOST=semaphore_db
|
||||
- SEMAPHORE_DB=semaphore
|
||||
- SEMAPHORE_DB_USER=semaphore
|
||||
- SEMAPHORE_DB_PASS=${DATABASE_PASSWORD}
|
||||
- SEMAPHORE_ADMIN=admin
|
||||
- SEMAPHORE_ADMIN_NAME=Administrator
|
||||
- SEMAPHORE_ADMIN_EMAIL=ryan.blundon@protonmail.com
|
||||
- SEMAPHORE_ADMIN_PASSWORD=${SEMAPHORE_ADMIN_PASSWORD}
|
||||
- SEMAPHORE_PLAYBOOK_PATH=/tmp/semaphore/
|
||||
- SEMAPHORE_ACCESS_KEY_ENCRYPTION=${SEMAPHORE_ACCESS_KEY_ENCRYPTION}
|
||||
- ANSIBLE_HOST_KEY_CHECKING=False
|
||||
networks:
|
||||
- semaphore_backend
|
||||
ports:
|
||||
- "3000:3000"
|
||||
depends_on:
|
||||
- semaphore_db
|
||||
|
||||
semaphore_db:
|
||||
image: docker.io/library/mysql:8.1
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- MYSQL_USER=semaphore
|
||||
- MYSQL_PASSWORD=${DATABASE_PASSWORD}
|
||||
- MYSQL_DATABASE=semaphore
|
||||
- MYSQL_ROOT_PASSWORD=${DATABASE_PASSWORD}
|
||||
networks:
|
||||
- semaphore_backend
|
||||
volumes:
|
||||
- semaphore_db:/var/lib/mysql
|
||||
|
||||
volumes:
|
||||
semaphore_db:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
semaphore_backend:
|
||||
driver: bridge
|
||||
107
boilerplates/semaphore/project-config.json
Normal file
107
boilerplates/semaphore/project-config.json
Normal file
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"environments": [
|
||||
{
|
||||
"env": "{}",
|
||||
"json": "{}",
|
||||
"name": "Production"
|
||||
}
|
||||
],
|
||||
"integration_aliases": [],
|
||||
"integrations": [],
|
||||
"inventories": [
|
||||
{
|
||||
"become_key": "wed-ssh-key",
|
||||
"inventory": "ansible/inventory.yml",
|
||||
"name": "foundation",
|
||||
"ssh_key": "wed-ssh-key",
|
||||
"type": "file"
|
||||
}
|
||||
],
|
||||
"keys": [
|
||||
{
|
||||
"name": "git-public",
|
||||
"owner": "",
|
||||
"type": "none"
|
||||
},
|
||||
{
|
||||
"name": "wed-ssh-key",
|
||||
"owner": "",
|
||||
"type": "ssh"
|
||||
},
|
||||
{
|
||||
"name": "ansible-vault-password",
|
||||
"owner": "",
|
||||
"type": "login_password"
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"alert": false,
|
||||
"max_parallel_tasks": 0,
|
||||
"name": "mk-labs",
|
||||
"type": ""
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
"git_branch": "main",
|
||||
"git_url": "https://github.com/rblundon/homelab.git",
|
||||
"name": "homelab",
|
||||
"ssh_key": "git-public"
|
||||
}
|
||||
],
|
||||
"roles": [],
|
||||
"schedules": [],
|
||||
"secret_storages": [],
|
||||
"templates": [
|
||||
{
|
||||
"allow_override_args_in_task": true,
|
||||
"autorun": false,
|
||||
"description": "Post-provisioning OS baseline: common role, DNS registration, NetBox status update",
|
||||
"environment": "Production",
|
||||
"inventory": "foundation",
|
||||
"name": "day0-baseline",
|
||||
"playbook": "ansible/playbooks/day0_baseline.yml",
|
||||
"repository": "homelab",
|
||||
"suppress_success_alerts": false,
|
||||
"survey_vars": [],
|
||||
"type": "task",
|
||||
"vault_key": "ansible-vault-password"
|
||||
},
|
||||
{
|
||||
"allow_override_args_in_task": true,
|
||||
"autorun": false,
|
||||
"description": "Deploy Semaphore on imagineering",
|
||||
"environment": "Production",
|
||||
"inventory": "foundation",
|
||||
"name": "day1-deploy-semaphore",
|
||||
"playbook": "ansible/playbooks/day1_deploy_semaphore.yml",
|
||||
"repository": "homelab",
|
||||
"suppress_success_alerts": false,
|
||||
"survey_vars": [],
|
||||
"type": "task",
|
||||
"vault_key": "ansible-vault-password"
|
||||
},
|
||||
{
|
||||
"allow_override_args_in_task": false,
|
||||
"autorun": false,
|
||||
"description": "Sync Traefik dynamic configs and create DNS CNAMEs for all services",
|
||||
"environment": "Production",
|
||||
"inventory": "foundation",
|
||||
"name": "add-service-route",
|
||||
"playbook": "ansible/playbooks/add_service_route.yml",
|
||||
"repository": "homelab",
|
||||
"suppress_success_alerts": false,
|
||||
"survey_vars": [],
|
||||
"type": "task",
|
||||
"vault_key": "ansible-vault-password"
|
||||
}
|
||||
],
|
||||
"views": [
|
||||
{
|
||||
"hidden": false,
|
||||
"position": 0,
|
||||
"sort_reverse": false,
|
||||
"title": "All",
|
||||
"type": "all"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user