Lab Overview

Document Control

TODO:

  • Overall structure.
  • Initial draft complete
  • Testing
  • Ready

User Story: Lab Overview

As a: Ansible Developer

I want: a development environment that follows DevOps principles

So that: develop, test and deploy ansible roles and playbooks, apply best practices and setup CI/CD tooling.

Environment Diagram

The development environment consists of a workstation running Linux - to edit ansible roles and playbooks, a controller (running ansible), supporting systems (Jekins, AWX and Gitlab) - and a variety of managed nodes for testing across multiple operating systems.

Development

  • workstation.lab.local - Development Workstation running Fedora 31. Development IDEs (VS Code, VIM). Feel free to use your own - see Linux setup for guidance.

Infrastructure

  • controller.lab.local - Ansible engine controller. Runs ansible.
  • gitlab.lab.local - gitlab environment.
  • jenkins.lab.local - ansible CI/CD system.
  • awx.lab.local - ansible AWX.

Managed Hosts

  • centos7.lab.local - ansible managed host.
  • centos8.lab.local - ansible managed host.
  • rhel7.lab.local - ansible managed host.
  • rhel81.lab.local - ansible manged host.
  • debian10.lab.local - ansible manged host.
  • ubuntu1804.lab.local - ansible managed host.

Workflow / Environment Diagram

graph TD; DE[Development Workstation: Fedora 31]-->GIT[GitLab]; GIT-->CICD[Jenkins: CI/CD]; CICD-->A[Ansible Controller: Ansible / Tower]; A[Ansible Controller]-->B[Fedora 31]; A[Ansible Controller]-->C[CentOS 8]; A[Ansible Controller]-->D[CentOS 7]; A[Ansible Controller]-->E[RHEL 7]; A[Ansible Controller]-->F[RHEL 8]; A[Ansible Controller]-->G[Debian 10]; A[Ansible Controller]-->H[Ubuntu 18.04];

Last update: 2020-01-26