Как создать мост openvswitch, используя основной сетевой интерфейс с Ansible?

В основном я пытаюсь создать независимую роль/игровую книгу, которая бы настраивала мост openvswitch, использующий основной/основной сетевой интерфейс машины, и избегала большинства распространенная проблема с мостами openvswitch — блокировка при добавлении порта.

$ ip addr flush dev eth0
$ ip addr add 192.168.128.5/24 dev br0
$ ip link set br0 up

Как вы сами понимаете, при настройке с помощью ansible (ssh) очень легко потерять доступ к целевой машине.

Для упрощения задачи предположим, что мы уже знаем имя основного сетевого интерфейса (eth0) и что он настроен с использованием DHCP.


person sorin    schedule 28.03.2018    source источник


Ответы (1)


Одним из решений является загрузка скрипта на подчиненную машину через ansible. Создайте скрипт:

script.sh

#!/bin/bash
sudo ip addr flush dev eth0
sudo ip addr add 192.168.128.5/24 dev br0
sudo ip link set br0 up

Затем один плейбук, который отправит скрипт и выполнит его. Что-то вроде этого :

- hosts: slave
  tasks:
  - name: copy script
    copy: src=./script.sh dest=/root/script.sh mode=a+x
  - name: execute script
    shell: ./root/script.sh >> somelog.txt

ИЗМЕНИТЬ:

>     - hosts: slave
>       tasks:
>       - name: copy/execute script
>         copy: src=./script.sh dest=/root/script.sh mode=a+x
>         shell: ./root/script.sh >> somelog.txt
>         async: 10
person GoA Oz    schedule 30.03.2018
comment
Используйте одну задачу script вместо пары copy/shell и добавьте async, чтобы сделать ее более устойчивой к возможному разрыву соединения. - person Konstantin Suvorov; 30.03.2018