enhanced playbooks

This commit is contained in:
Christian Lempa 2024-07-12 09:11:35 +02:00
parent 0b75fd23d1
commit a823c662b1
3 changed files with 87 additions and 4 deletions

View File

@ -0,0 +1,42 @@
---
# Kestra ansible-playbook Template
# ---
#
# Run an ansible playbook defined inline the kestra flow.
#
id: ansible_job
namespace: # your-namespace
tasks:
- id: ansible
type: io.kestra.plugin.core.flow.WorkingDirectory
tasks:
- id: local_files
type: io.kestra.core.tasks.storages.LocalFiles
inputs:
inventory.ini: |
srv-demo-1.home.clcreative.de
# --> replace with your playbook
myplaybook.yml: |
---
- hosts: srv-demo-1.home.clcreative.de
tasks:
- name: upgrade apt packages
become: true
apt:
upgrade: yes
update_cache: yes
# <--
id_rsa: "{{ secret('SSH_KEY') }}"
- id: ansible_task
type: io.kestra.plugin.ansible.cli.AnsibleCLI
docker:
image: cytopia/ansible:latest-tools
user: "1000" # required to set ssh key permissions
env:
"ANSIBLE_HOST_KEY_CHECKING": "false"
# --> (optional) when using a different remote user
# "ANSIBLE_REMOTE_USER": "your-remote-user"
# <--
commands:
- ansible-playbook -i inventory.ini --key-file id_rsa myplaybook.yaml

View File

@ -14,17 +14,20 @@ tasks:
- id: ansible_task
namespaceFiles:
enabled: true
# Files are to be uploaded to the kestra data directory for the namespace in
# <docker volume for kestra-data>/<namespace>/_files/
# --> upload your files to the kestra data directory for the namespace in
# <docker volume for kestra-data>/<namespace>/_files/
include:
- inventory.ini
- myplaybook.yaml
# <--
type: io.kestra.plugin.ansible.cli.AnsibleCLI
docker:
image: cytopia/ansible:latest-tools
env:
"ANSIBLE_HOST_KEY_CHECKING": "false"
# --> (optional) when using a different remote user
# "ANSIBLE_REMOTE_USER": "your-remote-user"
# <--
commands:
# Apk command only required if use ssh passwords.
- apk add sshpass
- apk add sshpass # only required if use ssh passwords.
- ansible-playbook -i inventory.ini myplaybook.yaml

View File

@ -0,0 +1,38 @@
---
# Kestra ansible-playbook Template
# ---
#
# Run an ansible playbook which has been uploaded to the server, using
# ssh key authentication.
#
id: ansible_job
namespace: # your-namespace
tasks:
- id: ansible
type: io.kestra.plugin.core.flow.WorkingDirectory
tasks:
- id: load_ssh_key
type: io.kestra.core.tasks.storages.LocalFiles
inputs:
id_rsa: "{{ secret('SSH_KEY') }}"
- id: ansible_task
namespaceFiles:
enabled: true
# --> upload your files to the kestra data directory for the namespace in
# <docker volume for kestra-data>/<namespace>/_files/
include:
- inventory.ini
- myplaybook.yaml
# <--
type: io.kestra.plugin.ansible.cli.AnsibleCLI
docker:
image: cytopia/ansible:latest-tools
user: "1000" # required to set ssh key permissions
env:
"ANSIBLE_HOST_KEY_CHECKING": "false"
# --> (optional) when using a different remote user
# "ANSIBLE_REMOTE_USER": "your-remote-user"
# <--
commands:
- ansible-playbook -i inventory.ini --key-file id_rsa myplaybook.yaml