All Projects → AnsibleCheck → ansiblecheck

AnsibleCheck / ansiblecheck

Licence: MIT license
One Stop Solution For Checking Your Ansible Roles and Playbooks

Programming Languages

Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to ansiblecheck

swiss-army
Ansible-driven configuration management for maintaining a preferred environment (base system and app dotfiles / configurations)
Stars: ✭ 44 (-21.43%)
Mutual labels:  ansible-playbooks, ansible-roles
ansible-viz
Graph relationships between Ansible playbooks / roles / tasks / vars etc. via static analysis
Stars: ✭ 33 (-41.07%)
Mutual labels:  ansible-playbooks, ansible-roles
RHEL7-CIS
Ansible RHEL 7 - CIS Benchmark Hardening Script
Stars: ✭ 28 (-50%)
Mutual labels:  ansible-playbooks, ansible-roles
lykops
lykops是一套web可视化的运维自动化项目,基于python3+django开发的。可视化、简化执行ansible任务,并提供详细的任务执行报告。
Stars: ✭ 129 (+130.36%)
Mutual labels:  ansible-playbooks, ansible-roles
rak8s
Stand up a Raspberry Pi based Kubernetes cluster with Ansible
Stars: ✭ 362 (+546.43%)
Mutual labels:  ansible-playbooks, ansible-roles
ansible-st2
Ansible Roles and Playbooks to deploy StackStorm
Stars: ✭ 85 (+51.79%)
Mutual labels:  ansible-playbooks, ansible-roles
escape-inventory
Storing and querying Escape releases
Stars: ✭ 16 (-71.43%)
Mutual labels:  continuous-integration
marvel-jarvig
Marvel JARVIG (Just A Rather Very Interesting Game) is a game that lets you find and discover Marvel Comics characters based on their name, image and description!
Stars: ✭ 13 (-76.79%)
Mutual labels:  continuous-integration
showyourwork
Fully reproducible, open source scientific articles in LaTeX.
Stars: ✭ 361 (+544.64%)
Mutual labels:  continuous-integration
flagsmith-java-client
Java Client for Flagsmith. Ship features with confidence using feature flags and remote config. Host yourself or use our hosted version at https://www.flagsmith.com/
Stars: ✭ 16 (-71.43%)
Mutual labels:  continuous-integration
www.go.cd
Github pages repo
Stars: ✭ 39 (-30.36%)
Mutual labels:  continuous-integration
build-plugin-template
Template repository to create new Netlify Build plugins.
Stars: ✭ 26 (-53.57%)
Mutual labels:  continuous-integration
initial-webserver-setup
Ansible playbook for initial ubuntu 16.04 webserver setup and Laravel zero time deployment
Stars: ✭ 50 (-10.71%)
Mutual labels:  ansible-roles
functionci
FunctionCI is an open source Continuous Integration tool for AWS Lambdas.
Stars: ✭ 33 (-41.07%)
Mutual labels:  continuous-integration
SDDC.Lab
Ansible playbooks for automated deployment and configuration of a nested vSphere environment with NSX-T
Stars: ✭ 117 (+108.93%)
Mutual labels:  ansible-playbooks
dashinator
Dashinator the daringly delightful dashboard. A replacement for dashing
Stars: ✭ 56 (+0%)
Mutual labels:  continuous-integration
makefiles
No description or website provided.
Stars: ✭ 23 (-58.93%)
Mutual labels:  continuous-integration
nightly-docker-rebuild
Use nightli.es 🌔 to rebuild N docker 🐋 images 📦 on hub.docker.com
Stars: ✭ 13 (-76.79%)
Mutual labels:  continuous-integration
linter-alex
📝Sensitive, considerate writing before you merge your Pull Requests
Stars: ✭ 67 (+19.64%)
Mutual labels:  continuous-integration
tagref
Tagref helps you maintain cross-references in your code.
Stars: ✭ 92 (+64.29%)
Mutual labels:  continuous-integration

AnsibleCheck

Build Status GitHub issues Docker Automated build Docker Pulls Join the chat at https://gitter.im/AnsibleCheck/ansiblecheck

A One Stop Solution For Checking Your Ansible Roles and Playbooks.

Docker Images

General Principles

AnsibleCheck utilizes Docker to deploy test boxes with Ansible built into the images. By then loading your generated roles into these docker instances you can check to insure compliance with the platforms that you claim your role supports.

In this project we utilize the same naming conventions that are offered in an Ansible galaxy project as well as more standard conventions by secondary tags.

Differing platforms have differing initialization scripts. None of these images are intended for production use. They are entirely built for the purpose of testing Ansible roles and playbooks.

If this is intended for automated testing, then travis builds are highly preferable because they allow you to demonstrate on your galaxy role that it can actually support the operating systems you claim to support.

How To Use

Travis-CI

To get started with travis-ci take a look at the examples in the docs. At the end of this section will be a complete list of supported environment combinations to generate valid travis builds of your roles. However distribution and distribution_version will be primarily matching the full list of Operating systems by ansible galaxy that is at the very bottom of this document.

Basically build your role and depending on how you would like to test your role or playbook, either simply or with multiple tests or with extra variables to assess whether your role/playbook runs as expected under all conditions.

Manually

  1. Install Docker
  2. Pull the desired image/images from Docker Hub. These images are tags that are in all lower case.
docker pull ansiblecheck/ansiblecheck:ubuntu-xenial
  1. Run a container from the image and mount the role/playbook into the image. Check run_opts and init for the travis build
docker run --detach --volume="${PWD}":/etc/ansible/roles/role_under_test:ro \
--privileged \
--volume=/sys/fs/cgroup:/sys/fs/cgroup:ro ansiblecheck/ansiblecheck:ubuntu-xenial \
/usr/lib/systemd/systemd
  1. Finally Utilize Ansible Inside of the Container Space To See That The Role functions correctly.
docker exec --tty "${container_id}" env TERM=xterm ansible-playbook \
 /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check
docker exec "$(cat ${container_id})" ansible-playbook \
 /etc/ansible/roles/role_under_test/tests/test.yml

AnsibleCheck Configurations

You can comment out an environment with # on each line of the list item.

- distribution: Ubuntu
  distribution_version: bionic
  init: /lib/systemd/systemd
  run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
- distribution: Ubuntu
  distribution_version: xenial
  init: /lib/systemd/systemd
  run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
- distribution: EL
  distribution_version: "7"
  init: /usr/lib/systemd/systemd
  run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
- distribution: EL
  distribution_version: "6"
  init: /sbin/init
  run_opts: ""
- distribution: Debian
  distribution_version: buster
  init: /lib/systemd/systemd
  run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
- distribution: Debian
  distribution_version: stretch
  init: /lib/systemd/systemd
  run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
- distribution: Debian
  distribution_version: jessie
  init: /lib/systemd/systemd
  run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
- distribution: Fedora
  distribution_version: "24"
  init: /usr/lib/systemd/systemd
  run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"

Ansible Galaxy Configurations

platforms:
  - name: OpenBSD
    versions:
      - all
      - 5.6
      - 5.7
      - 5.8
      - 5.9
      - 6.0
  - name: Fedora
    versions:
      - all
     - 16
     - 17
     - 18
     - 19
     - 20
     - 21
     - 22
     - 23
     - 24
  - name: DellOS
    versions:
      - all
      - 10
      - 6
      - 9
  - name: MacOSX
    versions:
      - all
      - 10.10
      - 10.11
      - 10.12
      - 10.7
      - 10.8
      - 10.9
  - name: Junos
    versions:
      - all
      - any
  - name: GenericBSD
    versions:
      - all
      - any
  - name: Void Linux
    versions:
      - all
      - any
  - name: GenericLinux
    versions:
      - all
      - any
  - name: NXOS
    versions:
      - all
      - any
  - name: IOS
    versions:
      - all
      - any
  - name: Amazon
    versions:
      - all
      - 2013.03
      - 2013.09
      - 2016.03
  - name: ArchLinux
    versions:
      - all
      - any
  - name: FreeBSD
    versions:
      - all
      - 10.0
      - 10.1
      - 10.2
      - 10.3
      - 8.0
      - 8.1
      - 8.2
      - 8.3
      - 8.4
      - 9.0
      - 9.1
      - 9.1
      - 9.2
      - 9.3
  - name: Ubuntu
    versions:
      - all
      - lucid
      - maverick
      - natty
      - oneiric
      - precise
      - quantal
      - raring
      - saucy
      - trusty
      - utopic
      - vivid
      - wily
      - xenial
      - bionic
  - name: Debian
    versions:
      - jessie
      - buster
      - stretch
  - name: EL
    versions:
      - all
      - 5
      - 6
      - 7
  - name: Windows
    versions:
      - all
      - 2012R2
  - name: SmartOS
    versions:
      - all
      - any
  - name: opensuse
    versions:
      - all
      - 12.1
      - 12.2
      - 12.3
      - 13.1
      - 13.2
  - name: SLES
    versions:
      - all
      - 10SP3
      - 10SP4
      - 11
      - 11SP1
      - 11SP2
      - 11SP3
      - 11SP4
      - 12
      - 12SP1
  - name: GenericUNIX
    versions:
      - all
      - any
  - name: Solaris
    versions:
      - all
      - 10
      - 11.0
      - 11.1
      - 11.2
      - 11.3
  - name: eos
    versions:
      - all
      - Any

Projects Using AnsibleCheck

Submit a pull request to add your project to the list.

Attribution

A significant piece of the base work came from groundwork laid out by geerlingguy for testing his own roles internally. Now hopefully we can all work towards building better roles where we are certain of the functionality they provide on multiple systems

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].