Ansible. Периодическая смена паролей на серверах

Thank you for reading this post, don't forget to subscribe!

Зада­ча - пери­о­ди­че­ская сме­на про­лей. Паро­ли хра­нят­ся в keepass.

Сме­на паро­лей осу­ществ­ля­ет­ся при помо­щи сер­ве­ра Ansible
Bash-скрипт для сме­ны паролей

/home/ansible/pwgen.sh

[codesyntax lang="php"]

[/codesyntax]

 

На вход скип­та пере­да­ет­ся тек­сто­вый файл /home/ansible/s_list.txt, либо /home/ansible/s_list_test.txt, содер­жа­щий ip-адрес, имя сер­ве­ра, зону (DMZ,LAN и т.д.), виру­аль­ный ip(если име­ет­ся) в формате:
10.230.230.230:TC-VSRV-GIT1:BILLING(test):10.230.230.231
10.242.242.242:TC-VSRV-GIT2:LAN(test)

Внут­ри bash-скрип­та вызы­ва­ет­ся ansible-плей­бук /etc/ansible/playbooks/pass_set.yml, в кото­рый пере­да­ют­ся необ­хо­ди­мые рек­ве­зи­ты для сме­ны паро­лей: ip-сер­ве­ра, пароль, имя поль­зо­ва­те­ля для кото­ро­го мы меня­ем пароль.

cat /etc/ansible/playbooks/pass_set.yml

[codesyntax lang="php"]

[/codesyntax]

 

По ито­гу выпол­не­ния дан­но­го скрип­та на выхо­де мы име­ем файлы:
pwgen.csv - файл, тек­сто­во­го фор­ма­та, пред­на­зна­чен­ный для пред­став­ле­ния таб­лич­ных дан­ных. Каж­дая стро­ка фай­ла — это одна стро­ка таб­ли­цы. Содер­жит имя сер­ве­ра, ip, изме­нен­ный пароль. При­го­ден для импор­ти­ро­ва­ния дан­ных в БД KeePass.
pwgen.log - лог-файл успеш­но­го выпол­не­ния скрип­та по смене паролей.
pwgen_err.log - лог-файл оши­бок выпол­не­ния скрип­та по смене паролей.
При­ме­ча­ние: Перед выпол­не­ни­ем сме­ны паро­лей необ­хо­ди­мо убе­дить­ся, что хосты пере­чис­лен­ные в /home/ansible/s_list.txt, либо /home/ansible/s_list_test.txt име­ют­ся в спис­ке /etc/ansible/hosts.
Если хост будет отсут­ство­вать в спис­ке /etc/ansible/hosts, сме­на паро­ля на ука­зан­ном хосте не про­изой­дет, но в pwgen.csv и pwgen.log будет зна­чит­ся успеш­ная сме­на паролей.

======================================================================================================

Если лень пра­вить рука­ми основ­ной файл, то мож­но исполь­зо­вать ниже при­ве­дён­ный скрипт.
В keepass дела­ем экс­порт груп­пы в фор­ма­те csv. Для экс­пор­та выбираем:
Group
User Name
URL
Notes

Резуль­тат добав­ля­ем в файл Linux.csv и запус­ка­ем скрипт. На выхо­де получаем:
billing
dmz
lan
test_billing
test_lan

это мои груп­пы раз­де­ле­ния сети

[codesyntax lang="php"]

[/codesyntax]

полу­чен­ные фай­лы про­смат­ри­ва­ем и если всё ок и ниче­го не прое­ба­ли то пиха­ем всё в файл
/home/ansible/s_list.txt
и запус­ка­ем скрипт на сме­ну паролей.