-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
77 lines (69 loc) · 90.2 KB
/
Copy pathindex.html
File metadata and controls
77 lines (69 loc) · 90.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=description content="Build, Package and Manage Secure OS and Container Images"><link href=https://devopstoolbox.github.io/docs/ rel=canonical><meta name=author content="Mihai Criveti"><meta name=lang:clipboard.copy content="Copy to clipboard"><meta name=lang:clipboard.copied content="Copied to clipboard"><meta name=lang:search.language content=en><meta name=lang:search.pipeline.stopwords content=True><meta name=lang:search.pipeline.trimmer content=True><meta name=lang:search.result.none content="No matching documents"><meta name=lang:search.result.one content="1 matching document"><meta name=lang:search.result.other content="# matching documents"><meta name=lang:search.tokenizer content=[\s\-]+><link rel="shortcut icon" href=theme/favicon.ico><meta name=generator content="mkdocs-1.0.4, mkdocs-material-4.6.0"><title>Introduction - Ansible DevOps Toolbox - Development Lab, Image Factory and Cloud Migration</title><link rel=stylesheet href=assets/stylesheets/application.1b62728e.css><link rel=stylesheet href=assets/stylesheets/application-palette.a8b3c06d.css><meta name=theme-color content=#ef5350><script src=assets/javascripts/modernizr.268332fc.js></script><link href=https://fonts.gstatic.com rel=preconnect crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:300,400,400i,700%7CIBM+Plex+Mono&display=fallback"><style>body,input{font-family:"IBM Plex Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"IBM Plex Mono","Courier New",Courier,monospace}</style><link rel=stylesheet href=assets/fonts/material-icons.css><link rel=stylesheet href=extra-uml.css><link rel=stylesheet href=pdf.css><link rel=stylesheet href=mermaid.css></head> <body dir=ltr data-md-color-primary=red data-md-color-accent=blue> <svg class=md-svg> <defs> <svg xmlns=http://www.w3.org/2000/svg width=416 height=448 viewbox="0 0 416 448" id=__github><path fill=currentColor d="M160 304q0 10-3.125 20.5t-10.75 19T128 352t-18.125-8.5-10.75-19T96 304t3.125-20.5 10.75-19T128 256t18.125 8.5 10.75 19T160 304zm160 0q0 10-3.125 20.5t-10.75 19T288 352t-18.125-8.5-10.75-19T256 304t3.125-20.5 10.75-19T288 256t18.125 8.5 10.75 19T320 304zm40 0q0-30-17.25-51T296 232q-10.25 0-48.75 5.25Q229.5 240 208 240t-39.25-2.75Q130.75 232 120 232q-29.5 0-46.75 21T56 304q0 22 8 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0 37.25-1.75t35-7.375 30.5-15 20.25-25.75T360 304zm56-44q0 51.75-15.25 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5T212 416q-19.5 0-35.5-.75t-36.875-3.125-38.125-7.5-34.25-12.875T37 371.5t-21.5-28.75Q0 312 0 260q0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25 30.875Q171.5 96 212 96q37 0 70 8 26.25-20.5 46.75-30.25T376 64q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34 99.5z"/></svg> </defs> </svg> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay data-md-component=overlay for=__drawer></label> <a href=#ansible-devops-toolbox tabindex=1 class=md-skip> Skip to content </a> <header class=md-header data-md-component=header> <nav class="md-header-nav md-grid"> <div class=md-flex> <div class="md-flex__cell md-flex__cell--shrink"> <a href=https://devopstoolbox.github.io/docs title="Ansible DevOps Toolbox - Development Lab, Image Factory and Cloud Migration" class="md-header-nav__button md-logo"> <img src=devopstoolbox.png width=24 height=24> </a> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--menu md-header-nav__button" for=__drawer></label> </div> <div class="md-flex__cell md-flex__cell--stretch"> <div class="md-flex__ellipsis md-header-nav__title" data-md-component=title> <span class=md-header-nav__topic> Ansible DevOps Toolbox - Development Lab, Image Factory and Cloud Migration </span> <span class=md-header-nav__topic> Introduction </span> </div> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--search md-header-nav__button" for=__search></label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=query data-md-state=active> <label class="md-icon md-search__icon" for=__search></label> <button type=reset class="md-icon md-search__icon" data-md-component=reset tabindex=-1>  </button> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=result> <div class=md-search-result__meta> Type to start searching </div> <ol class=md-search-result__list></ol> </div> </div> </div> </div> </div> </div> </div> </nav> </header> <div class=md-container> <nav class="md-tabs md-tabs--active" data-md-component=tabs> <div class="md-tabs__inner md-grid"> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=. class="md-tabs__link md-tabs__link--active"> Lab </a> </li> <li class=md-tabs__item> <a href=ansible_basics/ansible-help/ class=md-tabs__link> Ansible </a> </li> <li class=md-tabs__item> <a href=roles_basic/bootstrap/ class=md-tabs__link> Basic Roles </a> </li> <li class=md-tabs__item> <a href=roles_server/cockpit/ class=md-tabs__link> Server Roles </a> </li> <li class=md-tabs__item> <a href=roles_cloud_vm/virtualbox/ class=md-tabs__link> Cloud </a> </li> <li class=md-tabs__item> <a href=roles_containers_podman/ansible-buildah/ class=md-tabs__link> Containers </a> </li> <li class=md-tabs__item> <a href=roles_compliance/compliance-roles/ class=md-tabs__link> Security & Compliance </a> </li> <li class=md-tabs__item> <a href=roles_migration/ansible-cmdb/ class=md-tabs__link> Migration </a> </li> <li class=md-tabs__item> <a href=roles_sap/sap-baselines/ class=md-tabs__link> SAP </a> </li> <li class=md-tabs__item> <a href=playbooks/fedora-workstation/ class=md-tabs__link> Playbooks </a> </li> <li class=md-tabs__item> <a href=devops_testing/ansible-lint/ class=md-tabs__link> DevOps </a> </li> <li class=md-tabs__item> <a href=os_build/virt-install/ class=md-tabs__link> OS Builds </a> </li> <li class=md-tabs__item> <a href=about/authors/ class=md-tabs__link> About </a> </li> </ul> </div> </nav> <main class=md-main role=main> <div class="md-main__inner md-grid" data-md-component=container> <div class="md-sidebar md-sidebar--primary" data-md-component=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary" data-md-level=0> <label class="md-nav__title md-nav__title--site" for=__drawer> <a href=https://devopstoolbox.github.io/docs title="Ansible DevOps Toolbox - Development Lab, Image Factory and Cloud Migration" class="md-nav__button md-logo"> <img src=devopstoolbox.png width=48 height=48> </a> Ansible DevOps Toolbox - Development Lab, Image Factory and Cloud Migration </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-1 type=checkbox id=nav-1 checked> <label class=md-nav__link for=nav-1> Lab </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-1> Lab </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-toggle md-nav__toggle" data-md-toggle=toc type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> Introduction </label> <a href=. title=Introduction class="md-nav__link md-nav__link--active"> Introduction </a> <nav class="md-nav md-nav--secondary"> <label class=md-nav__title for=__toc>Table of contents</label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=#problem-description-and-solution class=md-nav__link> Problem Description and Solution </a> <nav class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a href=#problems class=md-nav__link> Problems </a> </li> <li class=md-nav__item> <a href=#solution class=md-nav__link> Solution </a> </li> <li class=md-nav__item> <a href=#technical-description class=md-nav__link> Technical description </a> </li> <li class=md-nav__item> <a href=#example-workflow class=md-nav__link> Example Workflow </a> </li> <li class=md-nav__item> <a href=#role-development-workflow class=md-nav__link> Role Development Workflow </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#personas-served class=md-nav__link> Personas Served </a> </li> <li class=md-nav__item> <a href=#use-cases-and-user-stories class=md-nav__link> Use Cases and User Stories </a> </li> <li class=md-nav__item> <a href=#playbooks class=md-nav__link> Playbooks </a> </li> <li class=md-nav__item> <a href=#tested-operating-systems class=md-nav__link> Tested Operating Systems </a> </li> <li class=md-nav__item> <a href=#roles class=md-nav__link> Roles </a> <nav class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a href=#basic-roles class=md-nav__link> Basic Roles </a> </li> <li class=md-nav__item> <a href=#server-roles class=md-nav__link> Server Roles </a> </li> <li class=md-nav__item> <a href=#cloud-roles class=md-nav__link> Cloud Roles </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#ansible-playbooks class=md-nav__link> Ansible Playbooks </a> </li> <li class=md-nav__item> <a href=#code-repository-and-links class=md-nav__link> Code Repository and Links </a> <nav class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a href=#github-and-ansible-galaxy class=md-nav__link> Github and Ansible Galaxy </a> </li> <li class=md-nav__item> <a href=#presentations-and-talks class=md-nav__link> Presentations and Talks: </a> </li> <li class=md-nav__item> <a href=#lines-of-code class=md-nav__link> Lines of Code </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=lab_setup/lab-overview/ title="Lab Overview" class=md-nav__link> Lab Overview </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-1-3 type=checkbox id=nav-1-3> <label class=md-nav__link for=nav-1-3> Linux Setup </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-1-3> Linux Setup </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=lab_setup/install-linux/ title="Linux OS Installation" class=md-nav__link> Linux OS Installation </a> </li> <li class=md-nav__item> <a href=lab_setup/install-linux-tools/ title="OS Tools and Editors" class=md-nav__link> OS Tools and Editors </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=lab_setup/setup-git/ title="Version Control with Git" class=md-nav__link> Version Control with Git </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-1-5 type=checkbox id=nav-1-5> <label class=md-nav__link for=nav-1-5> Linux Automated Setup </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-1-5> Linux Automated Setup </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=lab_automated/install-playbook/ title="Lab Playbook" class=md-nav__link> Lab Playbook </a> </li> <li class=md-nav__item> <a href=lab_automated/lab-vm-vagrant/ title="Vagrant Lab VMs" class=md-nav__link> Vagrant Lab VMs </a> </li> <li class=md-nav__item> <a href=lab_automated/lab-containers/ title="Container Lab VMs" class=md-nav__link> Container Lab VMs </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-2 type=checkbox id=nav-2> <label class=md-nav__link for=nav-2> Ansible </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-2> Ansible </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-2-1 type=checkbox id=nav-2-1> <label class=md-nav__link for=nav-2-1> Ansible Basics </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-2-1> Ansible Basics </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=ansible_basics/ansible-help/ title="Ansible: Getting Help" class=md-nav__link> Ansible: Getting Help </a> </li> <li class=md-nav__item> <a href=ansible_basics/ansible-terminology/ title="Ansible Terminology" class=md-nav__link> Ansible Terminology </a> </li> <li class=md-nav__item> <a href=ansible_basics/ad-hoc/ title="Ad-hoc commands" class=md-nav__link> Ad-hoc commands </a> </li> <li class=md-nav__item> <a href=ansible_basics/become/ title=Become class=md-nav__link> Become </a> </li> <li class=md-nav__item> <a href=ansible_basics/inventory/ title=Inventory class=md-nav__link> Inventory </a> </li> <li class=md-nav__item> <a href=ansible_basics/configuration/ title=Configuration class=md-nav__link> Configuration </a> </li> <li class=md-nav__item> <a href=ansible_basics/playbooks/ title=Playbooks class=md-nav__link> Playbooks </a> </li> <li class=md-nav__item> <a href=ansible_basics/vars/ title="Variables and Facts" class=md-nav__link> Variables and Facts </a> </li> <li class=md-nav__item> <a href=ansible_basics/task-control/ title="Task Control" class=md-nav__link> Task Control </a> </li> <li class=md-nav__item> <a href=ansible_basics/files/ title=Files class=md-nav__link> Files </a> </li> <li class=md-nav__item> <a href=ansible_basics/roles/ title=Roles class=md-nav__link> Roles </a> </li> <li class=md-nav__item> <a href=ansible_basics/templates/ title=Templates class=md-nav__link> Templates </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-2-2 type=checkbox id=nav-2-2> <label class=md-nav__link for=nav-2-2> Editing Ansible YAML </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-2-2> Editing Ansible YAML </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=ansible_yaml/introduction/ title="YAML Introduction" class=md-nav__link> YAML Introduction </a> </li> <li class=md-nav__item> <a href=ansible_yaml/yamllint/ title="Linting with yamllint" class=md-nav__link> Linting with yamllint </a> </li> <li class=md-nav__item> <a href=ansible_yaml/vim/ title="Setting up VIM" class=md-nav__link> Setting up VIM </a> </li> <li class=md-nav__item> <a href=ansible_yaml/vscode/ title="Setting up VSCode" class=md-nav__link> Setting up VSCode </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-2-3 type=checkbox id=nav-2-3> <label class=md-nav__link for=nav-2-3> Advanced Features </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-2-3> Advanced Features </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=ansible_advanced/vault/ title="Secrets and Vault" class=md-nav__link> Secrets and Vault </a> </li> <li class=md-nav__item> <a href=ansible_advanced/filters/ title="Lookups and Filters" class=md-nav__link> Lookups and Filters </a> </li> <li class=md-nav__item> <a href=ansible_advanced/delegation/ title="Delegation and Rolling Updates" class=md-nav__link> Delegation and Rolling Updates </a> </li> <li class=md-nav__item> <a href=ansible_advanced/tags/ title=Tags class=md-nav__link> Tags </a> </li> <li class=md-nav__item> <a href=ansible_advanced/notifications/ title=Notifications class=md-nav__link> Notifications </a> </li> <li class=md-nav__item> <a href=ansible_advanced/debugging/ title=Debugging class=md-nav__link> Debugging </a> </li> <li class=md-nav__item> <a href=ansible_advanced/plugins/ title=Plugins class=md-nav__link> Plugins </a> </li> <li class=md-nav__item> <a href=ansible_advanced/modules/ title="Writing Modules" class=md-nav__link> Writing Modules </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-2-4 type=checkbox id=nav-2-4> <label class=md-nav__link for=nav-2-4> Best Practices </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-2-4> Best Practices </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=ansible_best_practices/best-practices/ title="Best Practices" class=md-nav__link> Best Practices </a> </li> <li class=md-nav__item> <a href=ansible_best_practices/git/ title="Version Control with Git" class=md-nav__link> Version Control with Git </a> </li> <li class=md-nav__item> <a href=ansible_best_practices/cookiecutter/ title="Cookiecutter Templates" class=md-nav__link> Cookiecutter Templates </a> </li> <li class=md-nav__item> <a href=ansible_best_practices/performance/ title=Performance class=md-nav__link> Performance </a> </li> <li class=md-nav__item> <a href=ansible_best_practices/galaxy/ title="Ansible Galaxy" class=md-nav__link> Ansible Galaxy </a> </li> <li class=md-nav__item> <a href=ansible_best_practices/automation-hub/ title="Automation Hub" class=md-nav__link> Automation Hub </a> </li> <li class=md-nav__item> <a href=ansible_best_practices/collections/ title=Collections class=md-nav__link> Collections </a> </li> <li class=md-nav__item> <a href=ansible_best_practices/dynamic-inventory/ title="Dynamic Inventory" class=md-nav__link> Dynamic Inventory </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=ansible_best_practices/skeleton/ title="Example Structure" class=md-nav__link> Example Structure </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-3 type=checkbox id=nav-3> <label class=md-nav__link for=nav-3> Basic Roles </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-3> Basic Roles </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_basic/bootstrap/ title=Bootstrap class=md-nav__link> Bootstrap </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-3-2 type=checkbox id=nav-3-2> <label class=md-nav__link for=nav-3-2> User Setup </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-3-2> User Setup </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_basic/users/ title="Users and Groups" class=md-nav__link> Users and Groups </a> </li> <li class=md-nav__item> <a href=roles_basic/profile/ title=Profile class=md-nav__link> Profile </a> </li> <li class=md-nav__item> <a href=roles_basic/dotfiles/ title=Dotfiles class=md-nav__link> Dotfiles </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-3-3 type=checkbox id=nav-3-3> <label class=md-nav__link for=nav-3-3> Virtualization </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-3-3> Virtualization </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_virtualization/docker/ title="Docker CE" class=md-nav__link> Docker CE </a> </li> <li class=md-nav__item> <a href=roles_virtualization/podman/ title=Podman class=md-nav__link> Podman </a> </li> <li class=md-nav__item> <a href=roles_virtualization/kvm/ title=KVM class=md-nav__link> KVM </a> </li> <li class=md-nav__item> <a href=roles_virtualization/virtualbox/ title=Virtualbox class=md-nav__link> Virtualbox </a> </li> <li class=md-nav__item> <a href=roles_virtualization/vvmware/ title="VMWare Workstation" class=md-nav__link> VMWare Workstation </a> </li> <li class=md-nav__item> <a href=roles_virtualization/vmtools/ title=VMTools class=md-nav__link> VMTools </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-3-4 type=checkbox id=nav-3-4> <label class=md-nav__link for=nav-3-4> Development </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-3-4> Development </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_basic/anaconda/ title=Anaconda class=md-nav__link> Anaconda </a> </li> <li class=md-nav__item> <a href=roles_basic/npm/ title="NPM Modules" class=md-nav__link> NPM Modules </a> </li> <li class=md-nav__item> <a href=roles_basic/atom/ title="Atom Editor" class=md-nav__link> Atom Editor </a> </li> <li class=md-nav__item> <a href=roles_basic/vscode/ title="VS Code" class=md-nav__link> VS Code </a> </li> <li class=md-nav__item> <a href=roles_basic/hashicorp/ title="Hashicorp Tools" class=md-nav__link> Hashicorp Tools </a> </li> <li class=md-nav__item> <a href=roles_basic/cloudcli/ title="Cloud CLIs" class=md-nav__link> Cloud CLIs </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-3-5 type=checkbox id=nav-3-5> <label class=md-nav__link for=nav-3-5> Software Installation </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-3-5> Software Installation </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_basic/packages/ title=Packages class=md-nav__link> Packages </a> </li> <li class=md-nav__item> <a href=roles_basic/localbin/ title="Localbin Unpack" class=md-nav__link> Localbin Unpack </a> </li> <li class=md-nav__item> <a href=roles_basic/flatpak/ title=Flatpak class=md-nav__link> Flatpak </a> </li> <li class=md-nav__item> <a href=roles_basic/snap/ title=Snap class=md-nav__link> Snap </a> </li> <li class=md-nav__item> <a href=roles_basic/nvidia/ title="NVidia GPU Drivers" class=md-nav__link> NVidia GPU Drivers </a> </li> <li class=md-nav__item> <a href=roles_basic/ati/ title="AMD Radeon GPU Drivers" class=md-nav__link> AMD Radeon GPU Drivers </a> </li> <li class=md-nav__item> <a href=roles_basic/microcode/ title=Microcode class=md-nav__link> Microcode </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-3-6 type=checkbox id=nav-3-6> <label class=md-nav__link for=nav-3-6> Configuration </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-3-6> Configuration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_basic/subscription-manager/ title="Subscription Manager" class=md-nav__link> Subscription Manager </a> </li> <li class=md-nav__item> <a href=roles_basic/hostname/ title=Hostname class=md-nav__link> Hostname </a> </li> <li class=md-nav__item> <a href=roles_basic/mountiso/ title="Mount ISO" class=md-nav__link> Mount ISO </a> </li> <li class=md-nav__item> <a href=roles_basic/lvm/ title="LVM and Filesystem" class=md-nav__link> LVM and Filesystem </a> </li> <li class=md-nav__item> <a href=roles_basic/gnome/ title="Customize Gnome" class=md-nav__link> Customize Gnome </a> </li> <li class=md-nav__item> <a href=roles_basic/cleanup/ title=Cleanup class=md-nav__link> Cleanup </a> </li> <li class=md-nav__item> <a href=roles_basic/secure/ title=Secure class=md-nav__link> Secure </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4 type=checkbox id=nav-4> <label class=md-nav__link for=nav-4> Server Roles </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-4> Server Roles </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-1 type=checkbox id=nav-4-1> <label class=md-nav__link for=nav-4-1> Management Tools </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-1> Management Tools </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_server/cockpit/ title=Cockpit class=md-nav__link> Cockpit </a> </li> <li class=md-nav__item> <a href=roles_server/foreman/ title=Foreman class=md-nav__link> Foreman </a> </li> <li class=md-nav__item> <a href=roles_server/openssh/ title=OpenSSH class=md-nav__link> OpenSSH </a> </li> <li class=md-nav__item> <a href=roles_server/xrdp/ title="XRDP and TigerVNC" class=md-nav__link> XRDP and TigerVNC </a> </li> <li class=md-nav__item> <a href=roles_server/superset/ title=Superset class=md-nav__link> Superset </a> </li> <li class=md-nav__item> <a href=roles_server/freeipa/ title=FreeIPA class=md-nav__link> FreeIPA </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-2 type=checkbox id=nav-4-2> <label class=md-nav__link for=nav-4-2> Content Servers </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-2> Content Servers </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_server/apache/ title="Apache HTTPD" class=md-nav__link> Apache HTTPD </a> </li> <li class=md-nav__item> <a href=roles_server/nginx/ title=NGINX class=md-nav__link> NGINX </a> </li> <li class=md-nav__item> <a href=roles_server/tomcat/ title=Tomcat class=md-nav__link> Tomcat </a> </li> <li class=md-nav__item> <a href=roles_server/jboss/ title=JBoss class=md-nav__link> JBoss </a> </li> <li class=md-nav__item> <a href=roles_server/openliberty/ title="Open Liberty" class=md-nav__link> Open Liberty </a> </li> <li class=md-nav__item> <a href=roles_server/haproxy/ title=HAProxy class=md-nav__link> HAProxy </a> </li> <li class=md-nav__item> <a href=roles_server/php/ title="Apache PHP" class=md-nav__link> Apache PHP </a> </li> <li class=md-nav__item> <a href=roles_server/vsftpd/ title=VSFTPD class=md-nav__link> VSFTPD </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-3 type=checkbox id=nav-4-3> <label class=md-nav__link for=nav-4-3> Database </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-3> Database </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_server_db/postgresql/ title=PostgreSQL class=md-nav__link> PostgreSQL </a> </li> <li class=md-nav__item> <a href=roles_server_db/mariadb/ title=MariaDB class=md-nav__link> MariaDB </a> </li> <li class=md-nav__item> <a href=roles_server_db/redis/ title=Redis class=md-nav__link> Redis </a> </li> <li class=md-nav__item> <a href=roles_server_db/mongodb/ title=MongoDB class=md-nav__link> MongoDB </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-4 type=checkbox id=nav-4-4> <label class=md-nav__link for=nav-4-4> Messaging and Streaming </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-4> Messaging and Streaming </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_streaming/flink/ title="Apache Flink" class=md-nav__link> Apache Flink </a> </li> <li class=md-nav__item> <a href=roles_streaming/spark/ title="Apache Spark" class=md-nav__link> Apache Spark </a> </li> <li class=md-nav__item> <a href=roles_streaming/kafka/ title="Apache Kafka" class=md-nav__link> Apache Kafka </a> </li> <li class=md-nav__item> <a href=roles_streaming/activemq/ title="Apache ActiveMQ" class=md-nav__link> Apache ActiveMQ </a> </li> <li class=md-nav__item> <a href=roles_streaming/airflow/ title="Apache Airflow" class=md-nav__link> Apache Airflow </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-5 type=checkbox id=nav-4-5> <label class=md-nav__link for=nav-4-5> Search </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-5> Search </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_search/solr/ title="Apache Solr" class=md-nav__link> Apache Solr </a> </li> <li class=md-nav__item> <a href=roles_search/elasticsearch/ title=ElasticSearch class=md-nav__link> ElasticSearch </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-6 type=checkbox id=nav-4-6> <label class=md-nav__link for=nav-4-6> DevOps Tools </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-6> DevOps Tools </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_server/awx/ title="AWX / Tower" class=md-nav__link> AWX / Tower </a> </li> <li class=md-nav__item> <a href=roles_server/sonarqube/ title=SonarQube class=md-nav__link> SonarQube </a> </li> <li class=md-nav__item> <a href=roles_server/jenkins/ title=Jenkins class=md-nav__link> Jenkins </a> </li> <li class=md-nav__item> <a href=roles_server/rundeck/ title=Rundeck class=md-nav__link> Rundeck </a> </li> <li class=md-nav__item> <a href=roles_server/zuul/ title=Zuul class=md-nav__link> Zuul </a> </li> <li class=md-nav__item> <a href=roles_server/gerrit/ title=Gerrit class=md-nav__link> Gerrit </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-7 type=checkbox id=nav-4-7> <label class=md-nav__link for=nav-4-7> Linux Administration </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-7> Linux Administration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_linux/packages/ title=Packages class=md-nav__link> Packages </a> </li> <li class=md-nav__item> <a href=roles_linux/services/ title=Services class=md-nav__link> Services </a> </li> <li class=md-nav__item> <a href=roles_linux/firewalld/ title=FirewallD class=md-nav__link> FirewallD </a> </li> <li class=md-nav__item> <a href=roles_linux/cron/ title=Cron class=md-nav__link> Cron </a> </li> <li class=md-nav__item> <a href=roles_linux/ntp/ title=NTP class=md-nav__link> NTP </a> </li> <li class=md-nav__item> <a href=roles_linux/kdump/ title=KDump class=md-nav__link> KDump </a> </li> <li class=md-nav__item> <a href=roles_linux/selinux/ title=SELinux class=md-nav__link> SELinux </a> </li> <li class=md-nav__item> <a href=roles_linux/tuned/ title=Tuned class=md-nav__link> Tuned </a> </li> <li class=md-nav__item> <a href=roles_linux/time/ title=Time class=md-nav__link> Time </a> </li> <li class=md-nav__item> <a href=roles_linux/network/ title=Network class=md-nav__link> Network </a> </li> <li class=md-nav__item> <a href=roles_linux/storage/ title=Storage class=md-nav__link> Storage </a> </li> <li class=md-nav__item> <a href=roles_linux/mandb/ title=ManDB class=md-nav__link> ManDB </a> </li> <li class=md-nav__item> <a href=roles_linux/locatedb/ title=LocateDB class=md-nav__link> LocateDB </a> </li> <li class=md-nav__item> <a href=roles_linux/syslog/ title=Syslog class=md-nav__link> Syslog </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-8 type=checkbox id=nav-4-8> <label class=md-nav__link for=nav-4-8> MacOS </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-8> MacOS </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_macos/macos-packages/ title=Packages class=md-nav__link> Packages </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-9 type=checkbox id=nav-4-9> <label class=md-nav__link for=nav-4-9> AIX </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-9> AIX </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_aix/aix-packages/ title=Packages class=md-nav__link> Packages </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-4-10 type=checkbox id=nav-4-10> <label class=md-nav__link for=nav-4-10> Windows </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-4-10> Windows </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_windows/windows-packages/ title=Packages class=md-nav__link> Packages </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-5 type=checkbox id=nav-5> <label class=md-nav__link for=nav-5> Cloud </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-5> Cloud </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-5-1 type=checkbox id=nav-5-1> <label class=md-nav__link for=nav-5-1> Private Cloud </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-5-1> Private Cloud </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_cloud_vm/virtualbox/ title=VirtualBox class=md-nav__link> VirtualBox </a> </li> <li class=md-nav__item> <a href=roles_cloud_vm/vmware/ title=VMware class=md-nav__link> VMware </a> </li> <li class=md-nav__item> <a href=roles_cloud_vm/rhv/ title="Red Hat Virtualization" class=md-nav__link> Red Hat Virtualization </a> </li> <li class=md-nav__item> <a href=roles_cloud_vm/openstack/ title=OpenStack class=md-nav__link> OpenStack </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-5-2 type=checkbox id=nav-5-2> <label class=md-nav__link for=nav-5-2> AWS </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-5-2> AWS </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_cloud_aws/provision-virtual-server/ title="AWS Instances" class=md-nav__link> AWS Instances </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-5-3 type=checkbox id=nav-5-3> <label class=md-nav__link for=nav-5-3> IBM Cloud </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-5-3> IBM Cloud </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_cloud_ibm/provision-virtual-server/ title="Virtual Server" class=md-nav__link> Virtual Server </a> </li> <li class=md-nav__item> <a href=roles_cloud_ibm/provision-bare-metal/ title="Bare Metal" class=md-nav__link> Bare Metal </a> </li> <li class=md-nav__item> <a href=roles_cloud_ibm/provision-iks/ title="IBM Kubernetes Service" class=md-nav__link> IBM Kubernetes Service </a> </li> <li class=md-nav__item> <a href=roles_cloud_ibm/provision-roks/ title="IBM OpenShift Service" class=md-nav__link> IBM OpenShift Service </a> </li> <li class=md-nav__item> <a href=roles_cloud_ibm/provision-rhv/ title="Provision RHV on IBM Cloud" class=md-nav__link> Provision RHV on IBM Cloud </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-5-4 type=checkbox id=nav-5-4> <label class=md-nav__link for=nav-5-4> Azure Cloud </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-5-4> Azure Cloud </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_cloud_azure/provision-virtual-server/ title="Virtual Server" class=md-nav__link> Virtual Server </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-6 type=checkbox id=nav-6> <label class=md-nav__link for=nav-6> Containers </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-6> Containers </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-6-1 type=checkbox id=nav-6-1> <label class=md-nav__link for=nav-6-1> Podman and Buildah </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-6-1> Podman and Buildah </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_containers_podman/ansible-buildah/ title="Ansible and Buildah" class=md-nav__link> Ansible and Buildah </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-6-2 type=checkbox id=nav-6-2> <label class=md-nav__link for=nav-6-2> Kubernetes </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-6-2> Kubernetes </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_containers_kubernetes/operators/ title=Operators class=md-nav__link> Operators </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-6-3 type=checkbox id=nav-6-3> <label class=md-nav__link for=nav-6-3> OpenShift </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-6-3> OpenShift </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_containers_openshift/minishift/ title="Installing Minishift" class=md-nav__link> Installing Minishift </a> </li> <li class=md-nav__item> <a href=roles_containers_openshift/codeready-containers/ title="CodeReady Containers" class=md-nav__link> CodeReady Containers </a> </li> <li class=md-nav__item> <a href=roles_containers_openshift/openshift-install/ title="Installing OpenShift" class=md-nav__link> Installing OpenShift </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-7 type=checkbox id=nav-7> <label class=md-nav__link for=nav-7> Security & Compliance </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-7> Security & Compliance </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_compliance/compliance-roles/ title="Ansible Compliance Roles" class=md-nav__link> Ansible Compliance Roles </a> </li> <li class=md-nav__item> <a href=roles_compliance/openscap/ title="OpenSCAP Playbooks" class=md-nav__link> OpenSCAP Playbooks </a> </li> <li class=md-nav__item> <a href=roles_compliance/ca/ title="Certificate Authority" class=md-nav__link> Certificate Authority </a> </li> <li class=md-nav__item> <a href=roles_compliance/snort/ title="Snort IDS" class=md-nav__link> Snort IDS </a> </li> <li class=md-nav__item> <a href=roles_compliance/qradar/ title="SIEM: QRadar Community" class=md-nav__link> SIEM: QRadar Community </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-8 type=checkbox id=nav-8> <label class=md-nav__link for=nav-8> Migration </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-8> Migration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_migration/ansible-cmdb/ title="Ansible CMDB" class=md-nav__link> Ansible CMDB </a> </li> <li class=md-nav__item> <a href=roles_migration/convert2rhel/ title=Convert2RHEL class=md-nav__link> Convert2RHEL </a> </li> <li class=md-nav__item> <a href=roles_migration/migration-analytics/ title="Migration Analytics" class=md-nav__link> Migration Analytics </a> </li> <li class=md-nav__item> <a href=roles_migration/migration-planning-guide/ title="RHEL Migration Planning (Upgrade)" class=md-nav__link> RHEL Migration Planning (Upgrade) </a> </li> <li class=md-nav__item> <a href=roles_migration/ims/ title="RHV Infrastructure Migration Solution" class=md-nav__link> RHV Infrastructure Migration Solution </a> </li> <li class=md-nav__item> <a href=roles_migration/app-migration-toolkit/ title="RHAMT - Red Hat Application Migration Toolkit" class=md-nav__link> RHAMT - Red Hat Application Migration Toolkit </a> </li> <li class=md-nav__item> <a href=roles_migration/openshift-cam/ title="OpenShift - Cluster Application Migration Tool (CAM)" class=md-nav__link> OpenShift - Cluster Application Migration Tool (CAM) </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-9 type=checkbox id=nav-9> <label class=md-nav__link for=nav-9> SAP </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-9> SAP </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=roles_sap/sap-baselines/ title="SAP Baseline Settings" class=md-nav__link> SAP Baseline Settings </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-10 type=checkbox id=nav-10> <label class=md-nav__link for=nav-10> Playbooks </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-10> Playbooks </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=playbooks/fedora-workstation/ title="Fedora Workstation" class=md-nav__link> Fedora Workstation </a> </li> <li class=md-nav__item> <a href=playbooks/python-development/ title="Python Development" class=md-nav__link> Python Development </a> </li> <li class=md-nav__item> <a href=playbooks/wordpress/ title="HA Wordpress" class=md-nav__link> HA Wordpress </a> </li> <li class=md-nav__item> <a href=playbooks/patching/ title=Patching class=md-nav__link> Patching </a> </li> <li class=md-nav__item> <a href=playbooks/compliance/ title="Continuous Compliance" class=md-nav__link> Continuous Compliance </a> </li> <li class=md-nav__item> <a href=playbooks/jetson-nano/ title="Jetson Nano" class=md-nav__link> Jetson Nano </a> </li> <li class=md-nav__item> <a href=playbooks/raspberry-pi/ title="Raspberry Pi" class=md-nav__link> Raspberry Pi </a> </li> <li class=md-nav__item> <a href=playbooks/windows-workstation/ title=Windows class=md-nav__link> Windows </a> </li> <li class=md-nav__item> <a href=playbooks/freebsd/ title=FreeBSD class=md-nav__link> FreeBSD </a> </li> <li class=md-nav__item> <a href=playbooks/openbsd/ title=OpenBSD class=md-nav__link> OpenBSD </a> </li> <li class=md-nav__item> <a href=playbooks/macos/ title=MacOS class=md-nav__link> MacOS </a> </li> <li class=md-nav__item> <a href=playbooks/aws-sandbox/ title="AWS Sandbox" class=md-nav__link> AWS Sandbox </a> </li> <li class=md-nav__item> <a href=playbooks/ibmcloud-sandbox/ title="IBM Cloud Sandbox" class=md-nav__link> IBM Cloud Sandbox </a> </li> <li class=md-nav__item> <a href=playbooks/backup/ title=Backup class=md-nav__link> Backup </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-11 type=checkbox id=nav-11> <label class=md-nav__link for=nav-11> DevOps </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-11> DevOps </label> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-11-1 type=checkbox id=nav-11-1> <label class=md-nav__link for=nav-11-1> Static Analysis </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-11-1> Static Analysis </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=devops_testing/ansible-lint/ title="ansible-lint and yamllint" class=md-nav__link> ansible-lint and yamllint </a> </li> <li class=md-nav__item> <a href=devops_testing/ansible-test/ title="ansible-test sanity tests" class=md-nav__link> ansible-test sanity tests </a> </li> <li class=md-nav__item> <a href=devops_testing/ansigenome/ title="ansigenome scan and gendoc" class=md-nav__link> ansigenome scan and gendoc </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-11-2 type=checkbox id=nav-11-2> <label class=md-nav__link for=nav-11-2> Testing with Molecule </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-11-2> Testing with Molecule </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=devops_testing/molecule/ title="Molecule Basics" class=md-nav__link> Molecule Basics </a> </li> <li class=md-nav__item> <a href=devops_testing/molecule-docker/ title="Testing with Docker" class=md-nav__link> Testing with Docker </a> </li> <li class=md-nav__item> <a href=devops_testing/molecule-podman/ title="Testing with Podman" class=md-nav__link> Testing with Podman </a> </li> <li class=md-nav__item> <a href=devops_testing/molecule-kvm/ title="Testing with KVM" class=md-nav__link> Testing with KVM </a> </li> <li class=md-nav__item> <a href=devops_testing/goss/ title="Testing with GOSS" class=md-nav__link> Testing with GOSS </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-11-3 type=checkbox id=nav-11-3> <label class=md-nav__link for=nav-11-3> Continuous Integration </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-11-3> Continuous Integration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=devops_cicd/jenkins/ title=Jenkins class=md-nav__link> Jenkins </a> </li> <li class=md-nav__item> <a href=devops_cicd/travis/ title=TravisCD class=md-nav__link> TravisCD </a> </li> <li class=md-nav__item> <a href=devops_cicd/zuul/ title=Zuul class=md-nav__link> Zuul </a> </li> <li class=md-nav__item> <a href=devops_cicd/gerrit/ title="Gerrit Code Review" class=md-nav__link> Gerrit Code Review </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-11-4 type=checkbox id=nav-11-4> <label class=md-nav__link for=nav-11-4> Continuous Deployment </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-11-4> Continuous Deployment </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=devops_automate/awx/ title="AWX / Tower" class=md-nav__link> AWX / Tower </a> </li> <li class=md-nav__item> <a href=devops_automate/rundeck/ title=Rundeck class=md-nav__link> Rundeck </a> </li> <li class=md-nav__item> <a href=devops_automate/terraform/ title=Terraform class=md-nav__link> Terraform </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-11-5 type=checkbox id=nav-11-5> <label class=md-nav__link for=nav-11-5> Tools </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-11-5> Tools </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=devops_tools/mitogen/ title="Mitogen Speeds Up Ansible" class=md-nav__link> Mitogen Speeds Up Ansible </a> </li> <li class=md-nav__item> <a href=devops_tools/ara/ title="ARA Records Ansible" class=md-nav__link> ARA Records Ansible </a> </li> <li class=md-nav__item> <a href=devops_tools/ansible-xlsx/ title="Ansible XLSX Inventory" class=md-nav__link> Ansible XLSX Inventory </a> </li> <li class=md-nav__item> <a href=devops_tools/ansible-terraform/ title="Ansible Terraform.py" class=md-nav__link> Ansible Terraform.py </a> </li> <li class=md-nav__item> <a href=devops_tools/ansible-inventory-grapher/ title="Ansible Inventory Grapher" class=md-nav__link> Ansible Inventory Grapher </a> </li> <li class=md-nav__item> <a href=devops_tools/hashicorp-vault/ title="Hashicorp Vault Secrets Store" class=md-nav__link> Hashicorp Vault Secrets Store </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-12 type=checkbox id=nav-12> <label class=md-nav__link for=nav-12> OS Builds </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-12> OS Builds </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=os_build/virt-install/ title="KVM and VirtInstall" class=md-nav__link> KVM and VirtInstall </a> </li> <li class=md-nav__item> <a href=os_build/kickstart/ title=Kickstart class=md-nav__link> Kickstart </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-12-3 type=checkbox id=nav-12-3> <label class=md-nav__link for=nav-12-3> Packer - Multi Cloud Build </label> <nav class=md-nav data-md-component=collapsible data-md-level=2> <label class=md-nav__title for=nav-12-3> Packer - Multi Cloud Build </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=os_packer/packer/ title="Build OS with Packer" class=md-nav__link> Build OS with Packer </a> </li> <li class=md-nav__item> <a href=os_packer/vagrant/ title="Provision with Vagrant" class=md-nav__link> Provision with Vagrant </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-toggle md-nav__toggle" data-md-toggle=nav-13 type=checkbox id=nav-13> <label class=md-nav__link for=nav-13> About </label> <nav class=md-nav data-md-component=collapsible data-md-level=1> <label class=md-nav__title for=nav-13> About </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=about/authors/ title=Authors class=md-nav__link> Authors </a> </li> <li class=md-nav__item> <a href=about/references/ title="References and Links" class=md-nav__link> References and Links </a> </li> <li class=md-nav__item> <a href=about/contributing/ title=Contributing class=md-nav__link> Contributing </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary"> <label class=md-nav__title for=__toc>Table of contents</label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=#problem-description-and-solution class=md-nav__link> Problem Description and Solution </a> <nav class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a href=#problems class=md-nav__link> Problems </a> </li> <li class=md-nav__item> <a href=#solution class=md-nav__link> Solution </a> </li> <li class=md-nav__item> <a href=#technical-description class=md-nav__link> Technical description </a> </li> <li class=md-nav__item> <a href=#example-workflow class=md-nav__link> Example Workflow </a> </li> <li class=md-nav__item> <a href=#role-development-workflow class=md-nav__link> Role Development Workflow </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#personas-served class=md-nav__link> Personas Served </a> </li> <li class=md-nav__item> <a href=#use-cases-and-user-stories class=md-nav__link> Use Cases and User Stories </a> </li> <li class=md-nav__item> <a href=#playbooks class=md-nav__link> Playbooks </a> </li> <li class=md-nav__item> <a href=#tested-operating-systems class=md-nav__link> Tested Operating Systems </a> </li> <li class=md-nav__item> <a href=#roles class=md-nav__link> Roles </a> <nav class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a href=#basic-roles class=md-nav__link> Basic Roles </a> </li> <li class=md-nav__item> <a href=#server-roles class=md-nav__link> Server Roles </a> </li> <li class=md-nav__item> <a href=#cloud-roles class=md-nav__link> Cloud Roles </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#ansible-playbooks class=md-nav__link> Ansible Playbooks </a> </li> <li class=md-nav__item> <a href=#code-repository-and-links class=md-nav__link> Code Repository and Links </a> <nav class=md-nav> <ul class=md-nav__list> <li class=md-nav__item> <a href=#github-and-ansible-galaxy class=md-nav__link> Github and Ansible Galaxy </a> </li> <li class=md-nav__item> <a href=#presentations-and-talks class=md-nav__link> Presentations and Talks: </a> </li> <li class=md-nav__item> <a href=#lines-of-code class=md-nav__link> Lines of Code </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class=md-content> <article class="md-content__inner md-typeset"> <h1 id=ansible-devops-toolbox>Ansible DevOps Toolbox<a class=headerlink href=#ansible-devops-toolbox title="Permanent link"></a></h1> <blockquote> <p>A collection of high quality roles and playbooks that follow current best practices, a common style and have detailed documentation and User Stories reflecting the use cases.</p> <p>Roles can be used individually or combined in playbooks to solve common problems such as Cloud Image Factory, Discovery, Migration, Continuous Patching and Compliance, Cloud Provisioning, and Kubernetes/OpenShift deployment and management.</p> <p>All roles are tested (yamllint, ansible, molecule, goss) and set up with CI/CD (TravisCI) and published on Ansible Galaxy - and cookiecutter templates and development guids are provided in the Lab and DevOps sections.</p> </blockquote> <details class=abstract><summary>Document Control</summary><p><strong>TODO:</strong></p> <ul class=task-list> <li class=task-list-item><label class=task-list-control><input type=checkbox disabled checked><span class=task-list-indicator></span></label> Overall structure.</li> <li class=task-list-item><label class=task-list-control><input type=checkbox disabled checked><span class=task-list-indicator></span></label> Presentation decks in Google Docs</li> </ul> </details> <h2 id=problem-description-and-solution>Problem Description and Solution<a class=headerlink href=#problem-description-and-solution title="Permanent link"></a></h2> <h4 id=problems>Problems<a class=headerlink href=#problems title="Permanent link"></a></h4> <ul> <li><strong>Cloud:</strong> Building and managing virtual and cloud environments across DEV, TEST, STAGING and PRODUCTION requires a lot of manual steps that cannot be easily shared and re-used across platforms. Building and maintaing master golden images is expensive, and is not easily re-used.</li> <li><strong>Security and Compliance</strong>: DEV and PRODUCTION environments are built differently and don't usually share the same compliance or security settings.</li> <li><strong>Migration</strong> across platforms is difficult and re-install or re-platform approaches are time consuming.</li> <li><strong>Container Builds</strong>: are inconsistent and not aligned with OS security baselines.</li> <li><strong>Security</strong>: Update and maintain SSL and Certificate Authority configuration.</li> <li><strong>Modernization and Migration</strong>: how can I re-platform to a modern system that uses automation and configuration management? Ex: move from manually managed runbooks to runbook automation.</li> </ul> <h4 id=solution>Solution<a class=headerlink href=#solution title="Permanent link"></a></h4> <ul> <li>End-to-end automation that is modular, extensible and easily integrated with Continuous Deployment systems.</li> <li>Automated image build system that creates modular images that target all virtual and cloud platforms, and can be extended / combined as part of a CI/CD pipeline to create tailored images (ex: PCI compliant PS images that target IBM Cloud VCS and Azure / AWS / VMware that share the same build systems and tools as the local images used for DEV/TEST that might run on VirtualBox, KVM, OpenStack or RHV platforms).</li> <li>Security and compliance are built in, from day 1. Images are updated as part of the build process, and daily / continuous builds and automated testing allow for images to always be provisioned using a secure baseline.</li> <li>Discovery scripts used for OS migration. Modular images used as landing platforms.</li> <li>Modern, two-stage container builds that use buildah to package applications for container platforms.</li> </ul> <h4 id=technical-description>Technical description<a class=headerlink href=#technical-description title="Permanent link"></a></h4> <ul> <li>Collection of Ansible roles, playbooks, plugins, and modules</li> <li>OS image build systems (packer, virsh and kickstart)</li> </ul> <h4 id=example-workflow>Example Workflow<a class=headerlink href=#example-workflow title="Permanent link"></a></h4> <blockquote> <p>An example workflow for using the master golden images</p> </blockquote> <pre class=uml-flowchart><code>start=>start: Packer Build Spec|past
end=>end: End|future
packer_kickstart=>operation: Kickstart
Install RHEL
packer_ansible=>operation: Post Install
Ansible Baseline
Security Profile
packer_container=>operation: Container Build
packer_image=>operation: Golden OS Image
ansible_provision=>operation: Ansible Provision
(VM/Cloud/Container)
ansible_middleware=>operation: Ansible
Middleware Install
ansible_app=>operation: Ansible
Application Deploy
ansible_maintain=>operation: Ansible
Maintenance
cond=>condition: Virtual
Machine
start->cond
cond(no,left)->packer_container->packer_image
cond(yes)->packer_kickstart->packer_ansible->packer_image
packer_image->ansible_provision
ansible_provision(right)->ansible_middleware->ansible_app->ansible_maintain</code></pre> <h4 id=role-development-workflow>Role Development Workflow<a class=headerlink href=#role-development-workflow title="Permanent link"></a></h4> <ul> <li>Init a new role from the Cookiecutter Template</li> <li>Lint code with <code>yamllint</code> and <code>ansible-lint</code></li> <li>Install role with <code>molecule</code> on Docker and KVM</li> <li>Unit test role with <code>goss</code></li> <li>Push to Github</li> <li>Trigger automatic CI/CD using Travis-CI (test matrix against supported Operating Systems). Runs molecule / goss tests.</li> </ul> <h2 id=personas-served>Personas Served<a class=headerlink href=#personas-served title="Permanent link"></a></h2> <ul> <li>Developer: writes code, sets up static analysis, runs builds.</li> <li>Image Architect / Migration Engineer: migrate and convert virtual machines. Discover applications and systems. Install middleware.</li> <li>CI/CD/Build Engineer/Delivery Engineer: sets up CI/CD, automates builds.</li> <li>Cloud Architect: uses multiple cloud providers, APIs, SDKs and toolkits. Provision entire landscapes.</li> <li>SRE Engineer / Linux and UNIX Systems Administrator: Install various server roles, configure and secure systems.</li> <li>Ansible Developer: Writes ansible playbooks and roles.</li> <li>Kubernetes Engineer: sets up Kubernetes / OpenShift environments. Creates container builds.</li> <li>Linux Desktop User: sets up Linux desktop environments and configures dotfiles.</li> <li>Compliance Officer: sets up compliance and security rules.</li> </ul> <h2 id=use-cases-and-user-stories>Use Cases and User Stories<a class=headerlink href=#use-cases-and-user-stories title="Permanent link"></a></h2> <blockquote> <p>Use cases include Provisioning, Configuration Management and Configuring Operating Systems, Application Deployment Continuous Delivery, Security and Compliance Automation, Orchestration, and Migration.</p> </blockquote> <table> <thead> <tr> <th>As a (user)</th> <th>I want to (feature)</th> <th>So that (benefit)</th> </tr> </thead> <tbody> <tr> <td>Developer</td> <td>install my Development Environment and tools</td> <td>save time and maintain consistency within the team</td> </tr> <tr> <td>Image Architect</td> <td>automate all OS image builds across private and public cloud, with CI/CD</td> <td>maintain a single set of master golden images, and fully automate the image build and post-install steps.</td> </tr> <tr> <td>Build Engineer</td> <td>setup CI/CD pipelines and tools</td> <td>setup pipelines as code and apply DevOps principles</td> </tr> <tr> <td>Delivery Engineer</td> <td>Continuous Delivery</td> <td>perform continuous deliver and application lifecycle management</td> </tr> <tr> <td>Cloud Architect</td> <td>define my Cloud Environment using Code</td> <td>setup architecture as code and easily provision cloud environments</td> </tr> <tr> <td>Operations Engineer</td> <td>Continuous Patching</td> <td>apply security fixes to my system</td> </tr> <tr> <td>Operations Engineer</td> <td>Security Configuration</td> <td>apply security configuration changes to my systems</td> </tr> <tr> <td>Compliance Officer</td> <td>Continuous Compliance</td> <td>apply security profiles to server and workstations (HIPAA, PCI, ISO 27001, etc).</td> </tr> <tr> <td>Automation Engineer</td> <td>Ansible Templates and Starters</td> <td>easily get started with Ansible, or refactor existing code while applying best practices from Day 1.</td> </tr> <tr> <td>Automation Engineer</td> <td>Ansible Reference and Best Practices</td> <td>broaden my knowledge, and have a quick reference to best pratices or a way to train my team.</td> </tr> <tr> <td>Migration Engineer</td> <td>Facts Discovery and Display</td> <td>Discover operating systems facts and easily browse / export them (excel, webpage)</td> </tr> <tr> <td>SRE Architect</td> <td>CMDB Integration</td> <td>I can manage systems part of my CMDB</td> </tr> </tbody> </table> <h2 id=playbooks>Playbooks<a class=headerlink href=#playbooks title="Permanent link"></a></h2> <ul> <li>Fedora Workstation</li> <li>Python Development</li> <li>HA Wordpress</li> <li>Patching</li> <li>Continuous Compliance</li> <li>Jetson Nano</li> <li>Raspberry Pi</li> <li>Windows</li> <li>FreeBSD</li> <li>OpenBSD</li> <li>MacOS</li> <li>AWS Sandbox</li> <li>IBM Cloud Sandbox</li> <li>Backup</li> </ul> <h2 id=tested-operating-systems>Tested Operating Systems<a class=headerlink href=#tested-operating-systems title="Permanent link"></a></h2> <p>Most roles are supported on:</p> <ul> <li>CentOS / RHEL 7</li> <li>CentOS / RHEL 8</li> <li>Fedora 31</li> <li>Debian 10</li> <li>Ubuntu 18.04</li> </ul> <p>Roles that manage AIX, Windows or Cloud instances are described as such.</p> <h2 id=roles>Roles<a class=headerlink href=#roles title="Permanent link"></a></h2> <h3 id=basic-roles>Basic Roles<a class=headerlink href=#basic-roles title="Permanent link"></a></h3> <table> <thead> <tr> <th>Area</th> <th>Role</th> <th>Description</th> <th>QA</th> </tr> </thead> <tbody> <tr> <td>Bootstrap</td> <td><a href=roles_basic/bootstrap>bootstrap</a></td> <td>Install python (raw module)</td> <td><a href=https://travis-ci.org/devopstoolbox/users><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/users.svg?branch=master"></a></td> </tr> <tr> <td>User Setup</td> <td><a href=roles_basic/bootstrap>bootstrap</a></td> <td>Install bootstrap</td> <td><a href=https://travis-ci.org/devopstoolbox/bootstrap><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/bootstrap.svg?branch=master"></a></td> </tr> <tr> <td>User Setup</td> <td><a href=roles_basic/users>users</a></td> <td>Install users</td> <td><a href=https://travis-ci.org/devopstoolbox/users><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/users.svg?branch=master"></a></td> </tr> <tr> <td>User Setup</td> <td><a href=roles_basic/profile>profile</a></td> <td>Install profile</td> <td><a href=https://travis-ci.org/devopstoolbox/profile><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/profile.svg?branch=master"></a></td> </tr> <tr> <td>Virtualization</td> <td><a href=roles_basic/docker>docker</a></td> <td>Install docker</td> <td><a href=https://travis-ci.org/devopstoolbox/docker><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/docker.svg?branch=master"></a></td> </tr> <tr> <td>Virtualization</td> <td><a href=roles_basic/podman>podman</a></td> <td>Install podman</td> <td><a href=https://travis-ci.org/devopstoolbox/podman><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/podman.svg?branch=master"></a></td> </tr> <tr> <td>Virtualization</td> <td><a href=roles_basic/kvm>kvm</a></td> <td>Install kvm</td> <td><a href=https://travis-ci.org/devopstoolbox/kvm><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/kvm.svg?branch=master"></a></td> </tr> <tr> <td>Virtualization</td> <td><a href=roles_basic/virtualbox>virtualbox</a></td> <td>Install virtualbox</td> <td><a href=https://travis-ci.org/devopstoolbox/virtualbox><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/virtualbox.svg?branch=master"></a></td> </tr> <tr> <td>Virtualization</td> <td><a href=roles_basic/vvmware>vvmware</a></td> <td>Install vvmware</td> <td><a href=https://travis-ci.org/devopstoolbox/vvmware><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/vvmware.svg?branch=master"></a></td> </tr> <tr> <td>Virtualization</td> <td><a href=roles_basic/vmtools>vmtools</a></td> <td>Install vmtools</td> <td><a href=https://travis-ci.org/devopstoolbox/vmtools><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/vmtools.svg?branch=master"></a></td> </tr> <tr> <td>Development</td> <td><a href=roles_basic/anaconda>anaconda</a></td> <td>Install anaconda</td> <td><a href=https://travis-ci.org/devopstoolbox/anaconda><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/anaconda.svg?branch=master"></a></td> </tr> <tr> <td>Development</td> <td><a href=roles_basic/npm>npm</a></td> <td>Install npm</td> <td><a href=https://travis-ci.org/devopstoolbox/npm><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/npm.svg?branch=master"></a></td> </tr> <tr> <td>Development</td> <td><a href=roles_basic/atom>atom</a></td> <td>Install atom</td> <td><a href=https://travis-ci.org/devopstoolbox/atom><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/atom.svg?branch=master"></a></td> </tr> <tr> <td>Development</td> <td><a href=roles_basic/vscode>vscode</a></td> <td>Install vscode</td> <td><a href=https://travis-ci.org/devopstoolbox/vscode><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/vscode.svg?branch=master"></a></td> </tr> <tr> <td>Development</td> <td><a href=roles_basic/hashicorp>hashicorp</a></td> <td>Install hashicorp</td> <td><a href=https://travis-ci.org/devopstoolbox/hashicorp><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/hashicorp.svg?branch=master"></a></td> </tr> <tr> <td>Development</td> <td><a href=roles_basic/cloudcli>cloudcli</a></td> <td>Install cloudcli</td> <td><a href=https://travis-ci.org/devopstoolbox/cloudcli><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/cloudcli.svg?branch=master"></a></td> </tr> <tr> <td>Software Installation</td> <td><a href=roles_basic/packages>packages</a></td> <td>Install packages</td> <td><a href=https://travis-ci.org/devopstoolbox/packages><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/packages.svg?branch=master"></a></td> </tr> <tr> <td>Software Installation</td> <td><a href=roles_basic/localbin>localbin</a></td> <td>Install localbin</td> <td><a href=https://travis-ci.org/devopstoolbox/localbin><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/localbin.svg?branch=master"></a></td> </tr> <tr> <td>Software Installation</td> <td><a href=roles_basic/flatpak>flatpak</a></td> <td>Install flatpak</td> <td><a href=https://travis-ci.org/devopstoolbox/flatpak><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/flatpak.svg?branch=master"></a></td> </tr> <tr> <td>Software Installation</td> <td><a href=roles_basic/snap>snap</a></td> <td>Install snap</td> <td><a href=https://travis-ci.org/devopstoolbox/snap><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/snap.svg?branch=master"></a></td> </tr> <tr> <td>Software Installation</td> <td><a href=roles_basic/nvidia>nvidia</a></td> <td>Install nvidia</td> <td><a href=https://travis-ci.org/devopstoolbox/nvidia><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/nvidia.svg?branch=master"></a></td> </tr> <tr> <td>Software Installation</td> <td><a href=roles_basic/ati>ati</a></td> <td>Install ati</td> <td><a href=https://travis-ci.org/devopstoolbox/ati><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/ati.svg?branch=master"></a></td> </tr> <tr> <td>Software Installation</td> <td><a href=roles_basic/intelgpu>intelgpu</a></td> <td>Install intelgpu</td> <td><a href=https://travis-ci.org/devopstoolbox/intelgpu><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/intelgpu.svg?branch=master"></a></td> </tr> <tr> <td>Software Installation</td> <td><a href=roles_basic/microcode>microcode</a></td> <td>Install microcode</td> <td><a href=https://travis-ci.org/devopstoolbox/microcode><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/microcode.svg?branch=master"></a></td> </tr> <tr> <td>Configuration</td> <td><a href=roles_basic/subscription-manager>subscription-manager</a></td> <td>Install subscription-manager</td> <td><a href=https://travis-ci.org/devopstoolbox/subscription-manager><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/subscription-manager.svg?branch=master"></a></td> </tr> <tr> <td>Configuration</td> <td><a href=roles_basic/hostname>hostname</a></td> <td>Install hostname</td> <td><a href=https://travis-ci.org/devopstoolbox/hostname><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/hostname.svg?branch=master"></a></td> </tr> <tr> <td>Configuration</td> <td><a href=roles_basic/mountiso>mountiso</a></td> <td>Install mountiso</td> <td><a href=https://travis-ci.org/devopstoolbox/mountiso><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/mountiso.svg?branch=master"></a></td> </tr> <tr> <td>Configuration</td> <td><a href=roles_basic/lvm>lvm</a></td> <td>Install lvm</td> <td><a href=https://travis-ci.org/devopstoolbox/lvm><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/lvm.svg?branch=master"></a></td> </tr> <tr> <td>Configuration</td> <td><a href=roles_basic/gnome>gnome</a></td> <td>Install gnome</td> <td><a href=https://travis-ci.org/devopstoolbox/gnome><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/gnome.svg?branch=master"></a></td> </tr> <tr> <td>Configuration</td> <td><a href=roles_basic/cleanup>cleanup</a></td> <td>Install cleanup</td> <td><a href=https://travis-ci.org/devopstoolbox/cleanup><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/cleanup.svg?branch=master"></a></td> </tr> <tr> <td>Configuration</td> <td><a href=roles_basic/secure>secure</a></td> <td>Install secure</td> <td><a href=https://travis-ci.org/devopstoolbox/secure><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/secure.svg?branch=master"></a></td> </tr> </tbody> </table> <h3 id=server-roles>Server Roles<a class=headerlink href=#server-roles title="Permanent link"></a></h3> <table> <thead> <tr> <th>Area</th> <th>Role</th> <th>Description</th> <th>QA</th> </tr> </thead> <tbody> <tr> <td>Management Tools</td> <td><a href=roles_server/cockpit>cockpit</a></td> <td>Install cockpit</td> <td><a href=https://travis-ci.org/devopstoolbox/cockpit><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/cockpit.svg?branch=master"></a></td> </tr> <tr> <td>Management Tools</td> <td><a href=roles_server/foreman>foreman</a></td> <td>Install foreman</td> <td><a href=https://travis-ci.org/devopstoolbox/foreman><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/foreman.svg?branch=master"></a></td> </tr> <tr> <td>Management Tools</td> <td><a href=roles_server/openssh>openssh</a></td> <td>Install openssh</td> <td><a href=https://travis-ci.org/devopstoolbox/openssh><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/openssh.svg?branch=master"></a></td> </tr> <tr> <td>Management Tools</td> <td><a href=roles_server/xrdp>xrdp</a></td> <td>Install xrdp</td> <td><a href=https://travis-ci.org/devopstoolbox/xrdp><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/xrdp.svg?branch=master"></a></td> </tr> <tr> <td>Management Tools</td> <td><a href=roles_server/superset>superset</a></td> <td>Install superset</td> <td><a href=https://travis-ci.org/devopstoolbox/superset><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/superset.svg?branch=master"></a></td> </tr> <tr> <td>Web Servers</td> <td><a href=roles_server/apache>apache</a></td> <td>Install apache</td> <td><a href=https://travis-ci.org/devopstoolbox/apache><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/apache.svg?branch=master"></a></td> </tr> <tr> <td>Web Servers</td> <td><a href=roles_server/haproxy>haproxy</a></td> <td>Install haproxy</td> <td><a href=https://travis-ci.org/devopstoolbox/haproxy><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/haproxy.svg?branch=master"></a></td> </tr> <tr> <td>Web Servers</td> <td><a href=roles_server/php>php</a></td> <td>Install php</td> <td><a href=https://travis-ci.org/devopstoolbox/php><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/php.svg?branch=master"></a></td> </tr> <tr> <td>Web Servers</td> <td><a href=roles_server/vsftpd>vsftpd</a></td> <td>Install vsftpd</td> <td><a href=https://travis-ci.org/devopstoolbox/vsftpd><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/vsftpd.svg?branch=master"></a></td> </tr> <tr> <td>Database Servers</td> <td><a href=roles_server/postgresql>postgresql</a></td> <td>Install postgresql</td> <td><a href=https://travis-ci.org/devopstoolbox/postgresql><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/postgresql.svg?branch=master"></a></td> </tr> <tr> <td>Database Servers</td> <td><a href=roles_server/mariadb>mariadb</a></td> <td>Install mariadb</td> <td><a href=https://travis-ci.org/devopstoolbox/mariadb><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/mariadb.svg?branch=master"></a></td> </tr> <tr> <td>DevOps Tools</td> <td><a href=roles_server/awx>awx</a></td> <td>Install awx</td> <td><a href=https://travis-ci.org/devopstoolbox/awx><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/awx.svg?branch=master"></a></td> </tr> <tr> <td>DevOps Tools</td> <td><a href=roles_server/sonarqube>sonarqube</a></td> <td>Install sonarqube</td> <td><a href=https://travis-ci.org/devopstoolbox/sonarqube><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/sonarqube.svg?branch=master"></a></td> </tr> <tr> <td>DevOps Tools</td> <td><a href=roles_server/jenkins>jenkins</a></td> <td>Install jenkins</td> <td><a href=https://travis-ci.org/devopstoolbox/jenkins><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/jenkins.svg?branch=master"></a></td> </tr> <tr> <td>DevOps Tools</td> <td><a href=roles_server/rundeck>rundeck</a></td> <td>Install rundeck</td> <td><a href=https://travis-ci.org/devopstoolbox/rundeck><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/rundeck.svg?branch=master"></a></td> </tr> <tr> <td>DevOps Tools</td> <td><a href=roles_server/zuul>zuul</a></td> <td>Install zuul</td> <td><a href=https://travis-ci.org/devopstoolbox/zuul><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/zuul.svg?branch=master"></a></td> </tr> <tr> <td>DevOps Tools</td> <td><a href=roles_server/gerrit>gerrit</a></td> <td>Install gerrit</td> <td><a href=https://travis-ci.org/devopstoolbox/gerrit><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/gerrit.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/packages>packages</a></td> <td>Install packages</td> <td><a href=https://travis-ci.org/devopstoolbox/packages><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/packages.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/services>services</a></td> <td>Install services</td> <td><a href=https://travis-ci.org/devopstoolbox/services><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/services.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/firewalld>firewalld</a></td> <td>Install firewalld</td> <td><a href=https://travis-ci.org/devopstoolbox/firewalld><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/firewalld.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/cron>cron</a></td> <td>Install cron</td> <td><a href=https://travis-ci.org/devopstoolbox/cron><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/cron.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/ntp>ntp</a></td> <td>Install ntp</td> <td><a href=https://travis-ci.org/devopstoolbox/ntp><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/ntp.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/kdump>kdump</a></td> <td>Install kdump</td> <td><a href=https://travis-ci.org/devopstoolbox/kdump><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/kdump.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/selinux>selinux</a></td> <td>Install selinux</td> <td><a href=https://travis-ci.org/devopstoolbox/selinux><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/selinux.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/tuned>tuned</a></td> <td>Install tuned</td> <td><a href=https://travis-ci.org/devopstoolbox/tuned><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/tuned.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/time>time</a></td> <td>Install time</td> <td><a href=https://travis-ci.org/devopstoolbox/time><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/time.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/network>network</a></td> <td>Install network</td> <td><a href=https://travis-ci.org/devopstoolbox/network><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/network.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/storage>storage</a></td> <td>Install storage</td> <td><a href=https://travis-ci.org/devopstoolbox/storage><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/storage.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/mandb>mandb</a></td> <td>Install mandb</td> <td><a href=https://travis-ci.org/devopstoolbox/mandb><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/mandb.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/locatedb>locatedb</a></td> <td>Install locatedb</td> <td><a href=https://travis-ci.org/devopstoolbox/locatedb><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/locatedb.svg?branch=master"></a></td> </tr> <tr> <td>Linux Administration</td> <td><a href=roles_linux/syslog>syslog</a></td> <td>Install syslog</td> <td><a href=https://travis-ci.org/devopstoolbox/syslog><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/syslog.svg?branch=master"></a></td> </tr> <tr> <td>MacOS</td> <td><a href=roles_macos/macos-packages>macos-packages</a></td> <td>Install macos-packages</td> <td><a href=https://travis-ci.org/devopstoolbox/macos-packages><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/macos-packages.svg?branch=master"></a></td> </tr> <tr> <td>AIX</td> <td><a href=roles_aix/aix-packages>aix-packages</a></td> <td>Install aix-packages</td> <td><a href=https://travis-ci.org/devopstoolbox/aix-packages><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/aix-packages.svg?branch=master"></a></td> </tr> <tr> <td>Windows</td> <td><a href=roles_windows/windows-packages>windows-packages</a></td> <td>Install windows-packages</td> <td><a href=https://travis-ci.org/devopstoolbox/windows-packages><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/windows-packages.svg?branch=master"></a></td> </tr> </tbody> </table> <h3 id=cloud-roles>Cloud Roles<a class=headerlink href=#cloud-roles title="Permanent link"></a></h3> <table> <thead> <tr> <th>Area</th> <th>Role</th> <th>Description</th> <th>QA</th> </tr> </thead> <tbody> <tr> <td>Private Cloud</td> <td><a href=roles_cloud_vm/virtualbox>virtualbox</a></td> <td>Install virtualbox</td> <td><a href=https://travis-ci.org/devopstoolbox/virtualbox><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/virtualbox.svg?branch=master"></a></td> </tr> <tr> <td>Private Cloud</td> <td><a href=roles_cloud_vm/vmware>vmware</a></td> <td>Install vmware</td> <td><a href=https://travis-ci.org/devopstoolbox/vmware><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/vmware.svg?branch=master"></a></td> </tr> <tr> <td>Private Cloud</td> <td><a href=roles_cloud_vm/rhv>rhv</a></td> <td>Install rhv</td> <td><a href=https://travis-ci.org/devopstoolbox/rhv><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/rhv.svg?branch=master"></a></td> </tr> <tr> <td>Private Cloud</td> <td><a href=roles_cloud_vm/kvm>kvm</a></td> <td>Install kvm</td> <td><a href=https://travis-ci.org/devopstoolbox/kvm><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/kvm.svg?branch=master"></a></td> </tr> <tr> <td>Private Cloud</td> <td><a href=roles_cloud_vm/openstack>openstack</a></td> <td>Install openstack</td> <td><a href=https://travis-ci.org/devopstoolbox/openstack><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/openstack.svg?branch=master"></a></td> </tr> <tr> <td>AWS</td> <td><a href=roles_cloud_aws/provision-virtual-server>provision-virtual-server</a></td> <td>Install provision-virtual-server</td> <td><a href=https://travis-ci.org/devopstoolbox/provision-virtual-server><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/provision-virtual-server.svg?branch=master"></a></td> </tr> <tr> <td>IBM Cloud</td> <td><a href=roles_cloud_ibm/provision-virtual-server>provision-virtual-server</a></td> <td>Install provision-virtual-server</td> <td><a href=https://travis-ci.org/devopstoolbox/provision-virtual-server><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/provision-virtual-server.svg?branch=master"></a></td> </tr> <tr> <td>IBM Cloud</td> <td><a href=roles_cloud_ibm/provision-bare-metal>provision-bare-metal</a></td> <td>Install provision-bare-metal</td> <td><a href=https://travis-ci.org/devopstoolbox/provision-bare-metal><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/provision-bare-metal.svg?branch=master"></a></td> </tr> <tr> <td>IBM Cloud</td> <td><a href=roles_cloud_ibm/provision-iks>provision-iks</a></td> <td>Install provision-iks</td> <td><a href=https://travis-ci.org/devopstoolbox/provision-iks><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/provision-iks.svg?branch=master"></a></td> </tr> <tr> <td>IBM Cloud</td> <td><a href=roles_cloud_ibm/provision-roks>provision-roks</a></td> <td>Install provision-roks</td> <td><a href=https://travis-ci.org/devopstoolbox/provision-roks><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/provision-roks.svg?branch=master"></a></td> </tr> <tr> <td>Azure</td> <td><a href=roles_cloud_azure/provision-virtual-server>provision-virtual-server</a></td> <td>Install provision-virtual-server</td> <td><a href=https://travis-ci.org/devopstoolbox/provision-virtual-server><img alt="Build Status" src="https://travis-ci.org/devopstoolbox/provision-virtual-server.svg?branch=master"></a></td> </tr> </tbody> </table> <h2 id=ansible-playbooks>Ansible Playbooks<a class=headerlink href=#ansible-playbooks title="Permanent link"></a></h2> <p><a href=https://github.com/devopstoolbox/playbooks>Ansible Playbooks</a></p> <h2 id=code-repository-and-links>Code Repository and Links<a class=headerlink href=#code-repository-and-links title="Permanent link"></a></h2> <h3 id=github-and-ansible-galaxy>Github and Ansible Galaxy<a class=headerlink href=#github-and-ansible-galaxy title="Permanent link"></a></h3> <ul> <li><a href=https://github.com/devopstoolbox>GitHub Repositories</a></li> <li><a href=http://galaxy.ansible.com/devopstoolbox>Ansible Collections by Mihai Criveti</a></li> </ul> <h3 id=presentations-and-talks>Presentations and Talks:<a class=headerlink href=#presentations-and-talks title="Permanent link"></a></h3> <ul> <li><a href="https://drive.google.com/open?id=19AlIB3T3jDUE0Kry86cHvKXRg1-Ih_d1">Automate Everything with Python, Ansible and Kubernetes</a></li> <li><a href="https://www.youtube.com/watch?v=lO884XAdddQ">PyCon 2019 Talk: DevOps flows with Ansible, Packer & Kubernetes</a></li> </ul> <h3 id=lines-of-code>Lines of Code<a class=headerlink href=#lines-of-code title="Permanent link"></a></h3> <div class=codehilite><pre><span></span>───────────────────────────────────────────────────────────────────────────────
Language Files Lines Blanks Comments Code Complexity
───────────────────────────────────────────────────────────────────────────────
YAML 448 15202 854 686 13662 0
Markdown 217 13253 4072 0 9181 0
Shell 74 1256 209 98 949 67
HTML 38 3692 1517 61 2114 0
CSS 32 1212 177 14 1021 0
Jinja 32 1074 120 0 954 48
gitignore 26 165 26 29 110 0
JavaScript 17 814 64 228 522 95
XML 8 406 83 0 323 0
JSON 3 69 0 0 69 0
License 3 97 20 0 77 0
TOML 3 96 7 7 82 2
Plain Text 2 15 0 0 15 0
Python 1 71 11 11 49 9
SVG 1 18 0 0 18 0
Systemd 1 27 2 0 25 0
───────────────────────────────────────────────────────────────────────────────
Total 906 37467 7162 1134 29171 221
───────────────────────────────────────────────────────────────────────────────
Estimated Cost to Develop $932,812
Estimated Schedule Effort 14.942132 months
Estimated People Required 7.394968
───────────────────────────────────────────────────────────────────────────────
</pre></div> <hr> <div class=md-source-date> <small> Last update: 2020-02-09 </small> </div> </article> </div> </div> </main> <!--
Copyright (c) 2016-2018 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
--> <!-- Application footer --> <footer class=md-footer> <!-- Link to previous and/or next page --> <div class=md-footer-nav> <nav class="md-footer-nav__inner md-grid"> <!-- Link to previous page --> <!-- Link to next page --> <a href=lab_setup/lab-overview/ title="Lab Overview" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel=next> <div class="md-flex__cell md-flex__cell--stretch
md-footer-nav__title"> <span class=md-flex__ellipsis> <span class=md-footer-nav__direction> Next </span> Lab Overview </span> </div> <div class="md-flex__cell md-flex__cell--shrink"> <i class="md-icon md-icon--arrow-forward
md-footer-nav__button"></i> </div> </a> </nav> </div> <!-- Further information --> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <!-- Copyright and theme information --> <div class=md-footer-copyright> <div class=md-footer-copyright__highlight> Author and Contact - <a href=/about/ >Mihai Criveti</a>. </div> <a href=https://github.com/devopstoolbox>Mihai Criveti</a> </div> <!-- Social links --> <div class=md-footer-social> <link rel=stylesheet href=assets/fonts/font-awesome.css> <a href=https://github.com/cmihai-ansible class="md-footer-social__link fa fa-github"></a> <a href=https://www.linkedin.com/in/crivetimihai/ class="md-footer-social__link fa fa-linkedin"></a> <a href=https://twitter.com/CrivetiMihai class="md-footer-social__link fa fa-twitter"></a> <a href=http://blog.boreas.ro/ class="md-footer-social__link fa fa-globe"></a> </div> </div> </div> </footer> Updated 2020-02-09 </div> <script src=assets/javascripts/application.808e90bb.js></script> <script>app.initialize({version:"1.0.4",url:{base:"."}})</script> <script src=extra-uml.js></script> <script src=raphael.min.js></script> <script src=underscore-min.js></script> <script src=sequence-diagram-min.js></script> <script src=flowchart.min.js></script> <script src=mermaid.min.js></script> </body> </html>