- 45
- 135 965
Alex Dworjan
United States
Приєднався 8 лют 2022
Ansible Automation specialist with almost 5 years of experience working exclusively with Ansible and the Ansible Automation Platform. Creating short, consumable videos about various Ansible topics.
Ansible Dev Server using VSCode Dev Containers
This video will cover using Ansible Dev Tools from an Ansible Dev Container with the VSCode Dev Containers extension
The presenter is Alex Dworjan
Github: github.com/shadowman-lab
Dev Tools Documentation including WSL specifics: docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/developing_automation_content/installing-devtools
Dev Container configuration files: docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/developing_automation_content/installing-devtools#devtools-install-container_installing-devtools
The presenter is Alex Dworjan
Github: github.com/shadowman-lab
Dev Tools Documentation including WSL specifics: docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/developing_automation_content/installing-devtools
Dev Container configuration files: docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/developing_automation_content/installing-devtools#devtools-install-container_installing-devtools
Переглядів: 256
Відео
Event-Driven Ansible Command Line Testing
Переглядів 152Місяць тому
This video will cover testing of Event-Driven Ansible and Ansible-Rulebook via local command-line testing The presenter is Alex Dworjan Github: github.com/shadowman-lab Ansible Rulebook Documentation: ansible.readthedocs.io/projects/rulebook/en/stable/introduction.html Ansible Rulebook Blog: www.redhat.com/en/topics/automation/what-is-an-ansible-rulebook Podman command Example: podman run -it r...
Event-Driven Ansible Notification Service for ServiceNow
Переглядів 3022 місяці тому
This video will cover Ansible Automation Platform and integration with ServiceNow by leveraging the Event-Driven Ansible Notification Service Application The presenter is Alex Dworjan Github: github.com/shadowman-lab Event-Driven Ansible Notification Service Walkthrough: github.com/shadowman-lab/Ansible-SNOW/tree/main/SNOWSetup#servicenowaap-integration-instructions-using-event-driven-ansible-n...
Event-Driven Ansible And Datadog
Переглядів 2953 місяці тому
This video will cover using Event-Driven Ansible and Datadog together for automated remediation The presenter is Alex Dworjan Github: github.com/shadowman-lab Datadog Ansible collection: console.redhat.com/ansible/automation-hub/repo/published/datadog/dd/ Datadog EDA Rulebook: github.com/shadowman-lab/Ansible-Rulebooks/blob/main/rulebooks/datadog.yml Datadog Agent Documentation: docs.datadoghq....
Ansible Developer Environment Tips
Переглядів 3604 місяці тому
This video will cover additional Ansible developer environment tips such as ansible-lint fix, ansible creator via the Ansible Extension UI, Ansible Lightspeed full playbook generation, and Ansible dev environment The presenter is Alex Dworjan Github: github.com/shadowman-lab Ansible Dev Tools: ansible.readthedocs.io/projects/dev-tools/ Ansible Creator: ansible.readthedocs.io/projects/creator/ A...
Ansible Developer Environment Updates
Переглядів 4835 місяців тому
This video will cover some new capabilities and features to streamline the Ansible development process. Note, for Ansible Lightspeed to work in Dev Spaces or Code Server, you will need Ansible extension at v24.5.0 or newer and Red Hat Authentication v0.2.0 or newer. The presenter is Alex Dworjan Github: github.com/shadowman-lab GitHub readme with Contribute Button: github.com/shadowman-lab/Ansi...
Crunchy Data HA Database for AAP
Переглядів 2576 місяців тому
This video will cover using Crunchy Data as an HA Database for the Ansible Automation Platform The presenter is Alex Dworjan Github: github.com/shadowman-lab Crunchy Data for Kubernetes: access.crunchydata.com/documentation/postgres-operator/latest/ Crunchy Data for Ansible: www.crunchydata.com/solutions/ansible NOTE: Replace aap-controller with the name of your controller deployment, aapcluste...
Event-Driven Ansible Networking
Переглядів 2607 місяців тому
This video will cover using Event-Driven Ansible to handle Networking issues The presenter is Alex Dworjan Github: github.com/shadowman-lab NetOps blog: www.redhat.com/en/blog/addressing-netops-issues-with-event-driven-ansible Networking EDA Rulebook: github.com/shadowman-lab/Ansible-Rulebooks/blob/main/rulebooks/kafkanetwork.yml Telegraf role: github.com/shadowman-lab/Ansible-Labextra/tree/mai...
Developer Repository and Internal Documentation in Private Automation Hub
Переглядів 2118 місяців тому
This video will cover creating internal documentation of Execution Environments with the exact collections and versions for developers The presenter is Alex Dworjan Github: github.com/shadowman-lab Role Example: github.com/shadowman-lab/Ansible-PAH/blob/main/roles/build_shadowmanee/tasks/create_repo.yml
Ansible Development Environment Options
Переглядів 6038 місяців тому
This video will cover different Ansible Development Environments and the pros or cons for each The presenter is Alex Dworjan Github: github.com/shadowman-lab Development Repository: github.com/shadowman-lab/Ansible-Development VS Code Remote SSH Extension Documentation: code.visualstudio.com/docs/remote/sshcode.visualstudio.com/docs/remote/ssh Deeper Dive into Code-Server: ua-cam.com/video/H8Ia...
Execution Environment as Code
Переглядів 7709 місяців тому
This video will cover how to utilize Execution Environments as Code to improve your EE maintenance and build processes The presenter is Alex Dworjan Github: github.com/shadowman-lab Playbook Example: github.com/shadowman-lab/Ansible-PAH/blob/main/shadowman_ee_utils_simple.yml Roles used in the playbook: github.com/shadowman-lab/Ansible-PAH/tree/main/roles infra.ah_configuration collection: cons...
Event Driven Ansible with Hypervisors
Переглядів 3719 місяців тому
This video will cover using Event-Driven Ansible directly with a hypervisor to drive automated remediation. The presenter is Alex Dworjan Github: github.com/shadowman-lab Powershell Script for EDA from VCenter: github.com/shadowman-lab/Ansible-Rulebooks/blob/main/alert.ps1 VMWare EDA Rulebook: github.com/shadowman-lab/Ansible-Rulebooks/blob/main/rulebooks/vmware.yml Role for High Memory Usage o...
OpenShift Dev Spaces / Eclipse Che and Ansible Development
Переглядів 76911 місяців тому
Note: You can also add a .vscode/extensions.json to the root of your repository to auto-install extensions Detailed OpenShift Dev Server / Eclipse Che Instructions: github.com/shadowman-lab/Ansible-Development/blob/main/devspaces/README.md This video will cover using OpenShift Dev Spaces or Eclipse Che as an Ansible development environment The presenter is Alex Dworjan Github: github.com/shadow...
Ansible Dev Server Using VS Code Remote SSH
Переглядів 1,3 тис.11 місяців тому
This video will cover using the VS Code Remote SSH extension to perform Ansible development The presenter is Alex Dworjan Github: github.com/shadowman-lab Ansible-Development Repository: github.com/shadowman-lab/Ansible-Development Remote SSH Extension: code.visualstudio.com/docs/remote/ssh
Ansible Windows & Linux Remediation
Переглядів 1,2 тис.Рік тому
This video will cover the Ansible Automation Platform and how it can be used to perform Windows and Linux Remediation. This leverages Winlogbeat Kafka EDA for Windows and Systemd Automation Controller for RHEL The presenter is Alex Dworjan Github: github.com/shadowman-lab Ansible blog on Systemd: www.ansible.com/blog/event-driven-remediation-with-systemd-and-red-hat-ansible-automation-platform ...
Ansible Automation Platform Containerized Installer
Переглядів 1,8 тис.Рік тому
Ansible Automation Platform Containerized Installer
Migrating Playbooks for Execution Environments
Переглядів 1,9 тис.Рік тому
Migrating Playbooks for Execution Environments
Using Ansible for Cloud Savings - Overview
Переглядів 338Рік тому
Using Ansible for Cloud Savings - Overview
Using Ansible for Cloud Savings - Technical
Переглядів 540Рік тому
Using Ansible for Cloud Savings - Technical
Using Ansible for Cloud Savings - Executive
Переглядів 511Рік тому
Using Ansible for Cloud Savings - Executive
Ansible Automation Platform 2.3 Walkthrough
Переглядів 15 тис.Рік тому
Ansible Automation Platform 2.3 Walkthrough
How would i pass credentials to pull a dynamic inventory and execute plays ?
Once you are inside the Dev Container, it's just normal ansible operations. I have an inventory with host and group vars (all ansible-vaulted) so I can run all of my jobs
@@alexdworjan ok. I guess I am just trying to make this as close aap as possible. By passing in creds via credentials that uses the environmental variables
@@JC-ov9jb You could create the environment variables inside the Dev Container using normal Linux commands so for example using the AWS Dynamic Inventory Plugin: From the terminal run: export AWS_ACCESS_KEY_ID='AK123' export AWS_SECRET_ACCESS_KEY='abc123'
Is the image behind a paid account by chance? if not is there direct link to pull the image?
The image is located on registry.redhat.io which requires either a Red Hat Account or a Red Hat Developers Account. There is an upstream project: github.com/ansible/community-ansible-dev-tools-image and image: ghcr.io/ansible/community-ansible-dev-tools:latest though I do not know how often those are updated. I would certainly recommend using the images from registry.redhat.io
Where can I find a single node inventory-growth example using PKI along with the instructions for the PKI setup? The installation docs are very vague as it relates to adding PKI certificates from an enterprise CA. My install works without errors except port 8446 shows errors connection to the controller API.
If you installed AAP2.5, you'll no longer see individual access to the component (8446 also gives me the error "Error connecting to Controller API"). That is expected behavior. Everything now runs through the Unified UI which is available via https This has your list of variables: docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/containerized_installation/appendix-inventory-files-vars#ref-general-inventory-variables The TLS specifics: ca_tls_cert ca_tls_key postgresql_tls_cert postgresql_tls_key controller_tls_cert controller_tls_key hub_tls_cert hub_tls_key eda_tls_cert eda_tls_key gateway_tls_cert gateway_tls_key eda_redis_tls_cert eda_redis_tls_key gateway_redis_tls_cert gateway_redis_tls_key receptor_tls_cert receptor_tls_key
Nice video and transcript! Many Thanks! Could you please also explain how to configure Ansible Automation Backup Operator for handling this setup with external crunchy database?
The backup of all database items is handled by the Crunchy Database Operator (this is independent of the AAP Operator). Ansible considers this an "external database" so the AAP Operator would not be part of this process
@@alexdworjan Ok, I didn't found that information in the AAP Backup Operator documentation. However, my understanding is, that the AAP Backup Operator not just only saves the DB content but also other configuration besides the DB. Do you know if this is true for this external database setup?
@@torstenschaefer2475 The Crunchy Data Operator will only handle the dasebase itself. Using the backup Operator would handle the connection secrets and those portions only
Question: when i do a Containerized Install, Where can I find the logs of the automation controller?
All of the containers are created with --log-driver journald, so all of your container logs will be going to the host's journald. You may find them in /var/log/messages, or by using something like journalctl CONTAINER_NAME=automaton-controller-web
@@alexdworjan Thank you for your response. There where right there as you said they were. Can I also ask where the playbook folder is too? I read the documentation but they werent in the /aap directory.
The playbooks all get pulled during a Project Sync in Automation Controller. Then they are available for any Job Templates you are attempting to create
Thank you for your answers, one final question, How do I run the awx-manage Utility in a containerized installation?
@@mariobros237 It's contained inside the container itself, so if you run podman exec -it automation-controller-task bash You will have a bash prompt inside your task container, and you can run awx-manage commands
As an absolute beginner I would rather see the build etc done through command line as well through ansible. Still wrestling with some of the terminologies, etc.
I would highly recommend looking at the newer Ansible Builder capability since this one is a bit old: ansible.readthedocs.io/projects/builder/en/latest/. Ansible Builder Version 3 allows for more customization and everything can be written in a single file. In the example, I still manually created all those files, and then I would have run ansible-builder build -t MYIMAGE:TAG. That would have completed my build process. If you want a hands on walkthrough of Ansible-Builder version 3, we have a self-paced lab called "Get started with ansible-builder" that you can do here: www.redhat.com/en/interactive-labs/ansible. It's all command line driven, so it will absolutely give you all of the steps
@@alexdworjan Many Thanks. What I'm specifically interested in is creating a custom execution environment, probably through a private (and not public) Automation Hub if I understand the terminologies correctly. Unfortunately Red Hat do not seem to particularise much when describing the step to add an Execution Environment to an Automation Hub.
@@happyuk06 Private Automation Hub is the one created in your environment. Public Automation Hub is the one Red Hat provides through console.redhat.com. The ansible.cfg is where you define where collections can be installed from. This is a template that has an example: github.com/shadowman-lab/Ansible-PAH/blob/main/roles/build_shadowmanee/templates/ansible.cfg.j2. You would use the full https URL and then the token that you get from your private automation hub. For example, url=YOURURL.com/api/galaxy/content/rh-certified/ Then in your execution-environment.yml you'd use the additional_build files section to place your ansible.cfg into the context folder that builder uses additional_build_files: - src: <YOURFULLPATH>/ansible.cfg dest: configs And then you need a prepend_galaxy step to actually place that ansible.cfg into your EE prepend_galaxy: - COPY _build/configs/ansible.cfg /etc/ansible/ansible.cfg This will ensure that collections will only be pulled from your private automation hub when building. Then you just use podman to push to your Hub. Easiest way to do that is to name your EE with your hub URL first. So if your PAH server is test.example.com. You should build the EE to be test.example.com/testee:latest And then when you do podman push test.example.com/testee:latest it will push your EE to your PAH server
Hello, does it works with Ansible Automation Platform? because the ansible spoke from servicenow requires Ansible Tower which is the older version. Appreciate the answer.
Yes, I have this working with AAP 2.4. The api endpoints have not changed so the process is exactly the same for Tower and AAP 2.0-2.4
4:29 Where do you create that user?
The servicenow user is a local user I created within Automation controller: docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.4/html-single/automation_controller_user_guide/index#proc-controller-creating-a-user. I created them as a System Administrator, but you could create a normal user and assign execute permissions to the jobs or workflows you want to run from ServiceNow
nice video Thank you
Nice Video Thank you !
Thanks for the video, I just have some question :D The certificate has to be from ansible tower? how do I get it? is this step important? Also, the servicenow user on 4:29, did you create it on ansible or ServiceNow?
The Certificate needs to be from automation controller or the load balancer you are pointing ServiceNow at (depending on where you have TLS termination set). This is required because otherwise ServiceNow will reject the connection as an invalid cert (unless you are leveraging a public Certificate Authority). The Servicenow user is a local user I've created within Ansible. This is acting as a service account for all automation triggered from ServiceNow
do people really have eda out on the internet? seems like bad practice security wise
You'd only need external internet access for EDA if the application sending notifications is hosted in the cloud. Most people I've seen deploying EDA today are using internally hosted monitoring tools. But if you are using externally hosted monitoring tools (like Dynatrace or Datadog) you'd need that external access (which you've already provided outbound for those agents) or you'd need Datadog to push alerts to a messaging bus (such as Kafka) that you subscribe to from EDA. If using a webhook, you'd want to add in the API key and firewall rules to permit traffic only from the monitoring platform to EDA for security purposes
Awesome Video, I am trying to put together a presentation selling your solution. I am working on getting your environment up and running in my personal AWS account. Do you have a playbook that you use to deploy your web server? How are you sending emails? Are you using an SMTP Server or AWS SES?
The web server creation is part of the shadowman.reports roles. So as long as you are pointing to a registered RHEL8 or RHEL9 VM with the delegate_to portion of this role: github.com/shadowman-lab/shadowman.reports/tree/main/roles/build_report_linux_patch, it will ensure apache is running plus the CSS styling. For e-mail, I have a Roundcube Webmail server running locally.
Please create a video tutorial on how the Ansible extension works with WSL and how to use a YAML file in extension
Unfortunately, I don't have access to a Windows workstation with WSL. If you look at some of my other development videos, I generally use either code-server (which just runs in a web browser on a Linux VM, ua-cam.com/video/C8908KSjn78/v-deo.html, ua-cam.com/video/H8IaR8wMBlQ/v-deo.html) or the VS Code SSH extension (ua-cam.com/video/2QwkRiVHaxU/v-deo.html) to connect to a Linux VM so I never need to install Ansible or WSL on my workstation. I do this so I can not only develop my playbooks using the Ansible plugins, but then I can also test them via CLI in a sandbox environment. While I don't have a Windows workstation, you could set up WSL, install Ansible, and then use the WSL extension for VSCode code.visualstudio.com/docs/remote/wsl. That WSL extension will work similar to the Remote SSH extension in that VSCode runs locally on your operating system, but Ansible, your playbooks, and the Ansible extension would all be installed within WSL itself
is there any video on how to learn ansible from scratch
Red Hat provides a free training video: www.redhat.com/en/services/training/do007-ansible-essentials-simplicity-automation-technical-overview Learn Linux TV also has a thorough Playlist: ua-cam.com/users/playlist?app=desktop&list=PLT98CRl2KxKEUHie1m24-wkyHpEsa4Y70 And I have a playlist around the development tools and setting up a developer environment: ua-cam.com/video/C8908KSjn78/v-deo.html
@@alexdworjan thanks 🙏🏿
hello it's Batool , junior automation specialist. I am new to ansible and I don't have someone to teach me how to advance or how everything works I need a community to refer to If I need help. please could you help me ?
Red Hat provides a free video course to get you up to speed on Ansible terms: www.redhat.com/en/blog/new-free-ansible-course There is also an Ansible community website: www.ansible.com/ And newer Ansible Forums: forum.ansible.com/ Those are great places to get started but I would certainly say that hands-on experience is best. So if you can deploy Ansible and start coding, that's certainly going to be the best way to learn (for me it is at least)
@@alexdworjan thank you alex🙏
Thank you Alex!
how did you actually build the reports?
All the reports are built using jinja templates. Each report can be found here: github.com/shadowman-lab/shadowman.reports
@@alexdworjan are the reports displayed in tower or need to host on web server?
@@jg1000c They are all on a separate web server
@@alexdworjan got it. Does your web server digest ansible data? How does it work?
@@jg1000c It's just an apache web server. Ansible is used to take the data and dynamic build the web page using jinja. No actual digestion is happening on the web server. The repo that I shared has exactly how I deploy the different reports
impressive
hmmm it's not good idea to orchestrate terraform via ansible. What about plan and validations of changes ? ...
Build that into your Pull Request review process. If you need those steps reviewed by teams, don't use the Ansible survey, only use the gitops approach where teams make changes to the main.tf. Then the code review can include plan to verify any changes prior to approval. There are many different approaches, find the one that fits into your process.
@@alexdworjan ansible is a good tool for config management... But not for infrastructure. Better and safer is use ansible Provider on terraform code.
It's all about using what's best for your team and organization. Since Ansible is being used for config management of all kinds of infrastructure and networking gear plus orchestration (ServiceNow, etc) some customers prefer to use the workflow capabilities of Ansible. In this case, I'm still using Terraform to provision and maintain the state of the infrastructure.
@@alexdworjan hmm, magic tools don't exist... Ansible was written as configuration management, nothing more.. Terraform was created as an infrastructure management... Forcing Anisble to be a tool... It wasn't designed, it's not a good idea. I've been using Terraform and Ansible for many years. Develops roles and modules. Ansible is not a good idea for managing terraforms, there are much better technologies for this.
That's why most just use Ansible to call Terraform, not to manage Terraform. Similar to how you use the Ansible provider to have Terraform call Ansible, you can use the Terraform modules to have Ansible call Terraform. It's really about using the process that's best for you. In your case, it seems best to use Terraform.
It would be great is you would show the actual walk through step by step. It is hard to find documentation or videos on how to enable Constructed Inventory in the drop down in AAP.
On the Inventories page, when you click the blue Add button, Add constructed inventory will be an option. You must be on AAP 2.4 or newer for constructed inventories to exist
@@alexdworjan Thank you for the quick reply.
Hi Alex, thanks for the time used to make this clear video. Do you know is it's possible to connect to AWX ansible platform ? because AWX is free to just testing spoke ansible if we don't have ansible Tower or AAP.
Yes, it should work with AWX as well since it's essentially making an API call from ServiceNow. As long as the endpoint matches what you have in AWX, it would work
huh? I guess he assumes you're already an expert. Difficult to understand.
@pallenrupp Peter, I'm sorry this video wasn't clear. I will admit, Constructed Inventories (just like Smart Inventories) are a more advanced topic that many people, including myself, barely use. Mainly, I would only use Constructed Inventories if I need to combine multiple existing inventories or if I need to divide up an inventory based on limiting access to end-users. I like to think of Constructed Inventories in exactly the same way as Dynamic Inventories. They both leverage inventory plugins with source variables (compose, groups, keyed_groups) and they both have a source. While Dynamic Inventories pull directly from a source of truth (Azure, AWS, VMWare, ServiceNow, etc), Constructed Inventories leverage existing inventories within automation controller as that source. If you are able to, I would recommend creating your own Constructed Inventory and testing it out. I found that was the easiest way for me to see how the plugin worked and what inventory would be created. Follow the doc for some good examples which is how I got started with the concept docs.ansible.com/ansible/latest/collections/ansible/builtin/constructed_inventory.html Please let me know if there is something specific that still isn't clear and I'll do my best to help.
Superb content ! By curiosity, are you able to use Molecule with EE for testing without using a delegated/custom driver ?
I haven't used ansible molecule as part of my testing but it does look like you can use podman to run the molecule commands if it's been installed in your EE. forum.ansible.com/t/question-about-molecule-and-creator-ee-image/3053/7 For OpenShift Dev Spaces, you can absolutely use molecule since you are essentially doing your development and testing inside your EE. Again you'd need to make sure your EE or Dev EE has molecule installed. The Ansible creator-ee already has that set up.
How Slicing works for workflow templates
Individual Job Templates can still have Job Slicing within a Workflow Template. It acts similarly to a workflow being called within a workflow
i'd like to know where you store values for variables {{pah_pass}}, {{cert_key_file}}, ... and how do you inject them ?
I've created custom credentials within automation controller and assigned them to the Job Template. They are being passed as extra variables via that custom credential
@@alexdworjan Okay thank you ! but I also wanted to know if the "cert_key_file" is the private key for your Execution Environment or the execution node ( so that you can push and pull to git ) ? or what else it should be ?
@@SamuelCaroll It is the private key for my specific user in github that has been added into my account: docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account. The private key is injected into the Execution Environment at runtime to provide the authentication.
@@alexdworjan Okay perfect ! thanks for explanation
Looking at your videos for the last 2 years, always very informative. Thanks!
This is just amazing, literally " witchcraft " for me because I'm not there yet. Could you a detailed version of this video if you have time. I would actually pay for it.
The detailed version of each of the three options is included in the description. It has a video for exactly how I did it and the Dev Spaces version includes a detailed step-by-step Readme
This workflow looks great and extremely helpful. Does this require a paid subscription to any services? Is there a completely free method/version of this workflow? Sorry for the obtuse questions ...
It's a single playbook, not even a full workflow, so it could be done on the command line via ansible-navigator (or ansible-playbook), if desired. You'd only need the ee_builder role if you don't have Private Automation Hub and it does support pulling execution environments and collections from upstream
Excellent. I was under the impression these types of roles were only available to companies paying a redhat subscription of some kind. Awesome I can go find that role and try this then. Huge thanks for your great work!
Great Video Alex! Thank you so much!!
how do u use a base image present in the vm? i dont want to access the internet for it.
With Ansible Builder Version 3, you can use any base image ua-cam.com/video/YTtBW2rDNE4/v-deo.html
Be nice to see how this is setup in Windows considering WSL must be used to install Ansible.
If you look at some of my other development videos, I actually use either code-server (which just runs in a web browser, ua-cam.com/video/C8908KSjn78/v-deo.html, ua-cam.com/video/H8IaR8wMBlQ/v-deo.html) or the VS Code SSH extension (ua-cam.com/video/2QwkRiVHaxU/v-deo.html) so I never need to install Ansible or WSL on my workstation. I do this so I can not only develop my playbooks using the Ansible plugins, but then I can also test them via CLI in a sandbox environment. While I don't have a Windows workstation, you could set up WSL, install Ansible, and then use the WSL extension for VSCode code.visualstudio.com/docs/remote/wsl
@@alexdworjan Thank you Alex! I just found out that installing WSL is prohibited by my employer's security dept. However, we have Ansible installed on Linux boxes that I can SSH to. Are you saying the VS Code SSH extension will allow the VS Code Ansible extension to use a remote Ansible installation (including ansible-lint)?
@@watchman1982 That's correct. When using the SSH extension, the Ansible extension installs on the Linux box so it uses Ansible + Ansible-lint that are present there (rather than what's on your laptop) which is perfect for when you can't use WSL
@@alexdworjan This is awesome! Thank you for sharing and I will check out your other videos regarding the setup of this.
thank you sir for such information , but please where we can get those files? because i could not find that main.yml file in the repo , thank you
There are 3 different examples in the Ansible-PAH repo, build_creationee, build_shadowmandevspaces, build_shadowmanee
thank you@@alexdworjan
I'm a beginner to devops and it hard but manageable for now
One aspect I do not see is the process of installing an RPM file into the environment. Do you have any info on that?
That's what I show at 9:58 in the bindep.txt. This is where you define any system dependencies which are RPM for RHEL based systems.
Thanks, I missed it. @@alexdworjan
HI Alex,where can i find all the modules for ansible.eda? Great content.Thanks
I go into the actual python code for the event_sources themselves. github.com/ansible/event-driven-ansible/tree/main/extensions/eda/plugins/event_source At the top of each event_source, you can find the docs
wow, just looking at your video, in the company that i currently work, we use rundeck community to run ansible, i did automate our ServiceNow here, but with alot pain, since we didnt have this automation platform, so i did with javascript and rest api in the service now side, and in the rundeck side i have set webhooks for each ticket in service now, so it would trigger and have the job done. thanks for sharing buddy.
Finally, some good content on the subject matter! Thank you so much!
I will be taking a look at automating Linux patching - what patch repository management solutions are best to integrate with Ansible? Thank you for the overview (seems you might be using Satellite?).
Correct, I am using Red Hat Satellite in my environment. Most of the patching work itself is running on the individual servers, so what repository they have set is less important. As long as the OS itself is set to pull from that repository when running yum/dnf/etc, Ansible can use it. I enjoy using Satellite because I can also manage my content views with Ansible and control when I update packages (I update my content views once a month with Ansible for my monthly patching)
@@alexdworjan - thank you so much for the prompt feedback. One more follow up question, so our environment has RHEL, Fedora, Oracle Linux, and Ubuntu (mostly) and we currently use their "Internet" repositories (i.e. we go over Internet connection for each host to download patches) - if we wanted to localize (on our LAN and have a single repo host pull patches for each distro so that each host can pull patches from this single point rather than each going over the Internet) what solution might you recommend? It seems Satellite is a RHEL only solution unless I am mistaken. So instead of hundreds of these multi distro hosts getting patches downloaded directly to each individual host, is there a good solution to centralize patching on our LAN for each of these distros? I hope that question makes sense. We are gaining steam with Ansible but it seems like it would be important to be able to address patching for multiple Linux distros in our use case, not just RHEL. Thanks again - in short, looking for something heterogenous in the OS patch repository management arena and assuming Satellite is a RHEL only solution.
Hi Alex, great Video! I have the question how to develop the playbooks with Ansible Navigator if they have to run in AAP 2.4 afterwards. How can I use the credentials, inventories etc configured on the AAP. I can't find any integration anywhere. It seems to me that the Navigator "only" addresses the problem of running playbooks in defined environments that are reproducible. Is this even the right tool to solve this issue?
Ansible Navigator will only leverage the credentials that you have set on the VM (I have all of mine vaulted as well using ansible-vault). It isn't designed to fully replace all of the credentials that you use in production or automation controller. Personally, I only use Ansible Navigator in a sandbox environment with sandbox VMs/devices to test against, so I am using different credentials than I am using in my production environments anyway. The problem of consistent, defined environments was definitely a big one in the past, especially when you factor in all of the system, python, collection dependencies needed in ansible today. I will say Ansible Navigator is definitely the tool for CLI testing and it's what I use to test every single playbook in my sandbox before it ever reaches my repository (and then you can still run tests in automation controller at that point as well). But it is MUCH faster to do CLI testing than pushing to a repository, sync the project, run the job, find errors, make changes, and repeat. And since I know I'm using the exact same Execution Environment in controller, I'm confident the playbook itself will work exactly as I expect it to.
@@alexdworjan Thanks for the answer. Exactly what you describe I would like to avoid, because in the end everything must run on the AAP. I don't want to pack all the credentials, the inventory that was created from several sources back into var files. That makes everything much more complicated in our case. In our case we develop code, push it to a git repository and then run the test directly through the AAP. The biggest problem we have with this is that in case of a problem, debugging can be difficult, as I have no way to manually run a job template with the appropriate inventory and credentials, in a container. We have about 400 credentials, 220 machines, about 150 variables and at least 200-300 more credentials in hashicorp vault. That's why I thought it would be great to have access to the artifacts on the AAP and use them. Our solution must work from dev - prod and best without exporting stuff, because everything must be highly secure. And there is no way I can get something like that through an audit. That's why I thought I could solve the problem with the navigator.
@@JoeMild-s5h I would think for most playbooks that you are writing and testing, you aren't using many of those credentials, and certainly wouldn't in a sandbox environment. This is really to limit the amount of time needed to go through pushing, syncing, job running. Especially when you are first writing a playbook, you might get a lot of errors, especially as you try to register variables and figure out what the return is in order to use the information in the remainder of the playbook. Ansible Navigator isn't designed to be a replacement for controller, it's just a way to run playbooks via CLI similar to what ansible-playbook itself provides, but just runs it within the EE now. If you need to have credentials / auditibility for every job run, then controller is your best bet. This is really focused on using a sandbox environment for the initial playbook authoring. If you can't get a sandbox environment at all for testing, then you will probably be limited to the process as you have it today. You could certainly utilize webhooks to at least automatically launch the job template after your code has been merged if you can't get a separate environment for testing.
i like this 🙂 Great job
Thanks for the video!!
Thanks for the video im trying to build an execution-environment where the requirements.txt have the python3 package to install but im having this error ( could not find a version that satisfies the requirements.txt no matching distrubition found) im using ansible automation platform 2.2
Is that a custom requirements.txt that you've created or is that part of a collection you are trying to install? If it's custom, I would verify that particular python package version exists in the python version in the EE you are using
yes its a custom requirements.txt that i created i just modified the container file and it builds but now how can i know if my customised execution-environment contains the package thanks in advance
If you use ansible navigator, you can inspect the EE and find all system packages and python libraries that are installed
@@alexdworjan thank you for you help , i succeeded to modify the containerfile in a way to insall my X python package in the system packages but not in the python one my question is will the ee use it anyway when needed thanks
@@aminejawadi6293having issues with pip installing bindep. Any ideas
Hi Alex, I enjoyed your video. My aim is to use Ansible to leverage doing system administration for Windows systems. Where I am from, IT budgets are not large and we leverage older machines (12 to 15 years old even) with a supported Windows 10 OS. My question to you is that do you foresee issues where ansible may not be able to manage these type of machines properly? I've been having a challenge in my production environment (with new windows machines to older machines) where I use ansible- where if I use simple playbooks to do a ping for example, I get successful responses. However, if I rerun that ping playbook (with win_ping module) soon after, I get different results (non ok) even those machines are still online! When I run more complex playbooks( For example, using Powershell (win_shell)to gather hardware information for the hosts: CPU info, RAM, HDD info etc), I get a lot of unreachable = 1 errors (ok=1 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0). Success looks like this (ok=9 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 )This is confusing to me, that sometimes connection is good, but then it's unreachable. Our backend network is Gigabit Ethernet and certified as well! Looking for ideas. I'm using certificate based auth with winrm. I do have the issue documented in a forum but I don't think comments allows me to post links. Thanks for any advice!
docs.ansible.com/ansible/latest/os_guide/windows_setup.html#host-requirements I am assuming you are talking about Windows Servers not Windows Desktops (desktops tend to have more connection issues, especially laptops since the network connectivity isn't permanent). If you are talking about Windows Servers, I would verify your connection settings (ensuring WinRM and all of your settings are set properly, and that you aren't receiving any certificate errors). I would also look at the specific error the playbook is giving you. The exact module you are trying to run will give you more details about what's going on (you can also increase the verbosity of your playbook to get better connection debugging information). I would start there to get a better idea of what issues you might be facing.
@@alexdworjan Thank you for your reply. They are all Windows 10 and 11 Professional Desktops. I understand where you are coming from. My hope is that Ansible can still be a great tool for managing Desktop devices -and that once there are ways to ensure desktops are on and connected (via Wake-on-LAN etc), ansible can service them properly! I will explore the resources you have provided and dig deeper!
This channel is just pure gold
Very informative. Thanks!
HI Alex currently we have a work flow that deploys Vm's adds the Vm to the domain install software etc.. but is it poosible to trigger a work flow from a SNOW catalgo request ? thanks Shane
That's actually what most of my catalog items are triggering. I had to modify the spoke plugin to make it work github.com/shadowman-lab/Ansible-SNOW/tree/main/SNOWSetup#update-spoke-actions-for-workflow-job-templates
Thanks a lot Alex for this tutorial. It's very helpful. If time permits, can you please do a demo how to setup code-server to be used by multiple users? Thanks in advance.
I would check out my other code-server video: ua-cam.com/video/H8IaR8wMBlQ/v-deo.html This uses an Ansible playbook to set everything up (essentially I assign a different port and start the service as a different user)
Thanks Alex for the video! can you explain what you had to do for the certificate - this is at about 2:43 into the video is what I am referring to thank you!
So that's just using the SSL certificate that I had already attached to my controller instances (/etc/tower/tower.cert). So this should come from your certificate authority (I see LetsEncrypt used often, but your business should already have something established). For it to properly work in ServiceNow, you'll need the full SSL certificate chain in controller and then uploaded to ServiceNow as I show at that portion of the video
@@alexdworjan we use the containerized solution I think that would change how we use the certificate correct?
@@kerrymason6371 The certificate itself would still be generated in the same way, but it wouldn't be in the same location since you'd create a TLS secret and then update your automation controller CR with route_tls_secret under spec pointing to the TLS secret you just created: access.redhat.com/solutions/3109871
Hi Alex, could you please tell where can I find alertmanager.yml example to round alerts to eda controller?
github.com/shadowman-lab/Ansible-Labextra/blob/main/roles/prometheus/templates/alertmanager.yml.j2