5 Commits
Author SHA1 Message Date
volker.raschekandCopilot 14984e7469 fix(ssh): use inline SSH key content
Lint Markdown files / markdown-lint (push) Successful in 26s
Ansible Linter / ansible-lint (push) Successful in 1m54s
Release Ansible Role / Release Ansible Role (push) Successful in 3m9s
Co-authored-by: Copilot <copilot@github.com>
2026-10-17 23:17:59 +02:00
volker.raschek 874e1d633a fix(ci): add workflow dispatch for releases
Ansible Linter / ansible-lint (push) Successful in 1m1s
Lint Markdown files / markdown-lint (push) Successful in 14s
2026-01-11 21:16:04 +01:00
volker.raschek a55e12762f fix(ci): use dynamic github repository name
Ansible Linter / ansible-lint (push) Successful in 17s
Lint Markdown files / markdown-lint (push) Successful in 4s
2026-01-07 16:11:13 +01:00
volker.raschek 2afad33ad2 fix(ci): add release workflow
Ansible Linter / ansible-lint (push) Successful in 19s
Lint Markdown files / markdown-lint (push) Successful in 5s
2026-01-07 16:05:37 +01:00
volker.raschek adc35381da fix: replace deprecated INJECT_FACTS_AS_VARS
Ansible Linter / ansible-lint (push) Successful in 38s
Lint Markdown files / markdown-lint (push) Successful in 4s
2026-01-05 10:27:52 +01:00
5 changed files with 43 additions and 12 deletions

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
name: Release Ansible Role
on:
push:
tags:
- '**'
workflow_dispatch: {}
jobs:
release:
name: Release Ansible Role
runs-on: ubuntu-latest
steps:
- name: Install Ansible Galaxy
run: |
apt update --yes
apt install --yes ansible
- env:
ANSIBLE_GALAXY_TOKEN: ${{ secrets.ANSIBLE_GALAXY_TOKEN }}
name: Update Ansible Role in Ansible Galaxy
run: |
ansible-galaxy role import --token=${ANSIBLE_GALAXY_TOKEN} volker-raschek ${GITHUB_REPOSITORY#*/}
+2 -2
View File
@@ -3,12 +3,12 @@
"files.associations": { "files.associations": {
"**/.gitea/**/*.yml": "yaml", "**/.gitea/**/*.yml": "yaml",
"**/.gitea/**/*.yaml": "yaml", "**/.gitea/**/*.yaml": "yaml",
".drone.yml": "yaml",
"docker-compose*.yml": "dockercompose", "docker-compose*.yml": "dockercompose",
"*.yml": "ansible", "*.yml": "ansible",
"*.yaml": "ansible", "*.yaml": "ansible",
".yamllint": "yaml", ".yamllint": "yaml",
".yamllint.yml": "yaml", ".yamllint.yml": "yaml",
".yamllint.yaml": "yaml" ".yamllint.yaml": "yaml"
} },
"rewrap.wrappingColumn": 120
} }
+7 -1
View File
@@ -8,5 +8,11 @@ root: {}
# StrictHostKeyChecking: "no" # StrictHostKeyChecking: "no"
# UserKnownHostFile: /dev/null # UserKnownHostFile: /dev/null
# authorized_keys: # authorized_keys:
# - filename: markus@markus-pc.pub # - content: ssh-ed25519 AAAAC3NzaC... alice
# # command: "" # optional # # command: "" # optional
# private_keys:
# - filename: alice@alice-pc.ed25519.key
# content: |
# -----BEGIN OPENSSH PRIVATE KEY-----
# ...
# -----END OPENSSH PRIVATE KEY-----
+10 -7
View File
@@ -80,24 +80,27 @@
block: block:
- name: "Create private SSH keys" - name: "Create private SSH keys"
ansible.builtin.copy: ansible.builtin.copy:
src: "{{ playbook_dir }}/ssh/private_keys/{{ item }}" content: "{{ item.content }}"
dest: "/root/.ssh/{{ item }}" dest: "/root/.ssh/{{ item.filename }}"
owner: "root" owner: "root"
group: "root" group: "root"
mode: "0600" mode: "0600"
with_items: loop: "{{ root.ssh.private_keys }}"
- "{{ root.ssh.private_keys }}" loop_control:
label: "{{ item.filename }}"
- name: "Extract public SSH keys from private keys" - name: "Extract public SSH keys from private keys"
ansible.builtin.shell: ansible.builtin.shell:
args: args:
executable: /bin/bash executable: /bin/bash
cmd: "ssh-keygen -y -f /root/.ssh/{{ item }} > /root/.ssh/{{ item }}.pub" cmd: "ssh-keygen -y -f {{ ('/root/.ssh/' + item.filename) | quote }} > {{ ('/root/.ssh/' + item.filename + '.pub') | quote }}"
creates: "/root/.ssh/{{ item.filename }}.pub"
register: _root_ssh_pub_key_extraction register: _root_ssh_pub_key_extraction
changed_when: _root_ssh_pub_key_extraction.rc == 0 changed_when: _root_ssh_pub_key_extraction.rc == 0
failed_when: _root_ssh_pub_key_extraction.rc > 0 failed_when: _root_ssh_pub_key_extraction.rc > 0
with_items: loop: "{{ root.ssh.private_keys }}"
- "{{ root.ssh.private_keys }}" loop_control:
label: "{{ item.filename }}"
- name: "Create custom SSH client config" - name: "Create custom SSH client config"
ansible.builtin.template: ansible.builtin.template:
+2 -2
View File
@@ -3,8 +3,8 @@
# #
{% for authorized_key in root.ssh.authorized_keys %} {% for authorized_key in root.ssh.authorized_keys %}
{% if authorized_key.command is defined and authorized_key.command | length > 0 %} {% if authorized_key.command is defined and authorized_key.command | length > 0 %}
command="{{ authorized_key.command }}" {{ lookup('file', 'ssh/authorized_keys/' + authorized_key.filename ) }} command="{{ authorized_key.command }}" {{ authorized_key.content | trim }}
{% else %} {% else %}
{{ lookup('file', 'ssh/authorized_keys/' + authorized_key.filename ) }} {{ authorized_key.content | trim }}
{% endif %} {% endif %}
{% endfor %} {% endfor %}