Notes
| 2024-02-20
(updated 2025-10-25)
| 1 min read
#ansible
Sometimes it is useful to wait for a port to be closed, for example when updating an app that can’t always properly be shut down using other Ansible modules.
This can easily be achieved using the ansible.builtin.wait_for or ansible.builtin.win_wait_for module.
Read more…
Notes
| 2023-09-20
(updated 2025-10-25)
| 1 min read
#ansible
Cowsay is one of those packages you just end up installing randomly on just about any client over time.
And if your using ansible you may be in for a little surprise:
Read more…
Notes
| 2021-08-08
(updated 2025-10-25)
| 1 min read
#ansible
#yaml
In theory Ansible should be declarative and have full control over the systems we touch with it.
In practice, this is unfortunately not always the case.
This combination of tasks loads a given yaml file from the remote host, combines a “overwrite dict” onto it, and writes the file back to disk.
- name: Load yaml file contents as fact
ansible.builtin.slurp:
src: /etc/some-file.yaml
register: yaml_file
- name: Parse yaml file contents
ansible.builtin.set_fact:
yaml_file_content: "{{ yaml_file.content | b64decode | from_yaml }}"
- name: Create the keys/values that should be overwritten
ansible.builtin.set_fact:
yaml_file_content_overwrite:
some:
key: "Overwrite value"
another: "Also overwritten"
- name: Write yaml file with changed values
ansible.builtin.copy:
content: "{{ yaml_file_content | combine(yaml_file_content_overwrite, recursive=true) | to_yaml }}"
dest: /etc/some-file.yaml
I like keeping my learning public. The below is my very old and naive solution I did based on regex.
With this nifty task we can replace the value of a key (given as yaml_key) to a new value (given as new_value) while preserving it’s indentation.
Read more…
Notes
| 2020-07-02
(updated 2025-10-25)
| 1 min read
#ansible
#vmware
When using VMware as the connection plugin to connect to remote hosts you commonly set two facts for username and password:
ansible_vmware_tools_user: "mkamner"
ansible_vmare_tools_password: "Super Secret PW"
This will work just fine for windows and with many tasks on linux.
However, if you want to use become: true on linux it will fail with the strangest error messages.
For example: apt will fail, because it can’t acquire the lock file
The solution is rather simple, become does not honor the VMware facts set, instead it wants two different facts set:
Read more…