chore: go on a quest for better ansible uis than awx

This commit is contained in:
Michele Cereda
2024-07-14 15:38:33 +02:00
parent 9fdb9f1b0a
commit 05c9ac4021
7 changed files with 168 additions and 15 deletions

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env make
firewalld-open: override service_name ?= rundeck
firewalld-open: override port ?= ${shell yq -r '.services.${service_name}.ports[0]|split(":")|first' docker-compose.yml}
firewalld-open: override firewall_cmd_executable ?= ${shell which 'firewall-cmd'}
firewalld-open: ${firewall_cmd_executable}
@sudo ${firewall_cmd_executable} --permanent --new-service '${service_name}'
@sudo ${firewall_cmd_executable} --permanent --service '${service_name}' --set-description 'FIXME'
@sudo ${firewall_cmd_executable} --permanent --service '${service_name}' --set-short 'FIXME'
@sudo ${firewall_cmd_executable} --permanent --service '${service_name}' --add-port '${port}/tcp'
@sudo ${firewall_cmd_executable} --permanent --add-service '${service_name}'
@sudo ${firewall_cmd_executable} --reload
composition-go-brrr: ${shell which 'docker-compose'} pre-flight
@docker-compose up -d

View File

@@ -0,0 +1,23 @@
---
# Sources:
# - https://docs.rundeck.com/docs/administration/install/docker.html#open-source-rundeck
# - https://github.com/rundeck/docker-zoo/blob/master/basic/docker-compose.yml
# Default user and password: admin:admin
# On localhost, it requires RUNDECK_GRAILS_URL=http://localhost:4440 or login will appear to not work
# See https://github.com/rundeck/docs/issues/217 for details
services:
rundeck:
image: rundeck/rundeck:5.4.0
tty: true
volumes:
- data:/home/rundeck/server/data
- ${RUNDECK_LICENSE_FILE:-/dev/null}:/home/rundeck/etc/rundeckpro-license.key
ports:
- 4440:4440
environment:
RUNDECK_GRAILS_URL: http://localhost:4440
volumes:
data:

View File

@@ -0,0 +1,19 @@
#!/usr/bin/env make
pre-flight:
@mkdir -pv 'data'
@docker compose run --rm --user 'root' 'semaphore' chown -Rv 'semaphore' '/etc/semaphore' '/var/lib/semaphore'
firewalld-open: override service_name ?= semaphore
firewalld-open: override port ?= ${shell yq -r '.services.${service_name}.ports[0]|split(":")|first' docker-compose.yml}
firewalld-open: override firewall_cmd_executable ?= ${shell which 'firewall-cmd'}
firewalld-open: ${firewall_cmd_executable}
@sudo ${firewall_cmd_executable} --permanent --new-service '${service_name}'
@sudo ${firewall_cmd_executable} --permanent --service '${service_name}' --set-description 'FIXME'
@sudo ${firewall_cmd_executable} --permanent --service '${service_name}' --set-short 'FIXME'
@sudo ${firewall_cmd_executable} --permanent --service '${service_name}' --add-port '${port}/tcp'
@sudo ${firewall_cmd_executable} --permanent --add-service '${service_name}'
@sudo ${firewall_cmd_executable} --reload
composition-go-brrr: ${shell which 'docker-compose'} pre-flight
@docker-compose up -d

View File

@@ -0,0 +1,21 @@
---
# Sources:
# - https://github.com/semaphoreui/semaphore
# - https://docs.semaphoreui.com/administration-guide/installation#docker
services:
semaphore:
ports:
- 3000:3000
image: semaphoreui/semaphore:latest
environment:
SEMAPHORE_DB_DIALECT: bolt
SEMAPHORE_ADMIN_PASSWORD: changeme
SEMAPHORE_ADMIN_NAME: admin
SEMAPHORE_ADMIN_EMAIL: admin@localhost
SEMAPHORE_ADMIN: admin
TZ: Europe/Berlin
volumes:
- ./data/home:/etc/semaphore # config.json location
- ./data/lib:/var/lib/semaphore # database.boltdb location (Not required if using mysql or postgres)

View File

@@ -108,14 +108,20 @@ ansible-galaxy role init --type 'container' --init-path 'path/to/role' 'name'
ansible-galaxy remove 'namespace.role'
```
<details>
<summary>Galaxy collections and roles worth a check</summary>
Galaxy collections and roles worth a check:
| ID | Type | Description |
| ---------------------------------------------- | ---------- | --------------------- |
| [sivel.toiletwater][galaxy sivel.toiletwater] | collection | Extra filters, mostly |
</details>
UIs:
| UI | Static inventories | Dynamic inventories |
| ----------- | ------------------ | ------------------- |
| [AWX] | ✓ | ✓ |
| [Rundeck] | ✓ | ? |
| [Semaphore] | ✓ | ✗ |
| [Zuul] | ? | ? |
## Configuration
@@ -840,6 +846,7 @@ See [Integrate with AWS SSM].
- [Integrate with AWS SSM]
- [Mitogen for Ansible]
- [Debugging tasks]
- [AWX]
### Sources
@@ -881,7 +888,9 @@ See [Integrate with AWS SSM].
-->
<!-- Knowledge base -->
[awx]: awx.md
[integrate with aws ssm]: cloud%20computing/aws/ssm.md#integrate-with-ansible
[rundeck]: rundeck.md
<!-- Files -->
[examples]: ../examples/ansible/
@@ -934,9 +943,11 @@ See [Integrate with AWS SSM].
[mitogen for ansible]: https://mitogen.networkgenomics.com/ansible_detailed.html
[only do something if another action changed]: https://raymii.org/s/tutorials/Ansible_-_Only-do-something-if-another-action-changed.html
[removing empty values from a list and assigning it to a new list]: https://stackoverflow.com/questions/60525961/ansible-removing-empty-values-from-a-list-and-assigning-it-to-a-new-list#60526774
[semaphore]: https://semaphoreui.com/
[unique filter of list in jinja2]: https://stackoverflow.com/questions/44329598/unique-filter-of-list-in-jinja2
[what is the exact list of ansible setup min?]: https://stackoverflow.com/questions/71060833/what-is-the-exact-list-of-ansible-setup-min#71061125
[why ansible and python fork break on macos high sierra+ and how to solve]: https://ansiblepilot.medium.com/why-ansible-and-python-fork-break-on-macos-high-sierra-and-how-to-solve-d11540cd2a1b
[windows playbook example]: https://geekflare.com/ansible-playbook-windows-example/
[working with versions]: https://docs.ansible.com/ansible/latest/collections/community/general/docsite/filter_guide_working_with_versions.html
[yes and no, true and false]: https://chronicler.tech/red-hat-ansible-yes-no-and/
[zuul]: https://zuul-ci.org/

54
knowledge base/rundeck.md Normal file
View File

@@ -0,0 +1,54 @@
# Rundeck
TODO
1. [Integrations](#integrations)
1. [Ansible](#ansible)
1. [Further readings](#further-readings)
1. [Sources](#sources)
## Integrations
### Ansible
Refer [Integrate with Ansible].
## Further readings
- [Website]
- [Main repository]
- [Documentation]
- Basic [`docker-compose.yml`][docker-compose.yml]
- [Ansible]
### Sources
- [Installation]
- [Docker configuration reference]
- [Basic exhibit]
- [What is the username and password for the rundeck/rundeck docker image? It says its admin/admin but that does not work]
- [Integrate with Ansible]
<!--
Reference
═╬═Time══
-->
<!-- In-article sections -->
<!-- Knowledge base -->
[ansible]: ansible.md
<!-- Files -->
[docker-compose.yml]: ../containers/rundeck/docker-compose.yml
<!-- Upstream -->
[basic exhibit]: https://github.com/rundeck/docker-zoo/blob/master/basic/
[docker configuration reference]: https://docs.rundeck.com/docs/administration/configuration/docker.html
[documentation]: https://docs.rundeck.com/docs/
[installation]: https://docs.rundeck.com/docs/administration/install/
[integrate with ansible]: https://docs.rundeck.com/docs/learning/howto/using-ansible.html
[main repository]: https://github.com/rundeck/rundeck
[website]: https://www.rundeck.com/
[what is the username and password for the rundeck/rundeck docker image? it says its admin/admin but that does not work]: https://github.com/rundeck/docs/issues/217
<!-- Others -->

View File

@@ -9,18 +9,23 @@ The _art_ of hosting and managing applications on one's own servers instead of c
## Software
| Name | Description | Alternatives |
| ---------------- | -------------------------- | ------------------------------- |
| [Baikal] | CalDAV and CardDAV server | [Radicale] |
| [Gitea] | Git server | [Gitlab], [Gogs] |
| [Gitlab] | Git server | [Gitea], [Gogs] |
| [Gogs] | Git server | [Gitea], [Gitlab] |
| [Home Assistant] | Home automation platform | |
| [NextCloud] | File sharing platform | [OwnCloud] |
| [OpenMediaVault] | NAS solution | [TrueNAS] |
| [Paperless-ngx] | Document management system | |
| [PhotoPrism] | Google Photos replacement | |
| [Uptime Kuma] | Status page | [Gatus], [Statping-ng], [Vigil] |
| Name | Description | Alternatives |
| ---------------- | -------------------------- | ----------------------------------------- |
| [AWX] | Task runner | [CTFreak], [Rundeck], [Semaphore], [Zuul] |
| [Baikal] | CalDAV and CardDAV server | [Radicale] |
| [CTFreak] | Task runner | [AWX], [Rundeck], [Semaphore], [Zuul] |
| [Gitea] | Git server | [Gitlab], [Gogs] |
| [Gitlab] | Git server | [Gitea], [Gogs] |
| [Gogs] | Git server | [Gitea], [Gitlab] |
| [Home Assistant] | Home automation platform | |
| [NextCloud] | File sharing platform | [OwnCloud] |
| [OpenMediaVault] | NAS solution | [TrueNAS] |
| [Paperless-ngx] | Document management system | |
| [PhotoPrism] | Google Photos replacement | |
| [Rundeck] | Task runner | [AWX], [CTFreak], [Semaphore], [Zuul] |
| [Semaphore] | Task runner | [AWX], [CTFreak], [Rundeck], [Zuul] |
| [Uptime Kuma] | Status page | [Gatus], [Statping-ng], [Vigil] |
| [Zuul] | Task runner | [AWX], [CTFreak], [Rundeck], [Semaphore] |
## Further readings
@@ -35,6 +40,7 @@ The _art_ of hosting and managing applications on one's own servers instead of c
-->
<!-- Knowledge base -->
[awx]: awx.md
[baikal]: baikal.md
[gitea]: gitea.md
[gitlab]: gitlab/README.md
@@ -42,16 +48,20 @@ The _art_ of hosting and managing applications on one's own servers instead of c
[openmediavault]: openmediavault.md
[paperless-ngx]: paperless-ngx.md
[photoprism]: photoprism.md
[rundeck]: rundeck.md
[uptime kuma]: uptime%20kuma.md
<!-- Others -->
[awesome-selfhosted]: https://awesome-selfhosted.net/
[ctfreak]: https://ctfreak.com/
[gatus]: https://github.com/TwiN/gatus
[gogs]: https://github.com/gogs/gogs
[home assistant]: https://www.home-assistant.io/
[owncloud]: https://owncloud.com/
[radicale]: https://radicale.org/
[semaphore]: https://semaphoreui.com/
[service as a software substitute]: https://www.gnu.org/philosophy/who-does-that-server-really-serve.html
[statping-ng]: https://statping-ng.github.io/
[truenas]: https://www.truenas.com/
[vigil]: https://github.com/valeriansaliou/vigil
[zuul]: https://zuul-ci.org/