Merge pull request #7 from davidrojas25/master
Adding Chocolatey App Install Demo
2
.gitignore
vendored
@@ -1,3 +1,5 @@
|
||||
|
||||
sean_login_info.yml
|
||||
.DS_Store
|
||||
choose_demo.yml
|
||||
.ansible.cfg
|
||||
|
||||
@@ -13,3 +13,12 @@ my_tower_username: colin
|
||||
my_tower_password: mahalo
|
||||
my_tower_host: test.rhdemo.io
|
||||
workshop_type: rhel
|
||||
|
||||
# leave as false unless you are deploying an Azure Demo
|
||||
azure_demo: False
|
||||
#only uncomment these and supply values for setting up an Azure Cloud Demo which means azure_demo: True above
|
||||
#my_subscription:
|
||||
#my_tenant:
|
||||
#my_client:
|
||||
#my_secret:
|
||||
|
||||
|
||||
24
choose_demo_example_azure.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
## example file for how to choose a demo
|
||||
## chose specific demo or choose all
|
||||
|
||||
# SPECIFIC - example that installs just the deploy_application job template
|
||||
demo: azure_provision_vm
|
||||
|
||||
# ALL - example that installs all demos
|
||||
# demo: all
|
||||
|
||||
## Ansible Tower login infomation
|
||||
my_tower_username: drojas
|
||||
my_tower_password: zapata
|
||||
my_tower_host: test.rhdemo.io
|
||||
workshop_type: windows
|
||||
|
||||
# leave as false unless you are deploying an Azure Demo
|
||||
azure_demo: True
|
||||
#only uncomment these and supply values for setting up an Azure Cloud Demo which means azure_demo: True above
|
||||
my_subscription: bb66f723-9eb9-405b-7889-2e722a5a5a45
|
||||
my_tenant: bbe51e50-8759-5cc6-93f7-71985d8dbddf
|
||||
my_client: 7e7d5fd3-c84b-b64c-ae96-cf474f4aa573
|
||||
my_secret: K1S5~EqpmvG68i8ni9-b1hmn3~yROfHM_I
|
||||
|
||||
103
docs/infrastructure/azure_provision_vm.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# Demo: Azure Provision VM
|
||||
|
||||
[Click here to return to master demo list](../../README.md#demo-repository)
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Objective](#objective)
|
||||
* [What business problem is solved?](#what-business-problem-is-solved)
|
||||
* [Features show cased](#features-show-cased)
|
||||
* [Video](#video)
|
||||
* [Guide](#guide)
|
||||
|
||||
# Objective
|
||||
|
||||
Demostrate how anisble can be used to provision a RHEL VM in the Azure Cloud
|
||||
|
||||
# What business problem is solved?
|
||||
|
||||
- **speed to market**:
|
||||
reducing human time to provision VMs
|
||||
- **reduce human error**:
|
||||
stadardize and automation a complex set of steps to reduce human errors
|
||||
- **reduce complexity**:
|
||||
does not require a System Administrator familiar with any cloud provider or its interface in order to provision any resources
|
||||
|
||||
|
||||
# Features show cased
|
||||
|
||||
- Push button cloud provisioning
|
||||
- Self Service IT - Surveys
|
||||
|
||||
For description of these and other features of the Red Hat Ansible Automation Platform please refer to the [features README](../features.md)
|
||||
|
||||
# Video
|
||||
|
||||
Coming Soon
|
||||
|
||||
# Installing Demo
|
||||
|
||||
1. You will need to create a Service Principal following these [Azure Docs instructions](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal)
|
||||
|
||||
2. Then set the azure_demo variable to True. As well as provide the folowing variable values before loading this demo as shown below.
|
||||
- azure_demo: True
|
||||
- my_subscription:
|
||||
- my_tenant:
|
||||
- my_client:
|
||||
- my_secret:
|
||||
|
||||
See sample file named choose_demmo_example_azure.yml
|
||||
|
||||
# Guide
|
||||
|
||||
1. Login to Ansible Platform UX
|
||||
|
||||
2. Navigate to **Templates**
|
||||
|
||||

|
||||
|
||||
3. Click the rocket next to **INFRASTRUCTURE / Chocolatey App Install** to launch the Job
|
||||
|
||||

|
||||
|
||||
4. The survey will prompt you to define the resource group, Azure region, name of the new VM.
|
||||
|
||||

|
||||
|
||||
5. Enter values and press **NEXT**
|
||||
|
||||

|
||||
|
||||
Explain to audience what is happening here depending on audience persona
|
||||
|
||||
**Persona A**: Technical audience that has written Ansible Playbooks before:
|
||||
Ansible can be used for more than on prem infrustructure it can also be used to provision many resource on the public clouds. Surveys create variables that the Job can use within Ansible Playbooks. This gives you the ability to create one playbook that can be used for reoccuring RHEL provisioning in various Aure regions instead of a job template for each region or VM provisioned. Again saving you time and effort to write seperate playbooks for each use case. In the screenshot you will see the variables are named **resource_group**, **location**, and **vm_name** with the values of testdemorg7, eastus, and test-server07.
|
||||
|
||||
**Persona B**: Decision maker audience, IT manager or above:
|
||||
reiterate business values above. This allows a non Azure Cloud expert the ability to automate routine tasks within a cloud environment. They can't provision servers that are not vetted and put within the job template or to locations that are not preapproved within the Survey. Freeing them from the mundance and repeative task of VM provisioning while maintaining the highest level of security and compliance across your organization. In the event that your IT process does not allow the Red Hat Ansible Automation Platform to be the front end, it has a rich and powerful API that can work with existing workflows such as ServiceNow.
|
||||
|
||||
6. Execute the job by pressing the green **LAUNCH** button
|
||||
|
||||
7. Explain what is happening:
|
||||
|
||||
- Job has started executed in the background. The user can navigate off this page and the job will continue to execute.
|
||||
- On the left is the **Job Details Pane** labeled simply with **DETAILS**. This information is logged and tells you who, what, when and how.
|
||||
- **who** - who launched the job, in this example is the admin user
|
||||
- **what** - the project and Ansible Playbook used, and which credential to login to the infrastructure
|
||||
- **when** - time stamps for start, end and duration of the job run.
|
||||
- **how** - the job status (pass, fail), enviornment and execution node
|
||||
- The larger window on the right is the **Standard Out Pane**. This provides the same console output the user would be used to on the command-line for troubleshooting purposes. Some important takeways to showcase are:
|
||||
- aggregate info is at the top including the amount of Plays, tasks, hosts and time duration.
|
||||
- this pane can be expanded to take up entire browser window
|
||||
- Ansible Playbook can be downloaded for troubleshooting purposes
|
||||
- **click on task output** to show them task-by-task JSON output that can be used for troubleshooting or just getting additional information
|
||||

|
||||
|
||||
8. Circle back and summarize
|
||||
|
||||
You need to circle back what has been showcased to the [business reasons listed above](#what-business-problem-is-solved). You are welcome to verify on the Azure Portal that the RHEL server was actually provisioned but unless you have a very technical audience you are going to start losing folks. The real business solution here is automating away the mundane and repetative.
|
||||
|
||||
|
||||
|
||||
---
|
||||
You have finished this demo. [Click here to return to master demo list](../../README.md#demo-repository)
|
||||
90
docs/infrastructure/chocolatey_app_install.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Demo: Chocolatey App Install
|
||||
|
||||
[Click here to return to master demo list](../../README.md#demo-repository)
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Objective](#objective)
|
||||
* [What business problem is solved?](#what-business-problem-is-solved)
|
||||
* [Features show cased](#features-show-cased)
|
||||
* [Video](#video)
|
||||
* [Guide](#guide)
|
||||
|
||||
# Objective
|
||||
|
||||
Demostrate how anisble along with Chocolatey can install applciation packages to Windows nodes
|
||||
|
||||
# What business problem is solved?
|
||||
|
||||
- **speed to market**:
|
||||
reducing human time to install Windows applications
|
||||
- **reduce human error**:
|
||||
automation of routine manual processes
|
||||
- **reduce complexity**:
|
||||
does not require a System Administrator familiar with the specific operating system to install the Application. Automate and create a self service option to deploy software.
|
||||
|
||||
|
||||
# Features show cased
|
||||
|
||||
- Push button deployment
|
||||
- Self Service IT - Surveys
|
||||
|
||||
For description of these and other features of the Red Hat Ansible Automation Platform please refer to the [features README](../features.md)
|
||||
|
||||
# Video
|
||||
|
||||
Coming Soon
|
||||
|
||||
# Guide
|
||||
|
||||
1. Login to Ansible Platform UX
|
||||
|
||||
2. Navigate to **Templates**
|
||||
|
||||

|
||||
|
||||
3. Click the rocket next to **INFRASTRUCTURE / Chocolatey App Install** to launch the Job
|
||||
|
||||

|
||||
|
||||
4. The survey will prompt you to install or remove a package.
|
||||
|
||||

|
||||
|
||||
5. Choose a package or packages and press **NEXT**
|
||||
|
||||

|
||||
|
||||
Explain to audience what is happening here depending on audience persona
|
||||
|
||||
**Persona A**: Technical audience that has written Ansible Playbooks before:
|
||||
Surveys create variables that the Job can use within Ansible Playbooks. This gives you the ability to create one playbook that can be used for multiple installs instead of a job template for each app. In this case due to the multiple Select option you are not limited to 1 app but can select and install 2 or more apps at once. The survey also gives you the ability to select if the app will be installed, removed, or simply updated to the latest version. Again saving you time and effort to write seperate playbooks for each use case. In the screenshot you will see the variables are named **choco_package** and **app_state** with values of **git** and **present**
|
||||
|
||||
**Persona B**: Decision maker audience, IT manager or above:
|
||||
reiterate business values above. This allows a non subject matter expert the ability to automate routine tasks within a Windows environment. They can't install applications that are not vetted and put within the survey. Freeing them from the mundance and repeative task for application installation while maintaining the highest level of security and compliance across your organization. In the event that your IT process does not allow the Red Hat Ansible Automation Platform to be the front end, it has a rich and powerful API that can work with existing workflows such as ServiceNow.
|
||||
|
||||
6. Execute the job by pressing the green **LAUNCH** button
|
||||
|
||||
7. Explain what is happening:
|
||||
|
||||
- Job has started executed in the background. The user can navigate off this page and the job will continue to execute.
|
||||
- On the left is the **Job Details Pane** labeled simply with **DETAILS**. This information is logged and tells you who, what, when and how.
|
||||
- **who** - who launched the job, in this example is the admin user
|
||||
- **what** - the project and Ansible Playbook used, and which credential to login to the infrastructure
|
||||
- **when** - time stamps for start, end and duration of the job run.
|
||||
- **how** - the job status (pass, fail), enviornment and execution node
|
||||
- The larger window on the right is the **Standard Out Pane**. This provides the same console output the user would be used to on the command-line for troubleshooting purposes. Some important takeways to showcase are:
|
||||
- aggregate info is at the top including the amount of Plays, tasks, hosts and time duration.
|
||||
- this pane can be expanded to take up entire browser window
|
||||
- Ansible Playbook can be downloaded for troubleshooting purposes
|
||||
- **click on task output** to show them task-by-task JSON output that can be used for troubleshooting or just getting additional information
|
||||

|
||||
|
||||
8. Circle back and summarize
|
||||
|
||||
You need to circle back what has been showcased to the [business reasons listed above](#what-business-problem-is-solved). You are welcome to verify on the Windows hosts that the package(s) was actually installed but unless you have a very technical audience you are going to start losing folks. The real business solution here is automating away the mundane and repetative.
|
||||
|
||||
|
||||
|
||||
---
|
||||
You have finished this demo. [Click here to return to master demo list](../../README.md#demo-repository)
|
||||
97
docs/infrastructure/chocolatey_config.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# Demo: Chocolatey Config
|
||||
|
||||
[Click here to return to master demo list](../../README.md#demo-repository)
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Objective](#objective)
|
||||
* [What business problem is solved?](#what-business-problem-is-solved)
|
||||
* [Features show cased](#features-show-cased)
|
||||
* [Video](#video)
|
||||
* [Guide](#guide)
|
||||
|
||||
# Objective
|
||||
|
||||
Demostrate how Anisble can be used not only to enable or disable Chocolatey configuration parameters but to set specifc values for those parameters
|
||||
|
||||
# What business problem is solved?
|
||||
|
||||
- **Operational Efficiency**:
|
||||
Ansible provides the ability to save dozen to hundreds of hours of reconfiguration work by systems admins through the configuration automation
|
||||
- **Increase Compliance**:
|
||||
Ansible provides the means to get and stay in compliance throughout all your systems
|
||||
|
||||
|
||||
|
||||
|
||||
# Features show cased
|
||||
|
||||
- Configuration as code
|
||||
- Self Service IT - Surveys
|
||||
|
||||
For description of these and other features of the Red Hat Ansible Automation Platform please refer to the [features README](../features.md)
|
||||
|
||||
# Video
|
||||
|
||||
Coming Soon
|
||||
|
||||
# Guide
|
||||
|
||||
1. Login to Ansible Platform UX
|
||||
|
||||
2. Navigate to **Templates**
|
||||
|
||||

|
||||
|
||||
3. Click the rocket next to **INFRASTRUCTURE / Chocolatey Features Config** to launch the Job
|
||||
|
||||

|
||||
|
||||
4. The survey will prompt you with 3 questions. What Parameter you want to change, whether you want to make it present or absent in the config, and the value for that paramater.
|
||||
|
||||

|
||||
|
||||
5. Choose a parameter. Select if you want to make it present or absent in the config. Finally, add the value for that parameter and press **NEXT**
|
||||
Note: These are just a few of the parameters they can add to the list. For these 3 see below for correct format for response.
|
||||
|
||||
- **proxyUser** single text line such as drojas or student25
|
||||
- **commandExecutionTimeoutSeconds** interger value. 0 is infinite, 2700 is default, recomendation is 14400
|
||||
- **cacheLocation** text of a path to location on windows node such as c:\chocolatey_temp2
|
||||
|
||||
For more info on possible parameter see [Chocolatey Documentation](https://chocolatey.org/docs/chocolatey-configuration)
|
||||
|
||||

|
||||
|
||||
Explain to audience what is happening here depending on audience persona
|
||||
|
||||
**Persona A**: Technical audience that has written Ansible Playbooks before:
|
||||
Surveys create variables that the Job can use within Ansible Playbooks. This gives you the ability to create one playbook that can be used to enable or disable and set configuration values instead of having to create or maintain many job templates. Again saving you time and effort to write seperate playbooks for each use case. In the screenshot you will see the variables are named **config-item**, **state**, and **value** with values of **cacheLocation**, **present**, and **c:\chocolatey_temp2**. These will be treated as extra vars and as such overirde any variables from any other source such as the playbook itself
|
||||
|
||||
**Persona B**: Decision maker audience, IT manager or above:
|
||||
reiterate business values above. This allows a systems admin to automate the reconfiguration of Chocolatey in a low risk repeatable manner. This will free up IT staff for larger more mission critical projects all while reducing risk to your production operations. In the event that your IT process does not allow the Red Hat Ansible Automation Platform to be the front end, it has a rich and powerful API that can work with existing workflows such as ServiceNow.
|
||||
|
||||
6. Execute the job by pressing the green **LAUNCH** button
|
||||
|
||||
7. Explain what is happening:
|
||||
|
||||
- Job has started executed in the background. The user can navigate off this page and the job will continue to execute.
|
||||
- On the left is the **Job Details Pane** labeled simply with **DETAILS**. This information is logged and tells you who, what, when and how.
|
||||
- **who** - who launched the job, in this example is the admin user
|
||||
- **what** - the project and Ansible Playbook used, and which credential to login to the infrastructure
|
||||
- **when** - time stamps for start, end and duration of the job run.
|
||||
- **how** - the job status (pass, fail), enviornment and execution node
|
||||
- The larger window on the right is the **Standard Out Pane**. This provides the same console output the user would be used to on the command-line for troubleshooting purposes. Some important takeways to showcase are:
|
||||
- aggregate info is at the top including the amount of Plays, tasks, hosts and time duration.
|
||||
- this pane can be expanded to take up entire browser window
|
||||
- Ansible Playbook can be downloaded for troubleshooting purposes
|
||||
- **click on task output** to show them task-by-task JSON output that can be used for troubleshooting or just getting additional information
|
||||

|
||||
|
||||
8. Circle back and summarize
|
||||
|
||||
You need to circle back what has been showcased to the [business reasons listed above](#what-business-problem-is-solved). You are welcome to verify on the Windows hosts that the configuration was actually changed but unless you have a very technical audience you are going to start losing folks. The real business solution here is automating away the mundane and repetative.
|
||||
|
||||
|
||||
|
||||
---
|
||||
You have finished this demo. [Click here to return to master demo list](../../README.md#demo-repository)
|
||||
90
docs/infrastructure/chocolatey_features.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Demo: Chocolatey Features Config
|
||||
|
||||
[Click here to return to master demo list](../../README.md#demo-repository)
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Objective](#objective)
|
||||
* [What business problem is solved?](#what-business-problem-is-solved)
|
||||
* [Features show cased](#features-show-cased)
|
||||
* [Video](#video)
|
||||
* [Guide](#guide)
|
||||
|
||||
# Objective
|
||||
|
||||
Demostrate how Anisble can be used to enable or disable features in Chocolatey
|
||||
|
||||
# What business problem is solved?
|
||||
|
||||
- **Operational Efficiency**:
|
||||
Ansible provides the ability to save dozen to hundreds of hours of reconfiguration work by systems admins through the configuration automation
|
||||
- **Increase Compliance**:
|
||||
Ansible provides the means to get and stay in compliance throughout all your systems
|
||||
|
||||
|
||||
|
||||
|
||||
# Features show cased
|
||||
|
||||
- Configuration as code
|
||||
- Self Service IT - Surveys
|
||||
|
||||
For description of these and other features of the Red Hat Ansible Automation Platform please refer to the [features README](../features.md)
|
||||
|
||||
# Video
|
||||
|
||||
Coming Soon
|
||||
|
||||
# Guide
|
||||
|
||||
1. Login to Ansible Platform UX
|
||||
|
||||
2. Navigate to **Templates**
|
||||
|
||||

|
||||
|
||||
3. Click the rocket next to **INFRASTRUCTURE / Chocolatey Features Config** to launch the Job
|
||||
|
||||

|
||||
|
||||
4. The survey will prompt you for what feature to enable or disable.
|
||||
|
||||

|
||||
|
||||
5. Choose a feature and press **NEXT**
|
||||
|
||||

|
||||
|
||||
Explain to audience what is happening here depending on audience persona
|
||||
|
||||
**Persona A**: Technical audience that has written Ansible Playbooks before:
|
||||
Surveys create variables that the Job can use within Ansible Playbooks. This gives you the ability to create one playbook that can be used to enable or disable any feature instead of having to create or maintain many job templates. The survey also gives you the ability to select if the feature will be enabled or disabled. Again saving you time and effort to write seperate playbooks for each use case. In the screenshot you will see the variables are named **feature** and **state** with values of **virusCheck** and **enabled**
|
||||
|
||||
**Persona B**: Decision maker audience, IT manager or above:
|
||||
reiterate business values above. This allows a systems admin to automate the reconfiguration of Chocolatey in a low risk repeatable manner. This will free up IT staff for larger more mission critical projects all while reducing risk to your production operations. In the event that your IT process does not allow the Red Hat Ansible Automation Platform to be the front end, it has a rich and powerful API that can work with existing workflows such as ServiceNow.
|
||||
|
||||
6. Execute the job by pressing the green **LAUNCH** button
|
||||
|
||||
7. Explain what is happening:
|
||||
|
||||
- Job has started executed in the background. The user can navigate off this page and the job will continue to execute.
|
||||
- On the left is the **Job Details Pane** labeled simply with **DETAILS**. This information is logged and tells you who, what, when and how.
|
||||
- **who** - who launched the job, in this example is the admin user
|
||||
- **what** - the project and Ansible Playbook used, and which credential to login to the infrastructure
|
||||
- **when** - time stamps for start, end and duration of the job run.
|
||||
- **how** - the job status (pass, fail), enviornment and execution node
|
||||
- The larger window on the right is the **Standard Out Pane**. This provides the same console output the user would be used to on the command-line for troubleshooting purposes. Some important takeways to showcase are:
|
||||
- aggregate info is at the top including the amount of Plays, tasks, hosts and time duration.
|
||||
- this pane can be expanded to take up entire browser window
|
||||
- Ansible Playbook can be downloaded for troubleshooting purposes
|
||||
- **click on task output** to show them task-by-task JSON output that can be used for troubleshooting or just getting additional information
|
||||

|
||||
|
||||
8. Circle back and summarize
|
||||
|
||||
You need to circle back what has been showcased to the [business reasons listed above](#what-business-problem-is-solved). You are welcome to verify on the Windows hosts that the feature was actually enabled or disabled but unless you have a very technical audience you are going to start losing folks. The real business solution here is automating away the mundane and repetative.
|
||||
|
||||
|
||||
|
||||
---
|
||||
You have finished this demo. [Click here to return to master demo list](../../README.md#demo-repository)
|
||||
BIN
images/azure_provision_vm/azure_provision_vm_survey.jpeg
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
images/azure_provision_vm/azure_provision_vm_survey_preview.jpeg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
images/azure_provision_vm/azure_provision_vm_task_output.jpeg
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
images/choco_app_install/choco_survey.jpeg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
images/choco_app_install/choco_survey_preview.jpeg
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
images/choco_app_install/choco_task_output.jpeg
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
images/choco_config/choco_config_survey.jpeg
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
images/choco_config/choco_config_survey_preview.jpeg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
images/choco_config/choco_config_task_output.jpeg
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
images/choco_features/choco_features_survey.jpeg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
images/choco_features/choco_features_survey_preview.jpeg
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
images/choco_features/choco_features_task_output.jpeg
Normal file
|
After Width: | Height: | Size: 39 KiB |
68
playbooks/infrastructure/azure_provision_vm.yml
Normal file
@@ -0,0 +1,68 @@
|
||||
# Description
|
||||
# ===========
|
||||
# This playbook create an Azure VM with public IP, and open 22 port for SSH
|
||||
|
||||
- name: Create Azure VM
|
||||
hosts: localhost
|
||||
connection: local
|
||||
|
||||
vars:
|
||||
resource_group: vmdemo
|
||||
vm_name: testvm
|
||||
location: eastus
|
||||
collections:
|
||||
- azure.azcollection
|
||||
tasks:
|
||||
- name: Create a resource group
|
||||
azure_rm_resourcegroup:
|
||||
|
||||
name: "{{ resource_group }}"
|
||||
location: "{{ location }}"
|
||||
- name: Create virtual network
|
||||
azure_rm_virtualnetwork:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ vm_name }}"
|
||||
address_prefixes: "10.0.0.0/16"
|
||||
- name: Add subnet
|
||||
azure_rm_subnet:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ vm_name }}"
|
||||
address_prefix: "10.0.1.0/24"
|
||||
virtual_network: "{{ vm_name }}"
|
||||
- name: Create public IP address
|
||||
azure_rm_publicipaddress:
|
||||
resource_group: "{{ resource_group }}"
|
||||
allocation_method: Static
|
||||
name: "{{ vm_name }}"
|
||||
- name: Create Network Security Group that allows SSH
|
||||
azure_rm_securitygroup:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ vm_name }}"
|
||||
rules:
|
||||
- name: SSH
|
||||
protocol: Tcp
|
||||
destination_port_range: 22
|
||||
access: Allow
|
||||
priority: 1001
|
||||
direction: Inbound
|
||||
- name: Create virtual network inteface card
|
||||
azure_rm_networkinterface:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ vm_name }}"
|
||||
virtual_network: "{{ vm_name }}"
|
||||
subnet: "{{ vm_name }}"
|
||||
public_ip_name: "{{ vm_name }}"
|
||||
security_group: "{{ vm_name }}"
|
||||
- name: Create VM
|
||||
azure_rm_virtualmachine:
|
||||
resource_group: "{{ resource_group }}"
|
||||
name: "{{ vm_name }}"
|
||||
vm_size: Standard_DS1_v2
|
||||
admin_username: azureuser
|
||||
admin_password: Password@123
|
||||
network_interfaces: "{{ vm_name }}"
|
||||
image:
|
||||
offer: RHEL
|
||||
publisher: RedHat
|
||||
sku: 7-LVM
|
||||
version: latest
|
||||
17
playbooks/infrastructure/chocolatey_app_install.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
- name: install chocolatey package on Windows host
|
||||
hosts: windows
|
||||
|
||||
vars:
|
||||
choco_packages: git
|
||||
app_state: present
|
||||
|
||||
collections:
|
||||
- chocolatey.chocolatey
|
||||
|
||||
tasks:
|
||||
|
||||
- name: Install multiple packages
|
||||
win_chocolatey:
|
||||
name: "{{ choco_packages }}"
|
||||
state: "{{ app_state }}"
|
||||
18
playbooks/infrastructure/chocolatey_config.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: configuring Chocolatey
|
||||
hosts: windows
|
||||
|
||||
vars:
|
||||
config_item: cacheLocation
|
||||
state: present
|
||||
value: C:\chocolatey_temp2
|
||||
|
||||
collections:
|
||||
- chocolatey.chocolatey
|
||||
tasks:
|
||||
|
||||
- name: set configuration parameter
|
||||
win_chocolatey_config:
|
||||
name: "{{ config_item }}"
|
||||
state: "{{ state }}"
|
||||
value: "{{ value }}"
|
||||
17
playbooks/infrastructure/chocolatey_features.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
- name: enabling or disabling chocolatey features
|
||||
hosts: windows
|
||||
|
||||
vars:
|
||||
feature: stopOnFirstPackageFailure
|
||||
state: enabled
|
||||
|
||||
collections:
|
||||
- chocolatey.chocolatey
|
||||
|
||||
tasks:
|
||||
|
||||
- name: enable or disable Chocolatey features
|
||||
win_chocolatey_feature:
|
||||
name: "{{ feature }}"
|
||||
state: "{{ state }}"
|
||||
21
roles/install_demo/tasks/azure_cred.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
- name: add azure credential
|
||||
tower_credential:
|
||||
name: azure_credential
|
||||
description: Azure Service Principle
|
||||
organization: "{{ vars[demo].project.organization }}"
|
||||
state: present
|
||||
kind: azure_rm
|
||||
subscription: "{{ my_subscription }}"
|
||||
tenant: "{{ my_tenant }}"
|
||||
client: "{{ my_client }}"
|
||||
secret: "{{ my_secret }}"
|
||||
tower_username: "{{ my_tower_username }}"
|
||||
tower_password: "{{ my_tower_password }}"
|
||||
tower_host: "{{ my_tower_host }}"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -20,6 +20,11 @@
|
||||
- "demo must be defined and be one of: {{ demo_list }}"
|
||||
- "full list can be found on https://github.com/ansible/product-demos"
|
||||
|
||||
- name: install Azure cred
|
||||
include_tasks: azure_cred.yml
|
||||
when:
|
||||
- azure_demo == True
|
||||
|
||||
- name: install all job templates
|
||||
include_tasks: job_template_loop.yml
|
||||
loop: "{{ full_demo_info }}"
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
azure_provision_vm:
|
||||
author: "David Rojas"
|
||||
readme: "https://github.com/ansible/product-demos/blob/master/docs/infrastructure/azure_provision_vm.md"
|
||||
category: infrastructure
|
||||
name: "INFRASTRUCTURE / Azure Provision VM"
|
||||
description: "Provision RHEL VM on Azure with Ansible Tower Survey and Environmental variables"
|
||||
job_type: "run"
|
||||
inventory: "Workshop Inventory"
|
||||
playbook: "playbooks/infrastructure/azure_provision_vm.yml"
|
||||
credential: "azure_credential"
|
||||
survey_enabled: true
|
||||
survey_spec:
|
||||
name: Azure Provision VM
|
||||
description: Provisioning a RHEL VM with Tower?
|
||||
spec:
|
||||
- type: text
|
||||
question_name: Enter name of your resource group
|
||||
question_description: This can be an existing or new resource group
|
||||
variable: resource_group
|
||||
required: true
|
||||
#default:
|
||||
|
||||
- type: multiplechoice
|
||||
question_name: What Azure region do you want to host your VM
|
||||
question_description: Select one from the drop-down
|
||||
variable: location
|
||||
required: true
|
||||
default: eastus
|
||||
choices:
|
||||
- eastus
|
||||
- eastus2
|
||||
- westus
|
||||
- centralus
|
||||
|
||||
- type: text
|
||||
question_name: Enter the name of the VM
|
||||
question_description: You can't use any special characters or whitesapces
|
||||
variable: vm_name
|
||||
required: true
|
||||
#default:
|
||||
#video: "https://www.youtube.com/watch?v=pU8ZgSBuEJw&list=PLdu06OJoEf2bp-PNtxPP_2n7Avkax8TED"
|
||||
project:
|
||||
name: "Ansible official demo project"
|
||||
description: "prescriptive demos from Red Hat Management Business Unit"
|
||||
organization: "Default"
|
||||
scm_type: git
|
||||
scm_url: "https://github.com/ansible/product-demos"
|
||||
workshop_type:
|
||||
- windows
|
||||
- demo
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
chocolatey_app_install:
|
||||
author: "David Rojas"
|
||||
readme: "https://github.com/ansible/product-demos/blob/master/docs/infrastructure/chocolatey_app_install.md"
|
||||
category: infrastructure
|
||||
name: "INFRASTRUCTURE / Chocolatey App Install"
|
||||
description: "Install various application packages using Chocolatey from a survey"
|
||||
job_type: "run"
|
||||
inventory: "Workshop Inventory"
|
||||
playbook: "playbooks/infrastructure/chocolatey_app_install.yml"
|
||||
credential: "Workshop Credential"
|
||||
survey_enabled: true
|
||||
survey_spec:
|
||||
name: Chocolatey Application Install
|
||||
description: Which application do you want to install?
|
||||
spec:
|
||||
- type: multiselect
|
||||
question_name: Select the application you would like to add update or remove
|
||||
question_description: You can pick one or more
|
||||
variable: choco_packages
|
||||
required: true
|
||||
default: git
|
||||
choices:
|
||||
- git
|
||||
- wireshark
|
||||
- googlechrome
|
||||
- googledrive
|
||||
- vscode
|
||||
- type: multiplechoice
|
||||
question_name: What state do you want these applications in?
|
||||
question_description: Select Present Absent or Update
|
||||
variable: app_state
|
||||
required: true
|
||||
default: present
|
||||
choices:
|
||||
- present
|
||||
- absent
|
||||
- update
|
||||
#video: "https://www.youtube.com/watch?v=pU8ZgSBuEJw&list=PLdu06OJoEf2bp-PNtxPP_2n7Avkax8TED"
|
||||
project:
|
||||
name: "Ansible official demo project"
|
||||
description: "prescriptive demos from Red Hat Management Business Unit"
|
||||
organization: "Default"
|
||||
scm_type: git
|
||||
scm_url: "https://github.com/ansible/product-demos"
|
||||
workshop_type:
|
||||
- windows
|
||||
- demo
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
chocolatey_config:
|
||||
author: "David Rojas"
|
||||
readme: "https://github.com/ansible/product-demos/blob/master/docs/infrastructure/chocolatey_config.md"
|
||||
category: infrastructure
|
||||
name: "INFRASTRUCTURE / Chocolatey Config"
|
||||
description: "Configure Chocolatey parameters that require not just enabling but adding values"
|
||||
job_type: "run"
|
||||
inventory: "Workshop Inventory"
|
||||
playbook: "playbooks/infrastructure/chocolatey_config.yml"
|
||||
credential: "Workshop Credential"
|
||||
survey_enabled: true
|
||||
survey_spec:
|
||||
name: Chocolatey Config
|
||||
description: Select a chocolatey parameter and config the value for it
|
||||
spec:
|
||||
- type: multiplechoice
|
||||
question_name: Select the parameter you would like to add change or remove
|
||||
question_description: Select one from drop-down
|
||||
variable: config_item
|
||||
required: true
|
||||
#default:
|
||||
choices:
|
||||
- proxyUser
|
||||
- commandExecutionTimeoutSeconds
|
||||
- cacheLocation
|
||||
- type: multiplechoice
|
||||
question_name: Do you want to enable or disable this parameter?
|
||||
question_description: Select Present or Absent
|
||||
variable: state
|
||||
required: true
|
||||
default: present
|
||||
choices:
|
||||
- present
|
||||
- absent
|
||||
- type: text
|
||||
question_name: Enter the value for the parameter
|
||||
question_description: This is free form as each parameter has different values. Leave blank when setting as "absent"
|
||||
variable: value
|
||||
required: false
|
||||
#default:
|
||||
|
||||
#video: "https://www.youtube.com/watch?v=pU8ZgSBuEJw&list=PLdu06OJoEf2bp-PNtxPP_2n7Avkax8TED"
|
||||
project:
|
||||
name: "Ansible official demo project"
|
||||
description: "prescriptive demos from Red Hat Management Business Unit"
|
||||
organization: "Default"
|
||||
scm_type: git
|
||||
scm_url: "https://github.com/davidrojas25/product-demos"
|
||||
workshop_type:
|
||||
- windows
|
||||
- demo
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
chocolatey_features:
|
||||
author: "David Rojas"
|
||||
readme: "https://github.com/ansible/product-demos/blob/master/docs/infrastructure/chocolatey_features.md"
|
||||
category: infrastructure
|
||||
name: "INFRASTRUCTURE / Chocolatey Features Config"
|
||||
description: "Enable or disable various Chocolatey features"
|
||||
job_type: "run"
|
||||
inventory: "Workshop Inventory"
|
||||
playbook: "playbooks/infrastructure/chocolatey_features.yml"
|
||||
credential: "Workshop Credential"
|
||||
survey_enabled: true
|
||||
survey_spec:
|
||||
name: Chocolatey Features Config
|
||||
description: Which feature do you want to select?
|
||||
spec:
|
||||
- type: multiplechoice
|
||||
question_name: Select the feature you would like to enable or disable?
|
||||
question_description: Select one from the drop-down list
|
||||
variable: feature
|
||||
required: true
|
||||
#default:
|
||||
choices:
|
||||
- checksumFiles
|
||||
- stopOnFirstPackageFailure
|
||||
- autoUninstaller
|
||||
- virusCheck
|
||||
- type: multiplechoice
|
||||
question_name: What state do you want the feature in?
|
||||
question_description: Select enabled or disabled
|
||||
variable: state
|
||||
required: true
|
||||
default: enabled
|
||||
choices:
|
||||
- enabled
|
||||
- disabled
|
||||
#video: "https://www.youtube.com/watch?v=pU8ZgSBuEJw&list=PLdu06OJoEf2bp-PNtxPP_2n7Avkax8TED"
|
||||
project:
|
||||
name: "Ansible official demo project"
|
||||
description: "prescriptive demos from Red Hat Management Business Unit"
|
||||
organization: "Default"
|
||||
scm_type: git
|
||||
scm_url: "https://github.com/ansible/product-demos"
|
||||
workshop_type:
|
||||
- windows
|
||||
- demo
|
||||