Compare commits
6 Commits
jce/apd-or
...
wtome/2.5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4eb0ec2e6b | ||
|
|
0b82706cc2 | ||
|
|
494d95a53a | ||
|
|
9b11779c2c | ||
|
|
95ebba694f | ||
|
|
93ce1d29b5 |
@@ -10,4 +10,3 @@ exclude_paths:
|
||||
- collections/ansible_collections/demo/compliance/roles/
|
||||
- roles/redhatofficial.*
|
||||
- .github/
|
||||
- execution_environments/ee_contexts/
|
||||
|
||||
3
.github/workflows/pre-commit.yml
vendored
3
.github/workflows/pre-commit.yml
vendored
@@ -5,8 +5,7 @@ on:
|
||||
- pull_request_target
|
||||
|
||||
env:
|
||||
ANSIBLE_GALAXY_SERVER_CERTIFIED_TOKEN: ${{ secrets.ANSIBLE_GALAXY_SERVER_CERTIFIED_TOKEN }}
|
||||
ANSIBLE_GALAXY_SERVER_VALIDATED_TOKEN: ${{ secrets.ANSIBLE_GALAXY_SERVER_VALIDATED_TOKEN }}
|
||||
ANSIBLE_GALAXY_SERVER_AH_TOKEN: ${{ secrets.ANSIBLE_GALAXY_SERVER_AH_TOKEN }}
|
||||
|
||||
jobs:
|
||||
pre-commit:
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -10,5 +10,3 @@ choose_demo_example_aws.yml
|
||||
roles/*
|
||||
!roles/requirements.yml
|
||||
.deployment_id
|
||||
.cache/
|
||||
.ansible/
|
||||
@@ -3,6 +3,9 @@ repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.4.0
|
||||
hooks:
|
||||
- id: end-of-file-fixer
|
||||
exclude: rhel[89]STIG/.*$
|
||||
|
||||
- id: trailing-whitespace
|
||||
exclude: rhel[89]STIG/.*$
|
||||
|
||||
|
||||
14
README.md
14
README.md
@@ -1,18 +1,16 @@
|
||||
[](https://red.ht/aap-product-demos)
|
||||
[](https://workspaces.openshift.com/f?url=https://github.com/ansible/product-demos)
|
||||
[](https://github.com/pre-commit/pre-commit)
|
||||
|
||||
# Official Ansible Product Demos
|
||||
|
||||
This is a centralized location for Ansible Product Demos. This project is a collection of use cases implemented with Ansible for use with the [Ansible Automation Platform](https://www.redhat.com/en/technologies/management/ansible).
|
||||
This is a centralized location for Ansible Product Demos. This project is a collection of use cases implemented with Ansible for use with the Ansible Automation Platform.
|
||||
|
||||
| Demo Name | Description |
|
||||
|-----------|-------------|
|
||||
| [Linux](linux/README.md) | Repository of demos for RHEL and Linux automation |
|
||||
| [Windows](windows/README.md) | Repository of demos for Windows Server automation |
|
||||
| [Cloud](cloud/README.md) | Demo for infrastructure and cloud provisioning automation |
|
||||
| [Network](network/README.md) | Network automation demos |
|
||||
| [OpenShift](openshift/README.md) | OpenShift automation demos |
|
||||
| [Network](network/README.md) | Ansible Network automation demos |
|
||||
| [Satellite](satellite/README.md) | Demos of automation with Red Hat Satellite Server |
|
||||
|
||||
## Contributions
|
||||
@@ -21,7 +19,7 @@ If you would like to contribute to this project please refer to [contribution gu
|
||||
|
||||
## Using this project
|
||||
|
||||
This project is tested for compatibility with the [demo.redhat.com Ansible Product Demos](https://demo.redhat.com/catalog?search=product+demos&item=babylon-catalog-prod%2Fopenshift-cnv.aap-product-demos-cnv.prod) lab environment. To use with other Ansible Automation Platform installations, review the [prerequisite documentation](https://github.com/ansible/product-demos-bootstrap).
|
||||
This project is tested for compatibility with the [demo.redhat.com Product Demos Sandbox](https://demo.redhat.com/catalog?search=product+demos&item=babylon-catalog-prod%2Fopenshift-cnv.aap-product-demos-cnv.prod) lab environment. To use with other Ansible Controller installations, review the [prerequisite documentation](https://github.com/RedHatGov/ansible-tower-samples).
|
||||
|
||||
> NOTE: demo.redhat.com is available to Red Hat Associates and Partners with a valid account.
|
||||
|
||||
@@ -39,7 +37,7 @@ This project is tested for compatibility with the [demo.redhat.com Ansible Produ
|
||||
- Image: quay.io/acme_corp/product-demos-ee:latest
|
||||
- Pull: Only pull the image if not present before running
|
||||
|
||||
3. If it is not already created for you, create a Project called `Ansible Product Demos` with this repo as a source. NOTE: if you are using a fork, be sure that you have the correct URL. Update the project.
|
||||
3. If it is not already created for you, create a Project called `Ansible official demo project` with this repo as a source. NOTE: if you are using a fork, be sure that you have the correct URL. Update the project.
|
||||
|
||||
4. Finally, Create a Job Template called `Setup` with the following configuration:
|
||||
|
||||
@@ -59,8 +57,8 @@ This project is tested for compatibility with the [demo.redhat.com Ansible Produ
|
||||
Can't find what you're looking for? Customize this repo to make it your own.
|
||||
|
||||
1. Create a fork of this repo.
|
||||
2. Update the URL of the `Ansible Project Demos` in the Controller.
|
||||
3. Make changes as needed and run the **Product Demos | Single demo setup** job
|
||||
2. Update the URL of the `Ansible official demo project` in the Controller.
|
||||
3. Make changes as needed and run the **Setup** job
|
||||
|
||||
See the [contribution guide](CONTRIBUTING.md) for more details on how to customize the project.
|
||||
|
||||
|
||||
12
ansible.cfg
12
ansible.cfg
@@ -3,17 +3,13 @@ collections_path=./collections
|
||||
roles_path=./roles
|
||||
|
||||
[galaxy]
|
||||
server_list = certified,validated,galaxy
|
||||
server_list = ah,galaxy
|
||||
|
||||
[galaxy_server.certified]
|
||||
[galaxy_server.ah]
|
||||
# Grab a token at https://console.redhat.com/ansible/automation-hub/token
|
||||
# Then define it in the ANSIBLE_GALAXY_SERVER_CERTIFIED_TOKEN environment variable
|
||||
url=https://console.redhat.com/api/automation-hub/content/published/
|
||||
auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token
|
||||
# Then define it using ANSIBLE_GALAXY_SERVER_AH_TOKEN=""
|
||||
|
||||
[galaxy_server.validated]
|
||||
# Define the token in the ANSIBLE_GALAXY_SERVER_VALIDATED_TOKEN environment variable
|
||||
url=https://console.redhat.com/api/automation-hub/content/validated/
|
||||
url=https://console.redhat.com/api/automation-hub/content/published/
|
||||
auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token
|
||||
|
||||
[galaxy_server.galaxy]
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
- name: Create Cloud Infra
|
||||
hosts: localhost
|
||||
gather_facts: false
|
||||
|
||||
vars:
|
||||
aws_vpc_name: aws-test-vpc
|
||||
aws_owner_tag: default
|
||||
@@ -14,27 +13,6 @@
|
||||
aws_subnet_name: aws-test-subnet
|
||||
aws_rt_name: aws-test-rt
|
||||
|
||||
# map of availability zones to use per region, added since not all
|
||||
# instance types are available in all AZs. must match the drop-down
|
||||
# list for the create_vm_aws_region variable described in cloud/setup.yml
|
||||
_azs:
|
||||
us-east-1:
|
||||
- us-east-1a
|
||||
- us-east-1b
|
||||
- us-east-1c
|
||||
us-east-2:
|
||||
- us-east-2a
|
||||
- us-east-2b
|
||||
- us-east-2c
|
||||
us-west-1:
|
||||
# us-west-1a not available when last checked 20250218
|
||||
- us-west-1b
|
||||
- us-west-1c
|
||||
us-west-2:
|
||||
- us-west-2a
|
||||
- us-west-2b
|
||||
- us-west-2c
|
||||
|
||||
tasks:
|
||||
- name: Create VPC
|
||||
amazon.aws.ec2_vpc_net:
|
||||
@@ -117,13 +95,12 @@
|
||||
owner: "{{ aws_owner_tag }}"
|
||||
purpose: "{{ aws_purpose_tag }}"
|
||||
|
||||
- name: Create a subnet in the VPC
|
||||
- name: Create a subnet on the VPC
|
||||
amazon.aws.ec2_vpc_subnet:
|
||||
state: present
|
||||
vpc_id: "{{ aws_vpc.vpc.id }}"
|
||||
cidr: "{{ aws_subnet_cidr }}"
|
||||
region: "{{ create_vm_aws_region }}"
|
||||
az: "{{ _azs[create_vm_aws_region] | shuffle | first }}"
|
||||
map_public: true
|
||||
tags:
|
||||
Name: "{{ aws_subnet_name }}"
|
||||
|
||||
@@ -114,7 +114,7 @@ controller_templates:
|
||||
organization: Default
|
||||
credentials:
|
||||
- AWS
|
||||
project: Ansible Product Demos
|
||||
project: Ansible official demo project
|
||||
playbook: cloud/snapshot_ec2.yml
|
||||
inventory: Demo Inventory
|
||||
notification_templates_started: Telemetry
|
||||
@@ -145,7 +145,7 @@ controller_templates:
|
||||
organization: Default
|
||||
credentials:
|
||||
- AWS
|
||||
project: Ansible Product Demos
|
||||
project: Ansible official demo project
|
||||
playbook: cloud/restore_ec2.yml
|
||||
inventory: Demo Inventory
|
||||
notification_templates_started: Telemetry
|
||||
@@ -176,7 +176,7 @@ controller_templates:
|
||||
organization: Default
|
||||
credentials:
|
||||
- AWS
|
||||
project: Ansible Product Demos
|
||||
project: Ansible official demo project
|
||||
playbook: cloud/display-ec2-stats.yml
|
||||
inventory: Demo Inventory
|
||||
notification_templates_started: Telemetry
|
||||
@@ -186,7 +186,7 @@ controller_templates:
|
||||
- name: "LINUX / Patching"
|
||||
job_type: check
|
||||
inventory: "Demo Inventory"
|
||||
project: "Ansible Product Demos"
|
||||
project: "Ansible official demo project"
|
||||
playbook: "linux/patching.yml"
|
||||
execution_environment: Default execution environment
|
||||
notification_templates_started: Telemetry
|
||||
@@ -283,7 +283,7 @@ controller_workflows:
|
||||
- identifier: Deploy Windows GUI Blueprint
|
||||
unified_job_template: Cloud / AWS / Create VM
|
||||
extra_data:
|
||||
create_vm_vm_name: aws-dc
|
||||
create_vm_vm_name: aws_dc
|
||||
vm_blueprint: windows_full
|
||||
success_nodes:
|
||||
- Update Inventory
|
||||
@@ -368,7 +368,7 @@ controller_workflows:
|
||||
default: os_linux
|
||||
simplified_workflow_nodes:
|
||||
- identifier: Project Sync
|
||||
unified_job_template: Ansible Product Demos
|
||||
unified_job_template: Ansible official demo project
|
||||
success_nodes:
|
||||
- Take Snapshot
|
||||
- identifier: Inventory Sync
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
# required collections are installed in the Product Demos EE.
|
||||
# additional collections needed during testing can be added here.
|
||||
collections: []
|
||||
|
||||
collections:
|
||||
- name: infra.aap_configuration
|
||||
type: git
|
||||
source: https://github.com/redhat-cop/infra.aap_configuration.git
|
||||
...
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
---
|
||||
controller_execution_environments:
|
||||
- name: product-demos
|
||||
image: quay.io/acme_corp/product-demos-ee:latest
|
||||
- name: Cloud Services Execution Environment
|
||||
image: quay.io/scottharwell/cloud-ee:latest
|
||||
|
||||
controller_organizations:
|
||||
- name: Default
|
||||
default_environment: Product Demos EE
|
||||
default_environment: product-demos
|
||||
|
||||
controller_projects:
|
||||
- name: Ansible Cloud Content Lab - AWS
|
||||
@@ -71,8 +73,6 @@ controller_groups:
|
||||
variables:
|
||||
ansible_connection: winrm
|
||||
ansible_winrm_transport: credssp
|
||||
ansible_winrm_server_cert_validation: ignore
|
||||
ansible_port: 5986
|
||||
|
||||
controller_templates:
|
||||
- name: SUBMIT FEEDBACK
|
||||
@@ -284,7 +284,7 @@ controller_notifications:
|
||||
url: https://script.google.com/macros/s/AKfycbzxUObvCJ6ZbzfJyicw4RvxlGE3AZdrK4AR5-TsedCYd7O-rtTOVjvsRvqyb3rx6B0g8g/exec
|
||||
http_method: POST
|
||||
headers: {}
|
||||
|
||||
controller_settings:
|
||||
- name: SESSION_COOKIE_AGE
|
||||
value: 180000
|
||||
# Has this moved out of controller?
|
||||
# controller_settings:
|
||||
# - name: SESSION_COOKIE_AGE
|
||||
# value: 180000
|
||||
|
||||
@@ -7,11 +7,8 @@ Currently these execution environment images are created manually using the `bui
|
||||
## Building the execution environment images
|
||||
|
||||
1. `podman login registry.redhat.io` in order to pull the base EE images
|
||||
2. `export ANSIBLE_GALAXY_SERVER_CERTIFIED_TOKEN="<token>"` obtained from [Automation Hub](https://console.redhat.com/ansible/automation-hub/token)
|
||||
3. `export ANSIBLE_GALAXY_SERVER_VALIDATED_TOKEN="<token>"` (same as above)
|
||||
4. `./build.sh` to build the EE images and add them to your local podman image cache
|
||||
2. `./build.sh` to build the EE images and add them to your local podman image cache
|
||||
|
||||
The `build.sh` script creates multiple EE images, each based on the ee-minimal image that comes with a different minor version of AAP. These images are created in the "quay.io/ansible-product-demos" namespace. Currently the script builds the following images:
|
||||
|
||||
* quay.io/ansible-product-demos/apd-ee-24
|
||||
* quay.io/ansible-product-demos/apd-ee-25
|
||||
|
||||
@@ -3,14 +3,9 @@ version: 3
|
||||
images:
|
||||
base_image:
|
||||
name: registry.redhat.io/ansible-automation-platform-25/ee-minimal-rhel9:latest
|
||||
|
||||
dependencies:
|
||||
galaxy: requirements-25.yml
|
||||
system:
|
||||
- python3.11-devel [platform:rpm]
|
||||
python:
|
||||
- pywinrm>=0.4.3
|
||||
python_interpreter:
|
||||
python_path: /usr/bin/python3.11
|
||||
galaxy: requirements.yml
|
||||
|
||||
additional_build_files:
|
||||
# https://access.redhat.com/solutions/7024259
|
||||
@@ -25,9 +20,6 @@ options:
|
||||
|
||||
additional_build_steps:
|
||||
prepend_base:
|
||||
# AgnosticD can use this to deterine it is running from an EE
|
||||
# see https://github.com/redhat-cop/agnosticd/blob/development/ansible/install_galaxy_roles.yml
|
||||
- ENV LAUNCHED_BY_RUNNER=1
|
||||
- RUN $PYCMD -m pip install --upgrade pip setuptools
|
||||
- COPY _build/rpms/openshift-clients*.rpm /tmp/openshift-clients.rpm
|
||||
- RUN $PKGMGR -y update && $PKGMGR -y install bash-completion && $PKGMGR clean all
|
||||
|
||||
@@ -3,13 +3,10 @@
|
||||
# array of images to build
|
||||
ee_images=(
|
||||
"apd-ee-24"
|
||||
"apd-ee-25"
|
||||
)
|
||||
|
||||
for ee in "${ee_images[@]}"
|
||||
do
|
||||
echo "Building EE image ${ee}"
|
||||
|
||||
# build EE image
|
||||
ansible-builder build \
|
||||
--file ${ee}.yml \
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
---
|
||||
collections:
|
||||
# AAP config as code
|
||||
- name: ansible.controller
|
||||
version: ">=4.6.0"
|
||||
# TODO this fails trying to install a different version of
|
||||
# the python-systemd package
|
||||
# - name: ansible.eda # fails trying to install systemd-python package
|
||||
# version: ">=2.1.0"
|
||||
- name: ansible.hub
|
||||
version: ">=1.0.0"
|
||||
- name: ansible.platform
|
||||
version: ">=2.5.0"
|
||||
- name: infra.ah_configuration
|
||||
version: ">=2.0.6"
|
||||
- name: infra.controller_configuration
|
||||
version: ">=2.11.0"
|
||||
# linux demos
|
||||
- name: ansible.posix
|
||||
version: ">=1.5.4"
|
||||
- name: community.general
|
||||
version: ">=8.0.0"
|
||||
- name: containers.podman
|
||||
version: ">=1.12.1"
|
||||
- name: redhat.insights
|
||||
version: ">=1.2.2"
|
||||
- name: redhat.rhel_system_roles
|
||||
version: ">=1.23.0"
|
||||
# windows demos
|
||||
- name: microsoft.ad
|
||||
version: "1.9"
|
||||
- name: ansible.windows
|
||||
version: ">=2.3.0"
|
||||
- name: chocolatey.chocolatey
|
||||
version: ">=1.5.1"
|
||||
- name: community.windows
|
||||
version: ">=2.2.0"
|
||||
# cloud demos
|
||||
- name: amazon.aws
|
||||
version: ">=7.5.0"
|
||||
# satellite demos
|
||||
- name: redhat.satellite
|
||||
version: ">=4.0.0"
|
||||
# network demos
|
||||
- name: ansible.netcommon
|
||||
version: ">=6.0.0"
|
||||
- name: cisco.ios
|
||||
version: ">=7.0.0"
|
||||
- name: cisco.iosxr
|
||||
version: ">=8.0.0"
|
||||
- name: cisco.nxos
|
||||
version: ">=7.0.0"
|
||||
- name: network.backup
|
||||
version: ">=3.0.0"
|
||||
# TODO on 2.5 ee-minimal-rhel9 this tries to build and install
|
||||
# a different version of python netifaces, which fails
|
||||
# - name: infoblox.nios_modules
|
||||
# version: ">=1.6.1"
|
||||
# openshift demos
|
||||
- name: kubernetes.core
|
||||
version: ">=4.0.0"
|
||||
- name: redhat.openshift
|
||||
version: ">=3.0.1"
|
||||
- name: redhat.openshift_virtualization
|
||||
version: ">=1.4.0"
|
||||
# for RHDP
|
||||
- name: ansible.utils
|
||||
version: ">=5.1.0"
|
||||
- name: kubevirt.core
|
||||
version: ">=2.1.0"
|
||||
- name: community.okd
|
||||
version: ">=4.0.0"
|
||||
- name: https://github.com/rhpds/assisted_installer.git
|
||||
type: git
|
||||
version: "v0.0.1"
|
||||
|
||||
...
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
collections:
|
||||
- name: ansible.controller
|
||||
version: "<4.6.0"
|
||||
version: ">=4.5.5"
|
||||
- name: infra.ah_configuration
|
||||
version: ">=2.0.6"
|
||||
- name: infra.controller_configuration
|
||||
@@ -20,8 +20,6 @@ collections:
|
||||
- name: redhat.rhel_system_roles
|
||||
version: ">=1.23.0"
|
||||
# windows
|
||||
- name: microsoft.ad
|
||||
version: "1.9"
|
||||
- name: ansible.windows
|
||||
version: ">=2.3.0"
|
||||
- name: chocolatey.chocolatey
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
ansible.builtin.yum:
|
||||
name: yum-utils
|
||||
state: installed
|
||||
check_mode: false
|
||||
|
||||
- name: Include patching role
|
||||
ansible.builtin.include_role:
|
||||
@@ -46,16 +45,6 @@
|
||||
name: firewalld
|
||||
state: started
|
||||
|
||||
- name: Enable firewall http service
|
||||
ansible.posix.firewalld:
|
||||
service: '{{ item }}'
|
||||
state: enabled
|
||||
immediate: true
|
||||
permanent: true
|
||||
loop:
|
||||
- http
|
||||
- https
|
||||
|
||||
- name: Build report server
|
||||
ansible.builtin.include_role:
|
||||
name: "{{ item }}"
|
||||
|
||||
@@ -15,5 +15,3 @@
|
||||
- name: Default Components
|
||||
ansible.builtin.include_role:
|
||||
name: "infra.controller_configuration.job_launch"
|
||||
vars:
|
||||
controller_dependency_check: false # noqa: var-naming[no-role-prefix]
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
This category of demos shows examples of network operations and management with Ansible Automation Platform. The list of demos can be found below. See the [Suggested Usage](#suggested-usage) section of this document for recommendations on how to best use these demos.
|
||||
- [**NETWORK / Configuration**](https://github.com/nleiva/ansible-net-modules/blob/main/main.yml) - Deploy golden configurations for different resources to Cisco IOS, IOSXR, and NXOS.
|
||||
|
||||
To run the demos, deploy them using Infrastructure as Code, run either the "Product Demos | Multi-demo setup" or the "Product Demos | Single demo setup" and select 'Network' in the "Product Demos" deployment, or utilize the steps in the repo level README.
|
||||
|
||||
### Project
|
||||
|
||||
These demos leverage playbooks from a [git repo](https://github.com/nleiva/ansible-net-modules) that is added as the **`Network Golden Configs`** Project in your Ansible Controller. Review this repo for the playbooks to configure different resources and network config templates that will be configured.
|
||||
@@ -27,7 +25,7 @@ A **`Demo Inventory`** is created when setting up these demos and a dynamic sour
|
||||
## Suggested Usage
|
||||
|
||||
**NETWORK / Report** - Use this job to gather facts from Cisco Network devices and create a report with information about the device such as code version, along with configuration information about layers 1, 2, and 3. This shows how Ansible can be used to gather facts and build reports. Generating html pages is just one potential output. This information can be used in a number of ways, such as integration with different network management tools.
|
||||
- to run this you will first need to run the **`Deploy Cloud Stack in AWS`** job template to deploy the report server. If using a demo.redhat.com Product Demos instance you should use the public key provided in the demo page in the Bastion Host Credentials section. If you are using a different environment, you may need to update the "Demo Credential".
|
||||
- to run this you will first need to run the **`Deploy Cloud Stack in AWS`** job template to deploy the report server. This will ask you for an SSH public key. After running this playbook, you will need to add the SSH private key to the **`Demo Credential`** before you can run the report, so it can connect to the report server.
|
||||
|
||||
**NETWORK / Configuration** - Use this job to execute different [Ansible Network Resource Modules](https://docs.ansible.com/ansible/latest/network/user_guide/network_resource_modules.html) to deploy golden configs. Below is a list of the different resources the can be configured with a link to their golden config.
|
||||
- [acls](https://github.com/nleiva/ansible-net-modules/blob/main/acls.cfg)
|
||||
@@ -78,12 +76,4 @@ A **`Demo Inventory`** is created when setting up these demos and a dynamic sour
|
||||
}
|
||||
},
|
||||
"_ansible_no_log": false
|
||||
}
|
||||
|
||||
**NETWORK / BACKUP** - Use this job to show how Ansible can be used to backup network devices using Red Hat validated content. Job Template will create a backup file on the reports server where they can be viewed as a webpage. This is just an example - backups can also be sent to other repositories such as a Git repo (Github, Gitlab, etc).
|
||||
|
||||
To run this demo, you will need to complete a couple of prerequisites:
|
||||
- to run this you will first need to run the **`Deploy Cloud Stack in AWS`** job template to deploy the report server.
|
||||
- If using a demo.redhat.com Product Demos instance you should use the public key provided in the demo page in the 'Bastion Host Credentials' section. If you are using a different environment, you may need to update the "Demo Credential".
|
||||
- This works with Product Demos for AAP v2.5; which includes the "Product Demos EE" includes the \
|
||||
network.backup collection.
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
---
|
||||
- name: Create network reports server
|
||||
hosts: reports
|
||||
become: true
|
||||
|
||||
tasks:
|
||||
- name: Build report server
|
||||
ansible.builtin.include_role:
|
||||
name: "{{ item }}"
|
||||
loop:
|
||||
- demo.patching.report_server
|
||||
|
||||
- name: Create a backup directory if it does not exist
|
||||
run_once: true
|
||||
ansible.builtin.file:
|
||||
path: "/var/www/html/backups"
|
||||
state: directory
|
||||
owner: ec2-user
|
||||
group: ec2-user
|
||||
mode: '0755'
|
||||
|
||||
- name: Play to Backup Cisco Always-On Network Devices
|
||||
hosts: routers
|
||||
gather_facts: false
|
||||
vars:
|
||||
report_server: reports
|
||||
backup_dir: "/tmp/network_backups"
|
||||
|
||||
tasks:
|
||||
- name: Network Backup and Resource Manager
|
||||
ansible.builtin.include_role:
|
||||
name: network.backup.run
|
||||
vars: # noqa var-naming[no-role-prefix]
|
||||
operation: backup
|
||||
type: full
|
||||
data_store:
|
||||
local: "{{ backup_dir }}"
|
||||
|
||||
# This task removes the Current configuration... from the top of IOS routers show run
|
||||
- name: Remove non config lines - regexp
|
||||
delegate_to: localhost
|
||||
ansible.builtin.lineinfile:
|
||||
path: "{{ backup_dir }}/{{ inventory_hostname }}.txt"
|
||||
line: "Building configuration..."
|
||||
state: absent
|
||||
|
||||
- name: Copy backup file
|
||||
delegate_to: "{{ report_server }}"
|
||||
ansible.builtin.copy:
|
||||
src: "{{ backup_dir }}/{{ inventory_hostname }}.txt"
|
||||
dest: "/var/www/html/backups/{{ inventory_hostname }}.cfg"
|
||||
backup: true
|
||||
owner: ec2-user
|
||||
group: ec2-user
|
||||
mode: '0644'
|
||||
|
||||
- name: Review backup on report server
|
||||
delegate_to: "{{ report_server }}"
|
||||
run_once: true
|
||||
ansible.builtin.debug:
|
||||
msg: "To review backed up configurations, go to http://{{ ansible_host }}/backups/"
|
||||
|
||||
...
|
||||
@@ -1,42 +0,0 @@
|
||||
[ios]
|
||||
sandbox-iosxe-latest-1.cisco.com
|
||||
|
||||
[ios:vars]
|
||||
ansible_network_os=cisco.ios.ios
|
||||
ansible_password=C1sco12345
|
||||
ansible_ssh_password=C1sco12345
|
||||
ansible_port=22
|
||||
ansible_user=admin
|
||||
|
||||
[iosxr]
|
||||
sandbox-iosxr-1.cisco.com
|
||||
|
||||
[iosxr:vars]
|
||||
ansible_network_os=cisco.iosxr.iosxr
|
||||
ansible_password=C1sco12345
|
||||
ansible_ssh_pass=C1sco12345
|
||||
ansible_port=22
|
||||
ansible_user=admin
|
||||
|
||||
[nxos]
|
||||
sbx-nxos-mgmt.cisco.com
|
||||
sandbox-nxos-1.cisco.com
|
||||
|
||||
[nxos:vars]
|
||||
ansible_network_os=cisco.nxos.nxos
|
||||
ansible_password=Admin_1234!
|
||||
ansible_ssh_pass=Admin_1234!
|
||||
ansible_port=22
|
||||
ansible_user=admin
|
||||
|
||||
[routers]
|
||||
sbx-nxos-mgmt.cisco.com
|
||||
sandbox-nxos-1.cisco.com
|
||||
sandbox-iosxr-1.cisco.com
|
||||
sandbox-iosxe-latest-1.cisco.com
|
||||
|
||||
[routers:vars]
|
||||
ansible_connection=ansible.netcommon.network_cli
|
||||
|
||||
[webservers]
|
||||
reports ansible_host=ec2-18-118-189-162.us-east-2.compute.amazonaws.com ansible_user=ec2-user
|
||||
@@ -11,9 +11,7 @@ controller_projects:
|
||||
scm_type: git
|
||||
scm_url: https://github.com/nleiva/ansible-net-modules
|
||||
update_project: true
|
||||
wait: false
|
||||
controller_request_timeout: 20
|
||||
controller_configuration_async_retries: 40
|
||||
wait: true
|
||||
default_environment: Networking Execution Environment
|
||||
|
||||
controller_inventories:
|
||||
@@ -25,8 +23,8 @@ controller_inventory_sources:
|
||||
source: scm
|
||||
inventory: Demo Inventory
|
||||
overwrite: true
|
||||
source_project: Ansible Product Demos
|
||||
source_path: network/hosts
|
||||
source_project: Network Golden Configs
|
||||
source_path: hosts
|
||||
|
||||
controller_templates:
|
||||
- name: NETWORK / Configuration
|
||||
@@ -35,8 +33,6 @@ controller_templates:
|
||||
survey_enabled: true
|
||||
project: Network Golden Configs
|
||||
playbook: main.yml
|
||||
credentials:
|
||||
- "Demo Credential"
|
||||
execution_environment: Networking Execution Environment
|
||||
notification_templates_started: Telemetry
|
||||
notification_templates_success: Telemetry
|
||||
@@ -99,23 +95,9 @@ controller_templates:
|
||||
inventory: Demo Inventory
|
||||
project: "Ansible Product Demos"
|
||||
playbook: "network/compliance.yml"
|
||||
credentials:
|
||||
- "Demo Credential"
|
||||
notification_templates_started: Telemetry
|
||||
notification_templates_success: Telemetry
|
||||
notification_templates_error: Telemetry
|
||||
use_fact_cache: true
|
||||
ask_job_type_on_launch: true
|
||||
survey_enabled: true
|
||||
|
||||
- name: "NETWORK / Backup"
|
||||
job_type: run
|
||||
organization: Default
|
||||
inventory: Demo Inventory
|
||||
project: "Ansible Product Demos"
|
||||
playbook: "network/backup.yml"
|
||||
credentials:
|
||||
- "Demo Credential"
|
||||
notification_templates_started: Telemetry
|
||||
notification_templates_success: Telemetry
|
||||
notification_templates_error: Telemetry
|
||||
|
||||
@@ -14,6 +14,10 @@ This category of demos shows examples of OpenShift operations and management wit
|
||||
- [**OpenShift / Dev Spaces**](devspaces.yml) - Install and deploy dev spaces on OCP cluster. After this job has run successfully, login to your OCP cluster, click the application icon (to the left of the bell icon in the top right) to access Dev Spaces
|
||||
- [**OpenShift / GitLab**](gitlab.yml) - Install and deploy GitLab on OCP.
|
||||
- [**OpenShift / EDA / Install Controller**](eda/install.yml) - Install and deploy EDA Controller instance using the AAP OpenShift operator.
|
||||
- **OpenShift / CNV / Deploy Automation Hub and sync EEs and Collections** - Workflow Job Template to deploy a functional Automaiton Hub instance in OCP.
|
||||
- [**OpenShift / Hub / Install Automation Hub**](hub/install.yml) - Install and deploy Automation Hub instance using the AAP OpenShift operator.
|
||||
- [**OpenShift / Hub / Sync EE Registries**](hub/registries.yml) - Synchronize Execution Environments from console.redhat.com.
|
||||
- [**OpenShift / Hub / Sync Collection Repositories**](hub/collections.yml) - Synchronize collections from console.redhat.com.
|
||||
- [**OpenShift / CNV / Install Operator**](cnv/install.yml) - Install the Container Native Virtualization (CNV) operator and all its required dependencies.
|
||||
- **OpenShift / CNV / Infra Stack** - Workflow Job Template to build out infrastructure necessary to run jobs against VMs in OpenShift Virtualization.
|
||||
- [**OpenShift / CNV / Create RHEL VM**](cnv/install.yml) - Install the Container Native Virtualization (CNV) operator and all its required dependencies.
|
||||
|
||||
@@ -94,4 +94,3 @@
|
||||
name: "{{ vm_name }}"
|
||||
namespace: "{{ vm_namespace }}"
|
||||
wait: true
|
||||
wait_timeout: 240
|
||||
|
||||
@@ -101,21 +101,6 @@
|
||||
retries: 10
|
||||
delay: 30
|
||||
|
||||
- name: Get available charts from gitlab operator repo
|
||||
register: gitlab_chart_versions
|
||||
ansible.builtin.uri:
|
||||
url: https://gitlab.com/gitlab-org/cloud-native/gitlab-operator/-/raw/master/CHART_VERSIONS?ref_type=heads
|
||||
method: GET
|
||||
return_content: true
|
||||
|
||||
- name: Debug gitlab_chart_versions
|
||||
ansible.builtin.debug:
|
||||
var: gitlab_chart_versions.content | from_yaml
|
||||
|
||||
- name: Get latest chart from available_chart_versions
|
||||
ansible.builtin.set_fact:
|
||||
gitlab_chart_version: "{{ (gitlab_chart_versions.content | split())[0] }}"
|
||||
|
||||
- name: Grab url for Gitlab spec
|
||||
ansible.builtin.set_fact:
|
||||
cluster_domain: "apps{{ lookup('ansible.builtin.env', 'K8S_AUTH_HOST') | regex_search('\\.[^:]*') }}"
|
||||
@@ -148,20 +133,3 @@
|
||||
route.openshift.io/termination: "edge"
|
||||
certmanager-issuer:
|
||||
email: "{{ cert_email | default('nobody@nowhere.nosite') }}"
|
||||
|
||||
- name: Print out warning and initial details about deployment
|
||||
vars:
|
||||
msg: |
|
||||
If not immediately successful be aware that the Gitlab instance can take
|
||||
a couple minutes to come up, so be patient.
|
||||
|
||||
URL for Gitlab instance:
|
||||
https://gitlab.{{ cluster_domain }}
|
||||
|
||||
The initial login user is 'root', and the password can be found by logging
|
||||
into the OpenShift cluster portal, and on the left hand side of the administrator
|
||||
portal, under workloads, select Secrets and look for 'gitlab-gitlab-initial-root-password'
|
||||
ansible.builtin.debug:
|
||||
msg: "{{ msg.split('\n') }}"
|
||||
|
||||
...
|
||||
@@ -1,2 +1,2 @@
|
||||
---
|
||||
gitlab_chart_version: "8.5.1"
|
||||
gitlab_chart_version: "8.0.1"
|
||||
|
||||
@@ -268,10 +268,6 @@ controller_workflows:
|
||||
type: text
|
||||
variable: rh_subscription_org
|
||||
required: true
|
||||
- question_name: Email
|
||||
type: text
|
||||
variable: email
|
||||
required: true
|
||||
simplified_workflow_nodes:
|
||||
- identifier: Deploy RHEL8 VM
|
||||
unified_job_template: OpenShift / CNV / Create RHEL VM
|
||||
|
||||
@@ -16,9 +16,7 @@
|
||||
|
||||
- name: Create common demo resources
|
||||
ansible.builtin.include_role:
|
||||
name: infra.controller_configuration.dispatch
|
||||
vars:
|
||||
controller_dependency_check: false # noqa: var-naming[no-role-prefix]
|
||||
name: infra.aap_configuration.dispatch
|
||||
|
||||
- name: Setup demo
|
||||
hosts: localhost
|
||||
@@ -29,9 +27,7 @@
|
||||
|
||||
- name: Demo Components
|
||||
ansible.builtin.include_role:
|
||||
name: infra.controller_configuration.dispatch
|
||||
vars:
|
||||
controller_dependency_check: false # noqa: var-naming[no-role-prefix]
|
||||
name: infra.aap_configuration.dispatch
|
||||
|
||||
- name: Log Demo
|
||||
ansible.builtin.uri:
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../execution_environments/requirements.yml
|
||||
@@ -12,17 +12,14 @@
|
||||
- name: Update the hostname
|
||||
ansible.windows.win_hostname:
|
||||
name: "{{ inventory_hostname.split('.')[0] }}"
|
||||
register: r_rename_hostname
|
||||
|
||||
- name: Reboot to apply new hostname
|
||||
# noqa no-handler
|
||||
when: r_rename_hostname is changed
|
||||
ansible.windows.win_reboot:
|
||||
reboot_timeout: 3600
|
||||
|
||||
- name: Create new domain in a new forest on the target host
|
||||
register: r_create_domain
|
||||
microsoft.ad.domain:
|
||||
ansible.windows.win_domain:
|
||||
dns_domain_name: ansible.local
|
||||
safe_mode_password: "{{ lookup('community.general.random_string', min_lower=1, min_upper=1, min_special=1, min_numeric=1) }}"
|
||||
|
||||
@@ -33,7 +30,7 @@
|
||||
file: tasks/domain_services_check.yml
|
||||
|
||||
- name: Create some groups
|
||||
microsoft.ad.group:
|
||||
community.windows.win_domain_group:
|
||||
name: "{{ item.name }}"
|
||||
scope: global
|
||||
loop:
|
||||
@@ -44,7 +41,7 @@
|
||||
delay: 10
|
||||
|
||||
- name: Create some users
|
||||
microsoft.ad.user:
|
||||
community.windows.win_domain_user:
|
||||
name: "{{ item.name }}"
|
||||
groups: "{{ item.groups }}"
|
||||
password: "{{ lookup('community.general.random_string', min_lower=1, min_upper=1, min_special=1, min_numeric=1) }}"
|
||||
|
||||
5
windows/group_vars/os_windows.yml
Normal file
5
windows/group_vars/os_windows.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
ansible_connection: winrm
|
||||
ansible_winrm_transport: ntlm
|
||||
ansible_winrm_server_cert_validation: ignore
|
||||
ansible_port: 5986
|
||||
@@ -5,12 +5,6 @@
|
||||
report_server: aws_win1
|
||||
|
||||
tasks:
|
||||
|
||||
- name: Assert that host is in webservers group
|
||||
ansible.builtin.assert:
|
||||
that: "'{{ report_server }}' in groups.os_windows"
|
||||
msg: "Please run the 'Deploy Cloud Stack in AWS' Workflow Job Template first"
|
||||
|
||||
- name: Patch windows server
|
||||
ansible.builtin.include_role:
|
||||
name: demo.patching.patch_windows
|
||||
|
||||
@@ -40,6 +40,7 @@ controller_templates:
|
||||
inventory: "Demo Inventory"
|
||||
project: "Ansible Product Demos"
|
||||
playbook: "windows/patching.yml"
|
||||
execution_environment: Default execution environment
|
||||
notification_templates_started: Telemetry
|
||||
notification_templates_success: Telemetry
|
||||
notification_templates_error: Telemetry
|
||||
@@ -85,6 +86,7 @@ controller_templates:
|
||||
inventory: "Demo Inventory"
|
||||
project: "Ansible Product Demos"
|
||||
playbook: "windows/rollback.yml"
|
||||
execution_environment: Default execution environment
|
||||
notification_templates_started: Telemetry
|
||||
notification_templates_success: Telemetry
|
||||
notification_templates_error: Telemetry
|
||||
@@ -109,6 +111,7 @@ controller_templates:
|
||||
inventory: "Demo Inventory"
|
||||
project: "Ansible Product Demos"
|
||||
playbook: "windows/connect.yml"
|
||||
execution_environment: Default execution environment
|
||||
notification_templates_started: Telemetry
|
||||
notification_templates_success: Telemetry
|
||||
notification_templates_error: Telemetry
|
||||
@@ -417,7 +420,7 @@ controller_workflows:
|
||||
unified_job_template: Cloud / AWS / Create VM
|
||||
job_type: run
|
||||
extra_data:
|
||||
create_vm_vm_name: dc01
|
||||
create_vm_vm_name: dc01.ansible.local
|
||||
create_vm_vm_purpose: domain_controller
|
||||
create_vm_vm_deployment: domain_ansible_local
|
||||
vm_blueprint: windows_full
|
||||
@@ -427,7 +430,7 @@ controller_workflows:
|
||||
unified_job_template: Cloud / AWS / Create VM
|
||||
job_type: run
|
||||
extra_data:
|
||||
create_vm_vm_name: winston
|
||||
create_vm_vm_name: winston.ansible.local
|
||||
create_vm_vm_purpose: domain_computer
|
||||
create_vm_vm_deployment: domain_ansible_local
|
||||
vm_blueprint: windows_core
|
||||
@@ -437,7 +440,7 @@ controller_workflows:
|
||||
unified_job_template: Cloud / AWS / Create VM
|
||||
job_type: run
|
||||
extra_data:
|
||||
create_vm_vm_name: winthrop
|
||||
create_vm_vm_name: winthrop.ansible.local
|
||||
create_vm_vm_purpose: domain_computer
|
||||
create_vm_vm_deployment: domain_ansible_local
|
||||
vm_blueprint: windows_core
|
||||
@@ -471,7 +474,7 @@ controller_workflows:
|
||||
job_type: run
|
||||
extra_data:
|
||||
_hosts: purpose_domain_computer
|
||||
domain_controller: dc01
|
||||
domain_controller: dc01.ansible.local
|
||||
failure_nodes:
|
||||
- Cleanup Resources
|
||||
success_nodes:
|
||||
|
||||
Reference in New Issue
Block a user