@@ -22,5 +22,6 @@ jobs:
|
|||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: ${{gitea.workspace}}/docker
|
context: ${{gitea.workspace}}/docker
|
||||||
|
file: ansible-playbook.Dockerfile
|
||||||
push: true
|
push: true
|
||||||
tags: git.limbosolutions.com/kb/ansible:latest
|
tags: git.limbosolutions.com/kb/ansible-playbook:dev
|
||||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
**/**env.local
|
||||||
2
docker/.gitignore
vendored
Normal file
2
docker/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
playbook-workspace/**
|
||||||
|
workspace/**
|
||||||
@@ -6,3 +6,9 @@ RUN apt-get install -y openssh-client
|
|||||||
RUN apt-get install python3-pip -y
|
RUN apt-get install python3-pip -y
|
||||||
RUN apt-get install python3-virtualenv -y
|
RUN apt-get install python3-virtualenv -y
|
||||||
RUN pip3 install ansible --break-system-packages
|
RUN pip3 install ansible --break-system-packages
|
||||||
|
RUN pip3 install ansible-runner --break-system-packages
|
||||||
|
RUN mkdir /workspace
|
||||||
|
RUN mkdir /scripts
|
||||||
|
COPY scripts /scripts
|
||||||
|
COPY playbook-sample-workspace /workspace
|
||||||
|
ENTRYPOINT ["python3", "/scripts/run-ansible-playbook.py"]
|
||||||
14
docker/docker-run-ansible-playbook-local.sh
Executable file
14
docker/docker-run-ansible-playbook-local.sh
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#/bin/bash
|
||||||
|
source docker/docker-run-ansible-playbook-local.env.local
|
||||||
|
|
||||||
|
docker build docker \
|
||||||
|
-f docker/ansible-playbook.Dockerfile \
|
||||||
|
-t ${IMAGE_NAME}
|
||||||
|
|
||||||
|
docker run --rm \
|
||||||
|
-e ANSIBLE_PLAYBOOK_INVENTORY=$ANSIBLE_PLAYBOOK_INVENTORY \
|
||||||
|
-v ${VOLUME_PATH}:/workspace \
|
||||||
|
$IMAGE_NAME
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
9
docker/playbook-sample-workspace/site.yml
Normal file
9
docker/playbook-sample-workspace/site.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
- name: Hello from ansible
|
||||||
|
hosts: all
|
||||||
|
tasks:
|
||||||
|
- name: Ping my hosts
|
||||||
|
ansible.builtin.ping:
|
||||||
|
|
||||||
|
- name: Print message
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: Hello world
|
||||||
29
docker/scripts/run-ansible-playbook.py
Normal file
29
docker/scripts/run-ansible-playbook.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from ansible_runner import Runner, RunnerConfig
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def executePlaybook():
|
||||||
|
|
||||||
|
rc = RunnerConfig(
|
||||||
|
private_data_dir="/workspace"
|
||||||
|
)
|
||||||
|
|
||||||
|
rc.playbook=os.environ.get('ANSIBLE_PLAYBOOK', "site.yml")
|
||||||
|
rc.inventory=os.environ.get('ANSIBLE_PLAYBOOK_INVENTORY', "127.0.0.1,")
|
||||||
|
if(rc.inventory=="127.0.0.1,"):
|
||||||
|
rc.cmdline_args= "--limit 127.0.0.1 --connection local"
|
||||||
|
rc.prepare()
|
||||||
|
r = Runner(config=rc)
|
||||||
|
r.run()
|
||||||
|
|
||||||
|
def main():
|
||||||
|
executePlaybook()
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1
docker/scripts/ssh-test.bash
Normal file
1
docker/scripts/ssh-test.bash
Normal file
@@ -0,0 +1 @@
|
|||||||
|
echo ola mundo
|
||||||
Reference in New Issue
Block a user