{"id":18762466,"url":"https://github.com/ericcames/aap.dailydemo.windows","last_synced_at":"2026-01-25T12:31:24.245Z","repository":{"id":242778927,"uuid":"810538613","full_name":"ericcames/aap.dailydemo.windows","owner":"ericcames","description":"Ansible Automation Platform Daily Demo for Windows","archived":false,"fork":false,"pushed_at":"2026-01-15T19:39:28.000Z","size":1232,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-15T21:53:21.837Z","etag":null,"topics":["amazon","ansible","automation","aws","cloud","dailydemo","lab","sales","windows"],"latest_commit_sha":null,"homepage":"https://galaxy.ansible.com/ui/repo/published/ericcames/windows_daily_demo/","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericcames.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-04T22:24:38.000Z","updated_at":"2026-01-15T19:39:34.000Z","dependencies_parsed_at":"2024-06-27T20:43:51.988Z","dependency_job_id":"a58af40f-e01e-4a56-9c91-a2e2817239dd","html_url":"https://github.com/ericcames/aap.dailydemo.windows","commit_stats":null,"previous_names":["ericcames/aap.dailydemo.windows"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ericcames/aap.dailydemo.windows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericcames%2Faap.dailydemo.windows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericcames%2Faap.dailydemo.windows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericcames%2Faap.dailydemo.windows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericcames%2Faap.dailydemo.windows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericcames","download_url":"https://codeload.github.com/ericcames/aap.dailydemo.windows/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericcames%2Faap.dailydemo.windows/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28752965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon","ansible","automation","aws","cloud","dailydemo","lab","sales","windows"],"created_at":"2024-11-07T18:21:20.711Z","updated_at":"2026-01-25T12:31:24.229Z","avatar_url":"https://github.com/ericcames.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"Ansible Automation Platform Daily Demo for Windows\n=========\nA demo designed to showcase many of the use cases that people are looking for.  We are using the workflow visualizer to show how the various building blocks are put together and enable the delivery on demand of a custom website.  The playbooks call roles, the roles allow for ease of sharing the code and also allow for documentation of the various things needed in each role. The demo is designed to be integrated with an IT Service Management (ITSM) system.  Everything will be documented in ITSM system via the skillfull use of automation.  Check out the video below to see that \"the art of the possible.\"\n\nNotes\n=========\n1. This demo is designed to work with the Red Hat Demo Platform. Please see the aap.as.code repo below. [aap.as.code](https://github.com/ericcames/aap.as.code \"aap.as.code\")\n2. This demo works with Amazon only currently.\n3. This demo works with ServiceNow.\n\nDay 0 - Configuration as code (CAC) a repeatable build process for this demo\n=========\nConfiguration as code give you an easy way to recover/move your ansible related artifacts to a new platform.  That includes your hardcoded credentials.  The hardcoded credentials can be safely vaulted in an ansible vault file.  Check out the setup_demo.yml for the configurations for setting up this demo using configuration as code.\n\n[Setup - Windows Daily Demo - CAC](https://github.com/ericcames/aap.dailydemo.windows/blob/main/playbooks/setup_demo.yml \"Setup - Windows Daily Demo - CAC\")\u003cbr\u003e\n\nVariables used in the setup template\n```\ntimezone_id: America/Phoenix\nmy_vault: Eric Ames\nmy_remote_vault: \u003e-\n  https://raw.githubusercontent.com/ericcames/sourcefiles/refs/heads/main/vault_ames.yml\nmy_remote_ssh_pub_key: \u003e-\n  https://raw.githubusercontent.com/ericcames/sourcefiles/refs/heads/main/id_rsa.pub\n```\n\nDay 1 - Run workflow for the Windows Daily Demo\n=========\n\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/windowswf.png \"Start of workflow\")\n\n**The playbooks**\n\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/ddwtemps.png \"The job templates\")\n\n[Site Delete will clean everything up](https://github.com/ericcames/aap.dailydemo.windows/blob/main/playbooks/site_delete.yml \"site_delete.yml\")\u003cbr\u003e\n\nServiceNow\n========\n\n**The playbooks**\n\n[Create a CMDB record](https://github.com/ericcames/aap.dailydemo.windows/blob/main/playbooks/servicenow/create_ci.yml \"create_ci.yml\") \u003cbr\u003e\n[Create a CMDB relationship](https://github.com/ericcames/aap.dailydemo.windows/blob/main/playbooks/servicenow/create_cmdb_relationship.yml \"create_cmdb_relationship.yml\") \u003cbr\u003e\n[Create incident ticket](https://github.com/ericcames/aap.dailydemo.windows/blob/main/playbooks/servicenow/incident_create.yml \"incident_create.yml\") \u003cbr\u003e\n[Update requested item ticket](https://github.com/ericcames/aap.dailydemo.windows/blob/main/playbooks/servicenow/update_sn_req_itm.yml \"update_sn_req_itm.yml\") \u003cbr\u003e\n\nServiceNow credential\u003cbr\u003e\nInput configuration\n```\nfields:\n  - id: instance\n    type: string\n    label: Instance\n  - id: username\n    type: string\n    label: username\n  - id: password\n    type: string\n    label: password\n    secret: true\nrequired:\n  - instance\n  - username\n  - password\n```\nInjector configuration\n```\nenv:\n  SN_HOST: '{{instance}}'\n  SN_PASSWORD: '{{password}}'\n  SN_USERNAME: '{{username}}'\n```\n\n- Automated incident management example\n\n[Example Error Handling in support of incident enrichment](https://github.com/ericcames/aap.dailydemo.windows/blob/main/roles/vm/tasks/main.yml \"Example Error Handling\") \u003cbr\u003e\n[Youtube video on Automated Incident enrichment](https://youtu.be/ieO-cbzNqjU?si=z28o3rpAgLTDqdnB \"Youtube video on Automated Incident enrichment\") \u003cbr\u003e\n\n```\n- name: Adding incident management error handling\n  block:\n\n    PUT YOUR TASKS HERE\n\n  rescue:\n\n    - name: Capture the error message\n      register: my_error\n      ansible.builtin.set_stats:\n        data:\n          my_error: \"{{ ansible_failed_result.msg }}\"\n\n    - name: Capture the Job ID\n      register: my_job_id\n      ansible.builtin.set_stats:\n        data:\n          my_job_id: \"{{ tower_job_id }}\"\n\n    - name: Capture the Job Template name\n      register: my_job_template_name\n      ansible.builtin.set_stats:\n        data:\n          my_job_template_name: \"{{ tower_job_template_name }}\"\n\n    - name: Fail the job even though the rescue worked\n      ansible.builtin.fail:\n        msg: failing so we create the incident ticket\n```\n# The website\n\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/windowsweb1.png \"Webtop\")\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/windowsweb2.png \"Webbottom\")\n\n# A youtube video of the demo\n\n- [AAP Daily Demo Windows](https://youtu.be/RNwel6BeCVI?si=ruIwcDFp6dyyAkjO \"AAP Daily Demo Windows\")\n\n\n# Important Note\nThe user_data line in the task listed below is designed to work with a template to set the password on the machine as it is built.  It works with a machine credential in the ansible automation platform.\n\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/windowsmachinecred.png \"Windows Machine Credential\")\n\n[Windows Machine Instance Creation](https://github.com/ericcames/aap.dailydemo.windows/blob/main/roles/vm/tasks/main.yml \"Windows Machine Instance Creation\")\u003cbr\u003e\n```\n- name: \"Creating AWS VMs in {{ region }}\"\n      register: instance\n      amazon.aws.ec2_instance:\n        name: \"Windows Daily Demo\"\n        state: running\n        region: \"{{ region }}\"\n        key_name: \"{{ my_ssh_key }}\"\n        vpc_subnet_id: \"{{ vpc_subnet_id }}\"\n        instance_type: \"{{ instance_type }}\"\n        security_group: \"{{ ec2_security_group_name }}\"\n        network:\n          assign_public_ip: \"{{ assign_public_ip }}\"\n        image_id: \"{{ image }}\"\n        tags:\n          Environment: windows-dailydemo\n          AlwaysUp: \"{{ alwaysup }}\"\n          Createdby: Ansible Controller\n          Contact: \"{{ my_email_address }}\"\n          DeletebBy: \"{{ ec2_ansible_group }}\"\n          info: \"This instance was built by the Sales Team\"\n        user_data: \"{{ lookup('template', 'scripts/aws_userdata') }}\"\n        wait: true\n        wait_timeout: 600\n```\n# Day 2 Operations\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/winday2.png \"Windows Day 2\")\n**Audit**\u003cbr\u003e\nAudit registry entries and repair if needed.  Document the work in a CSV file.\u003cbr\u003e\n[Audit](https://github.com/ericcames/aap.dailydemo.windows/blob/main/playbooks/auditme.yml \"auditme.yml\") \u003cbr\u003e\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/winaudit1.png \"Fixed\")\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/winaudit2.png \"Good\")\n\n**Patching**\u003cbr\u003e\nWe are using a survey to select what windows patches we want to apply as well as whether or not to reboot the machine.\u003cbr\u003e\n[Patching](https://github.com/ericcames/aap.dailydemo.windows/blob/main/playbooks/windows_patching_07.yml \"windows_patching_07.yml\") \u003cbr\u003e\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/winpatch1.png \"surveytop\")\n![alt text](https://github.com/ericcames/aap.dailydemo.windows/blob/main/images/winpatch2.png \"surveybottom\")\n\n# Adhoc windows commands\n```\nwin_ping\nwin_shell -\u003e Get-Service\nwin_shell -\u003e Get-Process\nsetup\nwin_shell -\u003e Add-WindowsCapability -Online -Name OpenSSH.Server\nwin_shell -\u003e Start-Service sshd\nwin_shell -\u003e Set-Service -Name sshd -StartupType ‘Automatic’\nwin_service -\u003e name=sshd\n```\nLooking for other Daily Demos?\n=========\n\n- [AAP Daily Demo Windows](https://github.com/ericcames/aap.dailydemo.windows \"AAP Daily Demo Windows\")\n- [AAP Daily Demo Linux](https://github.com/ericcames/aap.dailydemo.linux \"AAP Daily Demo Linux\")\n- [AAP Daily Demo F5](https://github.com/ericcames/aap.dailydemo.F5 \"AAP Daily Demo F5\")\n- [AAP Daily Demo Panos](https://github.com/ericcames/aap.dailydemo.Panos \"AAP Daily Demo Panos\")\n- [AAP Daily Demo Satellite](https://github.com/ericcames/aap.dailydemo.satellite \"AAP Daily Demo Satellite\")","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericcames%2Faap.dailydemo.windows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericcames%2Faap.dailydemo.windows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericcames%2Faap.dailydemo.windows/lists"}