[ADD] плейбуки bootstrap, wifi-on, wifi-off, deploy, poweroff
This commit is contained in:
+62
@@ -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\\]:', '') }}, интернет есть"
|
||||
Reference in New Issue
Block a user