1 Commits

Author SHA1 Message Date
68f9c4d550 Merge pull request 'ansible with drone ci' (#1) from development into main
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #1
2023-11-17 00:48:10 -05:00
13 changed files with 89 additions and 276 deletions

View File

@ -1,7 +1,2 @@
skip_list:
- yaml[line-length]
- yaml[colons]
exclude_paths:
- .drone.yml
- requirements.yml

View File

@ -1,226 +1,46 @@
---
name: Ansible Playbook Lint and Test Execution
kind: pipeline
type: docker
name: run_ansible_tests_fedora39
global-variables:
ansible_image : &ansible_image "gitea.thezengarden.net/podman/images/ansible-dev:latest"
ansible_inventory : &ansible_inventory "-i 127.0.0.1, --connection=local"
ansible_playbook : &ansible_playbook "hello.yml"
environment:
ANSIBLE_INVENTORY : *ansible_inventory
ANSIBLE_PLAYBOOK : *ansible_playbook
trigger:
branch:
exclude:
- main
event: [push]
steps:
- name: "ansible_environment_verify"
image: *ansible_image
- name: Install requirements, lint, and run Ansible playbook
image: gitea.thezengarden.net/podman/images/ansible-dev:latest
environment:
GITEA_TOKEN:
from_secret: gitea_token
ANSIBLE_INVENTORY:
from_secret: ansible_inventory
commands:
- git log -1
- ansible --version
- ansible-lint --version
- name: "ansible_galaxy_requirements"
image: *ansible_image
commands:
- ansible-galaxy install -r requirements.yml
- name: "ansible_lint"
image: *ansible_image
commands:
- ansible-lint --offline
- name: "ansible_playbook_execution"
image: *ansible_image
commands:
- ansible-playbook -v $ANSIBLE_INVENTORY $ANSIBLE_PLAYBOOK
---
kind: pipeline
type: docker
name: run_ansible_tests_centos9
global-variables:
ansible_image : &ansible_image "gitea.thezengarden.net/podman/images/ansible-dev:centos-stream9"
ansible_inventory : &ansible_inventory "-i 127.0.0.1, --connection=local"
ansible_playbook : &ansible_playbook "hello.yml"
environment:
ANSIBLE_INVENTORY : *ansible_inventory
ANSIBLE_PLAYBOOK : *ansible_playbook
trigger:
- ansible-galaxy install -r $DRONE_WORKSPACE/requirements.yml
- ansible-lint --offline $DRONE_WORKSPACE
- ansible-playbook -v -i $ANSIBLE_INVENTORY $DRONE_WORKSPACE/hello.yml
- echo "Build complete and successful for $DRONE_REPO_NAME"
when:
branch:
- development
event:
include:
- push
exclude:
- main
event: [push]
steps:
- name: "ansible_environment_verify"
image: *ansible_image
commands:
- git log -1
- ansible --version
- ansible-lint --version
- name: "ansible_galaxy_requirements"
image: *ansible_image
commands:
- ansible-galaxy install -r requirements.yml
- name: "ansible_lint"
image: *ansible_image
commands:
- ansible-lint --offline
- name: "ansible_playbook_execution"
image: *ansible_image
commands:
- ansible-playbook -v $ANSIBLE_INVENTORY $ANSIBLE_PLAYBOOK
---
kind: pipeline
type: docker
name: run_ansible_tests_debian12
global-variables:
ansible_image : &ansible_image "gitea.thezengarden.net/podman/images/ansible-dev:debian-12"
ansible_inventory : &ansible_inventory "-i 127.0.0.1, --connection=local"
ansible_playbook : &ansible_playbook "hello.yml"
environment:
ANSIBLE_INVENTORY : *ansible_inventory
ANSIBLE_PLAYBOOK : *ansible_playbook
trigger:
branch:
exclude:
- main
event: [push]
steps:
- name: "ansible_environment_verify"
image: *ansible_image
commands:
- git log -1
- ansible --version
- ansible-lint --version
- name: "ansible_galaxy_requirements"
image: *ansible_image
commands:
- ansible-galaxy install -r requirements.yml
- name: "ansible_lint"
image: *ansible_image
commands:
- ansible-lint --offline
- name: "ansible_playbook_execution"
image: *ansible_image
commands:
- ansible-playbook -v $ANSIBLE_INVENTORY $ANSIBLE_PLAYBOOK
- pull_request
# ---
# name: Test Ansible Linting of drone-test-1
# kind: pipeline
# type: exec
# name: check_docker
# trigger:
# branch:
# exclude:
# - main
# event: [push]
# status: [success]
# type: docker
# steps:
# - name: Add comment to pull request
# image: gitea.thezengarden.net/podman/images/ansible-dev:latest
# environment:
# GITEA_TOKEN:
# from_secret: gitea_token
# commands:
# - 'curl -sL -X POST -H "Authorization: token $GITEA_TOKEN" -H "Content-type: application/json" https://gitea.thezengarden.net/api/v1/repos/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME}/issues/${DRONE_PULL_REQUEST}/comments -d "{\"body\": \"Build complete and successful for $DRONE_REPO_NAME\"}"'
# depends_on:
# - run_ansible_tests
# steps:
# - name: check_env
# commands:
# - whoami
# - hostnamectl
# - env
# - pwd
# - tree
# - cat requirements.yml
# - name: docker_info
# commands:
# - docker info
# - name: docker_build
# environment:
# REGISTRY : gitea.thezengarden.net
# BUILD_PREFIX : "podman/images"
# BUILD_NAME : ansible-dev
# commands:
# - echo "docker build --no-cache -t $REGISTRY/$BUILD_PREFIX/$BUILD_NAME:$CI_BUILD_NUMBER ."
# - docker build --no-cache -t $REGISTRY/$BUILD_PREFIX/$BUILD_NAME:$CI_BUILD_NUMBER .
# - name: docker_login
# environment:
# REGISTRY : gitea.thezengarden.net
# GITEA_USER :
# from_secret: gitea_user
# GITEA_PASSWORD :
# from_secret: gitea_password
# commands:
# - echo "$GITEA_PASSWORD" | docker login --username chris --password-stdin $REGISTRY
# - name: docker_push
# environment:
# REGISTRY : gitea.thezengarden.net
# BUILD_PREFIX : "podman/images"
# BUILD_NAME : ansible-dev
# commands:
# - docker push $REGISTRY/$BUILD_PREFIX/$BUILD_NAME:$CI_BUILD_NUMBER
# - docker images | grep "$REGISTRY/$BUILD_PREFIX/$BUILD_NAME"
# - name: docker_images
# environment:
# REGISTRY : gitea.thezengarden.net
# BUILD_PREFIX : "podman/images"
# BUILD_NAME : ansible-dev
# commands:
# - docker images | grep "$REGISTRY/$BUILD_PREFIX/$BUILD_NAME"
# ---
# kind: pipeline
# type: exec
# name: setup_env
# trigger:
# branch:
# exclude:
# - main
# event: [push]
# steps:
# - name: write_vars
# environment:
# DIMG:
# from_secret: docker_image
# commands:
# - pwd
# - ls -ltra
# - echo "dimg=$DIMG" > .drone_env_test
# - name: read_vars
# commands:
# - pwd
# - ls -ltra
# - cat .drone_env_test
# - source .drone_env_test
# - echo $dimg
# - "Install requirements, lint, and run Ansible playbook"
# when:
# event:
# - pull_request

30
.drone.yml.test1 Normal file
View File

@ -0,0 +1,30 @@
---
name: Ansible Linting of drone-test-1
kind: pipeline
type: docker
steps:
- name: "Ansible Testing: Install required packages and Python modules"
image: quay.io/centos/centos:stream9
commands:
- dnf update -y
- dnf install -y python3-pip git hostname
- pip3 install ansible-core==2.14.11 ansible-lint==6.13.1
- name: "Ansible Testing: Make repo directory and clone desired repository"
image: quay.io/centos/centos:stream9
commands:
- mkdir /opt/test
- git clone https://gitea.thezengarden.net/chris/drone-test-1.git /opt/test/drone-test-1
depends_on:
- "Ansible Testing: Install required packages and Python modules"
- name: "Ansible Testing: Run Ansible-Lint and Ansible-Playbook against cloned repo"
image: quay.io/centos/centos:stream9
commands:
- ansible-lint /opt/test/drone-test-1
- ansible-playbook -v -i 127.0.0.1, /opt/test/drone-test-1/hello.yml
depends_on:
- "Ansible Testing: Make repo directory and clone desired repository"

1
.gitignore vendored
View File

@ -1 +0,0 @@
.old

View File

@ -1,20 +0,0 @@
FROM fedora:39
LABEL maintainer="Chris Hammer (chris@thezengarden.net)"
RUN rm /etc/localtime \
&& ln -s /usr/share/zoneinfo/US/Eastern /etc/localtime
RUN mkdir -p /root/.ssh
COPY conf/ssh_config /root/.ssh/config
COPY conf/hosts /etc/hosts
COPY conf/dnf.conf /etc/dnf/dnf.conf
COPY python/requirements.txt /tmp/requirements.txt
RUN dnf update -y
RUN dnf install -y python3-pip git ansible-core python3-ansible-lint
# && pip install pip --upgrade \
# && pip install -r /tmp/requirements.txt
COPY ansible/ansible-check.yml /tmp/ansible-check.yml
CMD ["/bin/bash"]

View File

@ -1,10 +0,0 @@
---
- name: Ansible Install Test
hosts: all
become: false
gather_facts: false
tasks:
- name: Test Ansible Installation
ansible.builtin.debug:
msg: "Ansible has been successfully installed!"

View File

@ -1,7 +0,0 @@
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
max_parallel_downloads=20

View File

@ -1 +0,0 @@
10.10.10.109 gitea.thezengarden.net

View File

@ -1,14 +0,0 @@
AddKeysToAgent yes
Host 10.*
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
Host git git.thezengarden.net
Hostname gitlab
Host gitea gitea.thezengarden.net
Hostname 10.10.10.109

View File

@ -1,9 +1,9 @@
- name: Hello world
hosts: all
hosts: localhost
connection: local
become: false
gather_facts: false
tasks:
- name: Say Hello world
ansible.builtin.debug:

21
old/drone-yml.centos8 Normal file
View File

@ -0,0 +1,21 @@
---
name: Ansible Linting of drone-test-1
kind: pipeline
type: docker
steps:
- name: Prepare CentOS 8 image, clone, and test code
image: centos:8
commands:
- hostname
- lscpu
- dnf --disablerepo '*' --enablerepo=extras swap centos-linux-repos centos-stream-repos -y
- dnf distro-sync -y
- dnf update -y
- hostname
- dnf install -y ansible-core git
- pip3 install ansible-lint
- mkdir /opt/test
- git clone https://gitea.thezengarden.net/chris/drone-test-1.git /opt/test/drone-test-1
- ansible-lint /opt/test/drone-test-1

View File

@ -1,2 +0,0 @@
ansible-core==2.14.11
ansible-lint==6.13.1

View File

@ -1,3 +1,5 @@
collections:
- name: ansible.posix
- name: community.general
- community.general
- ansible.netcommon
- community.docker
- containers.podman