поэтому у меня есть пара Raspberry Pi, которые я пытаюсь использовать в качестве кластера, и я изучаю возможности, чтобы попытаться упростить их управление. Однако я столкнулся с проблемой. Я могу вручную установить статический IP-адрес с помощью netctl, но когда я пытаюсь сделать это с помощью ansible, используя те же самые команды, у меня возникают проблемы. Также странное замечание: версия, которая не работает, не работает на raspberry pi 4, но будет работать на raspberry pi b.
Например, если я использую следующее (введите его вручную), у меня не возникает никаких проблем:
/etc/netctl/eth0
Description='Статический IP для кластера'
Интерфейс=eth0
Соединение = Ethernet
IP=статический
Адрес=('192.168.1.173/24')
#Routes=('192.168.0.0/24 через 192.168.1.2')
Шлюз='192.168.1.1'
DNS=('192.168.1.1')
netctl включить eth0
systemctl остановить dhcpcd
systemctl остановить dhcpcd
и после перезагрузки работает нормально.
Я также могу заставить его работать, если я использую следующее:
- имя: копировать статический IP-файл
блокировать:
- имя: создать файл netctl
raw: echo $'Description=\'Основное статическое соединение Ethernet\'\nInterface=eth0\nConnection=ethernet\nIP=static\nAddress=(\'{{ host_ip_addr }}/24\')\n#Routes=( \'192.168.0.0/24 через 192.168.1.2\')\nGateway=\'192.168.1.1\'\nDNS=(\'192.168.1.1\')' > /etc/netctl/eth0
аргументы:
исполняемый файл: /bin/bash
- имя: файл chmod netctl
сырье: chmod 644 /etc/netctl/eth0
аргументы:
исполняемый файл: /bin/bash
- имя: запустить и включить netctl
блокировать:
- имя: включить eth0 в netctl
сырье: netctl включить eth0
аргументы:
исполняемый файл: /bin/bash
регистрация: нетто
- имя: остановить dhcpcd
сырье: systemctl остановить dhcpcd;
аргументы:
исполняемый файл: /bin/bash
регистрация: net2
- имя: отключить dhcpcd
raw: systemctl отключить dhcpcd;
аргументы:
исполняемый файл: /bin/bash
регистрация: net3
Но это не сработает, если я использую:
- имя: настроить статический IP
шаблон:
источник: staticIP-netctl.j2
место назначения: /etc/netctl/eth0
владелец: корень
группа: корень
режим: 0644
- имя: запустить и включить netctl
блокировать:
- имя: включить eth0 в netctl
оказание услуг:
имя: нетктл
состояние: запущено
включено: да
- имя: остановить и отключить dhcpcd (динамические IP-адреса)
оказание услуг:
имя: dhcpcd
состояние: остановлено
включено: нет
или это тоже не работает
- имя: настроить статический IP
шаблон:
источник: staticIP-netctl.j2
место назначения: /etc/netctl/eth0
владелец: корень
группа: корень
режим: 0644
- имя: запустить и включить netctl
блокировать:
- имя: включить eth0 в netctl
сырье: netctl включить eth0
аргументы:
исполняемый файл: /bin/bash
- имя: остановить и отключить dhcpcd (динамические IP-адреса)
сырье: systemctl остановить dhcpcd
аргументы:
исполняемый файл: /bin/bash
- имя: остановить и отключить dhcpcd 2 (динамические IP-адреса)
сырье: systemctl отключить dhcpcd
аргументы:
исполняемый файл: /bin/bash
мой статический IP-netctl.j2
файл:
Description='Основное статическое соединение Ethernet'
Интерфейс=eth0
Соединение = Ethernet
IP=статический
Адрес=('{{ host_ip_addr }}/24')
#Routes=('192.168.0.0/24 через 192.168.1.2')
Шлюз='192.168.1.1'
DNS=('192.168.1.1')
и он находится в папке roles/role/templates, он также копируется правильно, так как я проверял вручную на каждом пи.
Любые идеи, почему это может происходить?
РЕДАКТИРОВАТЬ-РЕШЕНИЕ:
Оказывается, это была проблема с ядром (linux-aarch64), после обновления всех пакетов при новой установке ядро больше не распознавало ни один из моих сетевых интерфейсов. Вы можете переключиться на linux-raspberrypi4 или перейти на linux-aarch64 5.11.x до середины сентября (http://tardis.tiny-vps.com/aarm/repos/2021/06/13/aarch64/core/).