Отправьте созданный etckeeper репозиторий на удаленный сервер Gitlab, советы приветствуются

Я бы, наверное, использовал sedдля этого:

sed -n '/^branch/{ s/[^.]*\.//; s/\.[^=]*=/ /p; }'

Это ловит любую строку, начинающуюся со строки branch, и для каждой из этих строк

  1. удаляет все до первой точки включительно, затем
  2. заменяет все от первой оставшейся точки до первого символа =включительно пробелом.

Затем печатается измененная строка. Любая другая строка отбрасывается.


Сawk:

awk -F '=' '/^branch/ { split($1, a, "."); print a[2], $2 }'

Это обрабатывает ввод как ограниченный =, а затем разбивает первую часть на точки. Затем он печатает вторую строку, разделенную точкой -, и бит после =.

Это приведет к ошибке, если строка содержит более одного=(бита после второго =, который будет потерян ).

0
24.03.2021, 17:05
1 ответ

Кажется, я нашел решение. Как я упоминал ветки ранее, я обнаружил, что это самый простой способ добиться того, чего я хочу.

Итак, что я сделал за несколько простых шагов:

  1. Я создал пары ключей SSH RSA, чтобы иметь возможность взаимодействовать с экземпляром Gitlab.
  2. Я установил в систему пакеты etckeeper и git. (Для систем Ubuntu/Debian локальный репозиторий создается автоматически. )Для систем RedHat мне нужно использовать etckeeper init в каталоге /etc для создания репозитория.
  3. В /etc/etckeeper/etckeeper.conf я добавил «origin» как переменную PUSH _REMOTE="origin".
  4. Когда репозиторий готов (это можно проверить с помощью git status )Я создал локальную ветку с полным доменным именем машины и переключился на нее с помощью git checkout -b test.home.lan
  5. Затем я добавил удаленный репозиторий в локальный клиент git с помощью git remote add
  6. Наконец, я использовал git push --set -upstream origin test.home.lan, чтобы установить синхронизирующее соединение между моим локальным филиалом и удаленным.

При таком подходе у каждого узла есть своя ветвь.

Надеюсь, это кому-нибудь поможет.

0
28.04.2021, 22:56

Теги

Похожие вопросы