[ADD] плейбуки bootstrap, wifi-on, wifi-off, deploy, poweroff

This commit is contained in:
Arseny
2026-09-24 23:36:10 +03:00
parent ee291f7a26
commit c72bea1a5e
7 changed files with 175 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
# Узлы подключаются к домашней сети (vars/wifi.yml) ради интернета для apt.
# Проводная сеть 11.0.0.0/24 без шлюза, поэтому маршрут по умолчанию
# и DNS приходят от Wi-Fi. В конце каждый узел обязан достучаться до интернета.
- name: Wi-Fi включить и подключить к домашней сети
hosts: all
gather_facts: false
vars_files:
- vars/wifi.yml
vars:
wifi_con: fleet-wifi
tasks:
- name: Радио Wi-Fi включено
become: true
ansible.builtin.shell: |
if [ "$(nmcli radio wifi)" = enabled ]; then echo OK; else nmcli radio wifi on && echo CHANGED; fi
register: radio
changed_when: "'CHANGED' in radio.stdout"
- name: Профиль {{ wifi_con }} с актуальными SSID и паролем
become: true
community.general.nmcli:
conn_name: "{{ wifi_con }}"
ifname: wlan0
type: wifi
ssid: "{{ wifi_ssid }}"
wifi_sec:
key-mgmt: wpa-psk
psk: "{{ wifi_psk }}"
autoconnect: true
state: present
register: profile
- name: Переподключение после смены SSID или пароля
become: true
ansible.builtin.command: nmcli con down {{ wifi_con }}
when: profile.changed
failed_when: false
- name: Подключение активно
become: true
ansible.builtin.shell: |
state=$(nmcli -t -f GENERAL.STATE con show {{ wifi_con }} | cut -d: -f2)
if [ "$state" = activated ]; then echo OK; else nmcli con up {{ wifi_con }} >/dev/null && echo CHANGED; fi
register: up
changed_when: "'CHANGED' in up.stdout"
- name: Интернет доступен (DNS и HTTPS)
ansible.builtin.uri:
url: https://deb.debian.org/
register: inet
retries: 6
delay: 5
until: inet.status == 200
- name: Адрес в домашней сети
ansible.builtin.command: nmcli -t -f IP4.ADDRESS con show {{ wifi_con }}
register: addr
changed_when: false
- name: Итог по узлу
ansible.builtin.debug:
msg: "[+] {{ inventory_hostname }}: {{ addr.stdout | regex_replace('^IP4.ADDRESS\\[1\\]:', '') }}, интернет есть"