commit 192d16dd9b9fbcb41487aa4fa3fd76f4540a7396 Author: decentral1se Date: Mon May 30 12:01:56 2022 +0200 init diff --git a/.ansible-lint.yml b/.ansible-lint.yml new file mode 100644 index 0000000..25636f8 --- /dev/null +++ b/.ansible-lint.yml @@ -0,0 +1,4 @@ +--- +skip_list: + - fqcn-builtins + - experimental diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..af7e582 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,16 @@ +---- +kind: pipeline +name: default +steps: + - name: integration test + image: python:3.9-buster + environment: + REMOTE_USER: molecule + HCLOUD_TOKEN: + from_secret: HCLOUD_TOKEN + commands: + - apt update && apt install -y pwgen + - mkdir -p /root/.ansible/roles && ln -sr . /root/.ansible/roles/autonomic.motd + - export INSTANCE_UUID=$(pwgen 8 1) + - pip install -r requirements.txt + - molecule test diff --git a/.envrc.sample b/.envrc.sample new file mode 100644 index 0000000..8a266bf --- /dev/null +++ b/.envrc.sample @@ -0,0 +1,18 @@ +# Your username that you use for accounts on our machines. +export REMOTE_USER= +export ANSIBLE_USER=$REMOTE_USER + +# The path to our pass credentials store +export PASSWORD_STORE_DIR= + +# The Hetzner Cloud API token for managing our instances +# Uncomment the prod/test line below depending on what you're doing +# export HCLOUD_TOKEN=$(pass show logins/hetzner/prod/api_key) +# export HCLOUD_TOKEN=$(pass show logins/hetzner/test/api_key) +export HCLOUD_TOKEN=$(pass show logins/hetzner/cicd/api_key) + +# For molecule role testing +export INSTANCE_UUID=$RANDOM + +# So molecule will show credentials in the logs +export MOLECULE_NO_LOG=False diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100755 index 0000000..456c99c --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,16 @@ +--- +extends: default + +yaml-files: + - "*.yaml" + - "*.yml" + +ignore: | + .venv + .drone.yml + +rules: + line-length: disable + braces: + max-spaces-inside: 1 + level: error diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3bb436b --- /dev/null +++ b/LICENSE @@ -0,0 +1,15 @@ +autonomic.motd: Arranges a useful "message of the day" +Copyright (C) 2022 Autonomic Co-operative + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/README.md b/README.md new file mode 100644 index 0000000..7e45d57 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# autonomic.motd diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..a73f95d --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,17 @@ +--- +dependencies: [] +galaxy_info: + role_name: motd + namespace: autonomic + author: autonomic + description: | + Arranges a useful "message of the day" in the /etc/motd file which is shown + to users when they SSH into the server. Other useful information about the + host and applications hosted there can be shown. + company: Autonomic + license: GPLv3 + min_ansible_version: 2.9 + platforms: + - name: Debian + versions: + - buster diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml new file mode 100644 index 0000000..3b4aaac --- /dev/null +++ b/molecule/default/converge.yml @@ -0,0 +1,5 @@ +--- +- name: Converge + hosts: all + roles: + - role: autonomic.motd diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml new file mode 100644 index 0000000..e0ffe45 --- /dev/null +++ b/molecule/default/molecule.yml @@ -0,0 +1,19 @@ +--- +dependency: + name: galaxy + +driver: + name: hetznercloud + +platforms: + - name: "autonomic.motd-${INSTANCE_UUID}" + server_type: cx11 + image: debian-10 + +provisioner: + name: ansible + +lint: | + set -e + yamllint -c .yamllint.yml . + ansible-lint --exclude .drone.yml -c .ansible-lint.yml . diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..0f48af2 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,6 @@ +--- + +- name: Install a new MOTD + template: + src: motd.j2 + dest: /etc/motd diff --git a/templates/motd.j2 b/templates/motd.j2 new file mode 100644 index 0000000..da25151 --- /dev/null +++ b/templates/motd.j2 @@ -0,0 +1,16 @@ +------------------------------------------------------------------------- + + ___ __ _ + / | __ __/ /_____ ____ ____ ____ ___ (_)____ + / /| |/ / / / __/ __ \/ __ \/ __ \/ __ `__ \/ / ___/ + / ___ / /_/ / /_/ /_/ / / / / /_/ / / / / / / / /___ + /_/ |_\__,_/\__/\____/_/ /_/\____/_/ /_/ /_/_/\___(_) + + + This is {{ inventory_hostname }}. + + Security contact: helo@autonomic.zone + PGP key: https://autonomic.zone/assets/pgp/autonomic-key.asc + PGP Fingerprint: DAFA 9CA8 4CFD 48F5 FCEA CEAA EDE9 3962 9F5C 1A6A + +-------------------------------------------------------------------------