Рейтинг:0

Установка статического IP вручную работает - использование ansible вызывает у меня проблемы

флаг my

поэтому у меня есть пара 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/).

John Mahowald avatar
флаг cn
Что ты имеешь в виду под неудачей? Отредактируйте свой вопрос, чтобы добавить любые ошибки из Ansible, результирующий файл конфигурации на хосте и состояние сети из команд ip.
флаг my
Извините, вы правы, я не очень ясно выразился, но я не был уверен, что происходит. Я разбил плейбук на отдельные команды и оказалось, что после полного обновления системы у меня больше не было подключения к интернету, но я разобрался.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.