Add plays end_metrics.yml and reboot_test3.yml; Add script write_file_msg.py; Update hosts

This commit is contained in:
2025-07-25 15:54:25 -04:00
parent 49b98451a3
commit 2530c8c196
4 changed files with 151 additions and 2 deletions

40
end_metrics.yml Normal file
View File

@ -0,0 +1,40 @@
---
- name: End Metrics
hosts: temp
become: false
gather_facts: true
tasks:
- name: Execute tasks
when:
- ansible_distribution_major_version == '9'
block:
- name: Loop items
ansible.builtin.debug:
msg: "{{ debug_role }}"
loop:
- 'one'
- 'two'
- 'three'
loop_control:
loop_var: debug_role
# - name: Flush preupgrade facts
# ansible.builtin.meta: clear_facts
rescue:
- name: Fail playbook for debug failure
ansible.builtin.debug:
msg: "Debug stage failed, stopping the playbook"
always:
- name: End metrics for tasks stage
ansible.builtin.set_fact:
debug_metrics: >-
{{ debug_metrics | default({}) | combine({'stages': {'tasks': {'end_time':
now(fmt='%Y%m%d %H:%M:%S')}}}, recursive=True) }}
- name: Debug debug_metrics
ansible.builtin.debug:
var: debug_metrics

6
hosts
View File

@ -36,8 +36,10 @@ rear-client ansible_host=10.10.42.192
ansible_user=root
[temp]
ipu-test-1 ansible_host=10.10.42.186
# versionlock-test ansible_host=10.10.42.187
; debug-stage ansible_host=10.10.42.183
rear-client ansible_host=10.10.42.192
; ipu-test-1 ansible_host=10.10.42.186
; versionlock-test ansible_host=10.10.42.187
[temp:vars]
ansible_user=root

41
reboot_test3.yml Normal file
View File

@ -0,0 +1,41 @@
---
# -l, --lazy
# Lazy unmount. Detach the filesystem from the file hierarchy now,
# and clean up all references to this filesystem as soon as it
# is not busy anymore.
# A system reboot would be expected in near future if youre going to use
# this option for network filesystem or local filesystem with submounts.
#
# The recommended use-case for umount -l is to prevent hangs on shutdown
# due to an unreachable network share where a normal umount will hang
# due to a downed server or a network partition. Remounts of the share
# will not be possible.
- name: Something
hosts: temp
become: true
gather_facts: false
vars:
__nfs_share: /nfs/backups
tasks:
- name: Lazily unmount the NFS share
ansible.builtin.command: "umount -f -l {{ __nfs_share }}"
- name: Reboot host if file changes # noqa: no-handler
ansible.builtin.import_role:
name: verified_reboot
- name: Unlazily re-mount the file system
ansible.posix.mount:
state: mounted
src: 10.10.42.180:/backups
path: /nfs/backups
opts: rw,noatime
boot: false
fstype: nfs
# write script to write files until reboot happens
# script should write number, sleep 1 second, write number, etc

66
scripts/write_file_msg.py Executable file
View File

@ -0,0 +1,66 @@
#!/usr/bin/python3
import time
import os
import readline
from datetime import datetime
# Changable optonis:
message = "Testing testing testing..."
max_iterations = 5
# Autocomplete path stuffs:
def complete_path(text, state):
expanded = os.path.expanduser(os.path.expandvars(text))
if os.path.isdir(expanded):
try:
entries = os.listdir(expanded)
completion_list = [
os.path.abspath(os.path.join(expanded, entry)) + '/'
if os.path.isdir(os.path.join(expanded, entry))
else os.path.abspath(os.path.join(expanded, entry))
for entry in entries
]
except FileNotFoundError:
completion_list = []
else:
dirname = os.path.dirname(expanded)
basename = os.path.basename(expanded)
if not dirname:
dirname = '.'
try:
entries = [entry for entry in os.listdir(dirname) if entry.startswith(basename)]
completion_list = [
os.path.abspath(os.path.join(dirname, entry))
for entry in entries
]
except FileNotFoundError:
completion_list = []
completion_list.sort()
try:
return completion_list[state]
except IndexError:
return None
readline.set_completer_delims(' \t\n;')
readline.set_completer(complete_path)
readline.parse_and_bind("tab: complete")
file_path = input("File to write to: ")
try:
for i in range(max_iterations):
ts = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
tm = "{} -- {}: itr=>{}".format(ts, message, i)
print(f"{file_path} -> {tm}")
with open(file_path, "a") as file:
file.write(tm + '\n')
time.sleep(.2)
except KeyboardInterrupt:
print("Ctrl-C hit; exiting...")