тест шифрования при пуше
This commit is contained in:
84
Makefile
84
Makefile
@@ -321,19 +321,8 @@ vault:
|
||||
read -p "Введите имя роли: " ROLE; \
|
||||
$(MAKE) decrypt-role ROLE="$$ROLE";; \
|
||||
rekey) \
|
||||
echo "🔑 Смена пароля для vars/main.yml..."; \
|
||||
echo "Выберите действие:"; \
|
||||
echo " 1) Сменить пароль для всех ролей"; \
|
||||
echo " 2) Сменить пароль для одной роли"; \
|
||||
read -p "Введите номер (1-2): " CHOICE; \
|
||||
case "$$CHOICE" in \
|
||||
1) $(MAKE) rekey-all;; \
|
||||
2) echo "📋 Доступные роли:"; \
|
||||
ls -1 roles | grep -v "\\.yml$$" | sed 's/^/ - /'; \
|
||||
read -p "Введите имя роли: " ROLE; \
|
||||
$(MAKE) rekey-role ROLE="$$ROLE";; \
|
||||
*) echo "❌ Неверный выбор"; exit 1;; \
|
||||
esac;; \
|
||||
echo "🔑 Смена пароля для всех vars/main.yml..."; \
|
||||
$(MAKE) rekey-all;; \
|
||||
check) \
|
||||
echo "🔍 Проверка vault файлов..."; \
|
||||
if [ ! -d "vault" ]; then \
|
||||
@@ -390,7 +379,7 @@ vault:
|
||||
echo " 💡 Создает незашифрованную копию"; \
|
||||
echo ""; \
|
||||
echo " 🔑 make vault rekey - сменить пароль шифрования"; \
|
||||
echo " 💡 Изменяет пароль для всех или одной роли"; \
|
||||
echo " 💡 Изменяет пароль для всех ролей"; \
|
||||
echo ""; \
|
||||
echo " ✅ make vault check - проверить vault файлы"; \
|
||||
echo " 💡 Проверяет структуру и статус файлов"; \
|
||||
@@ -419,9 +408,10 @@ git:
|
||||
done; \
|
||||
fi; \
|
||||
fi; \
|
||||
$(MAKE) decrypt-all; \
|
||||
$(MAKE) encrypt-all; \
|
||||
git add .; \
|
||||
git commit -m "Обновление проекта"; \
|
||||
read -p "Введите сообщение коммита: " COMMIT_MSG; \
|
||||
git commit -m "$$COMMIT_MSG"; \
|
||||
git push origin main;; \
|
||||
pull) \
|
||||
echo "📥 Получение изменений из репозитория..."; \
|
||||
@@ -1592,7 +1582,7 @@ help:
|
||||
@echo " make vault show - показать содержимое секретов"
|
||||
@echo " make vault encrypt - зашифровать файл"
|
||||
@echo " make vault decrypt - расшифровать файл"
|
||||
@echo " make vault rekey - сменить пароль шифрования (все/одна роль)"
|
||||
@echo " make vault rekey - сменить пароль шифрования для всех ролей"
|
||||
@echo " make vault check - проверить vault файлы"
|
||||
@echo " make vault scan - поиск потенциальных секретов"
|
||||
@echo ""
|
||||
@@ -1687,40 +1677,56 @@ decrypt-all:
|
||||
done'
|
||||
|
||||
rekey-all:
|
||||
@echo "🔑 Смена пароля для всех roles/*/vars/main.yml (только зашифрованных) ..."
|
||||
@docker run --rm -it -v "$(PWD):/workspace" -w /workspace $(DOCKER_IMAGE) bash -c '\
|
||||
VAULT=vault/.vault; \
|
||||
@echo "🔑 Смена пароля для всех roles/*/vars/main.yml ..."
|
||||
@echo "🔍 Проверка статуса шифрования файлов..."
|
||||
@UNENCRYPTED_FILES=$$(docker run --rm -v "$(PWD):/workspace" -w /workspace $(DOCKER_IMAGE) bash -c '\
|
||||
for f in roles/*/vars/main.yml; do [ -f "$$f" ] || continue; \
|
||||
if grep -q "ANSIBLE_VAULT" "$$f" 2>/dev/null; then \
|
||||
printf "🔑 Смена пароля для: %s\n" "$$f"; \
|
||||
ansible-vault rekey --vault-password-file "$$VAULT" "$$f" || true; \
|
||||
printf "✅ Пароль изменен: %s\n" "$$f"; \
|
||||
else \
|
||||
printf "ℹ️ Пропущено (не зашифровано): %s\n" "$$f"; \
|
||||
if ! grep -q "ANSIBLE_VAULT" "$$f" 2>/dev/null; then \
|
||||
echo "$$f"; \
|
||||
fi; \
|
||||
done'
|
||||
done'); \
|
||||
if [ -n "$$UNENCRYPTED_FILES" ]; then \
|
||||
echo "❌ Ошибка: Для смены пароля все файлы должны быть зашифрованы!"; \
|
||||
echo "📋 Незашифрованные файлы:"; \
|
||||
echo "$$UNENCRYPTED_FILES" | sed 's/^/ - /'; \
|
||||
echo ""; \
|
||||
echo "💡 Сначала зашифруйте все файлы командой: make encrypt-all"; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
echo "✅ Все файлы зашифрованы, можно менять пароль"; \
|
||||
echo "📝 Введите новый пароль для vault:"; \
|
||||
read -sp "Новый пароль: " NEW_PASSWORD; \
|
||||
echo ""; \
|
||||
echo "$$NEW_PASSWORD" > vault/.vault.new; \
|
||||
chmod 600 vault/.vault.new; \
|
||||
docker run --rm -it -v "$(PWD):/workspace" -w /workspace $(DOCKER_IMAGE) bash -c '\
|
||||
VAULT=vault/.vault; \
|
||||
NEW_VAULT=vault/.vault.new; \
|
||||
for f in roles/*/vars/main.yml; do [ -f "$$f" ] || continue; \
|
||||
printf "🔑 Смена пароля для: %s\n" "$$f"; \
|
||||
ansible-vault rekey --vault-password-file "$$VAULT" --new-vault-password-file "$$NEW_VAULT" "$$f" || true; \
|
||||
printf "✅ Пароль изменен: %s\n" "$$f"; \
|
||||
done'; \
|
||||
mv vault/.vault.new vault/.vault; \
|
||||
echo "✅ Пароль vault обновлен для всех ролей"
|
||||
|
||||
# Вспомогательные функции: шифрование/расшифровка ТОЛЬКО одной роли
|
||||
.PHONY: encrypt-role decrypt-role rekey-role
|
||||
encrypt-role:
|
||||
@ROLE_NAME="$(ROLE)"; \
|
||||
echo "📋 Доступные роли:"; \
|
||||
ls -1 roles | grep -v "\.yml$$" | sed 's/^/ - /'; \
|
||||
if [ -z "$$ROLE_NAME" ]; then \
|
||||
echo "📋 Доступные роли:"; \
|
||||
ls -1 roles | grep -v "\.yml$$" | sed 's/^/ - /'; \
|
||||
read -p "Введите имя роли: " ROLE_NAME; \
|
||||
fi; \
|
||||
if [ ! -d "roles/$$ROLE_NAME" ]; then \
|
||||
echo "❌ Роль '$$ROLE_NAME' не найдена"; \
|
||||
echo "📋 Доступные роли:"; \
|
||||
ls -1 roles | grep -v "\\.yml$$" | sed 's/^/ - /'; \
|
||||
echo "↩️ Возврат в интерактивный выбор роли для шифрования..."; \
|
||||
$(MAKE) vault encrypt; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
FILE="roles/$$ROLE_NAME/vars/main.yml"; \
|
||||
if [ ! -f "$$FILE" ]; then \
|
||||
echo "❌ Файл $$FILE не найден"; \
|
||||
exit 1; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
if grep -q "ANSIBLE_VAULT" "$$FILE" 2>/dev/null; then \
|
||||
echo "ℹ️ Уже зашифровано: $$FILE"; \
|
||||
@@ -1733,23 +1739,19 @@ encrypt-role:
|
||||
|
||||
decrypt-role:
|
||||
@ROLE_NAME="$(ROLE)"; \
|
||||
echo "📋 Доступные роли:"; \
|
||||
ls -1 roles | grep -v "\.yml$$" | sed 's/^/ - /'; \
|
||||
if [ -z "$$ROLE_NAME" ]; then \
|
||||
echo "📋 Доступные роли:"; \
|
||||
ls -1 roles | grep -v "\.yml$$" | sed 's/^/ - /'; \
|
||||
read -p "Введите имя роли: " ROLE_NAME; \
|
||||
fi; \
|
||||
if [ ! -d "roles/$$ROLE_NAME" ]; then \
|
||||
echo "❌ Роль '$$ROLE_NAME' не найдена"; \
|
||||
echo "📋 Доступные роли:"; \
|
||||
ls -1 roles | grep -v "\\.yml$$" | sed 's/^/ - /'; \
|
||||
echo "↩️ Возврат в интерактивный выбор роли для расшифровки..."; \
|
||||
$(MAKE) vault decrypt; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
FILE="roles/$$ROLE_NAME/vars/main.yml"; \
|
||||
if [ ! -f "$$FILE" ]; then \
|
||||
echo "❌ Файл $$FILE не найден"; \
|
||||
exit 1; \
|
||||
exit 0; \
|
||||
fi; \
|
||||
if ! grep -q "ANSIBLE_VAULT" "$$FILE" 2>/dev/null; then \
|
||||
echo "ℹ️ Уже расшифровано: $$FILE"; \
|
||||
|
||||
Reference in New Issue
Block a user