Спасибо за статью.
Было очень интересно познакомиться с примером решения уже после того, как сделал то же самое сам.
Правда, автор путает термин индепотентности и иммутабельности.
В вашем примере использовался SVN. Я делал с GIT.
Не всё делал с ансабль, поэтому присутствует костыль в виде скрипта. Скрипт будет ниже.
По хорошему, вместо скрипта также нужно использовать ansible
#!/bin/bash
name_branch=$(date "+%d.%m.%Y_%H%M")
echo "Имя новой ветки $name_branch"
path_files="/home/user/mikrotik"
backupConfig(){
ansible-playbook $path_files/playbooks/export_config.yaml -i $path_files/hosts/$1 | sed -e '1,10d' | head -n -7 > $path_files/mikrotik/$1
echo "Файл $1 записан"
}
list_ip=$(ls -l $path_files/hosts/ | awk '{print $9}')
for var in $list_ip
do
backupConfig $var
done
git -C $path_files/mikrotik/ branch $name_branch
echo 'Ветка создана'
git -C $path_files/mikrotik/ checkout
git -C $path_files/mikrotik/ add .
echo 'Добавлены файлы в индекс'
git -C $path_files/mikrotik/ commit -m "$name_branch"
echo 'Зафиксированы изменения'
git -C $path_files/mikrotik push --set-upstream origin "$name_branch"
echo 'Изменения отправлены в репозиторий'