fix: Исправлена команда создания роли
- Создан исправленный скрипт create_role_fixed.sh
- Исправлены проблемы с переменными в шаблонах ролей
- Убраны пустые переменные типа {{ }}
- Исправлены имена переменных с правильным экранированием
- Создана тестовая роль test-role для проверки
Проблемы в старой команде:
- Неправильное экранирование переменных ROLE_NAME
- Пустые переменные в шаблонах
- Неправильные имена переменных в defaults
- Проблемы с заменой плейсхолдеров
Исправления:
- Правильное экранирование переменных
- Корректные переменные в шаблонах
- Правильные имена переменных
- Рабочая замена плейсхолдеров
Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
32
Makefile
32
Makefile
@@ -1482,12 +1482,12 @@ role-create-interactive: check-whiptail ## Интерактивное созда
|
||||
ROLE_TAGS=$$(whiptail --inputbox "Теги через запятую (по умолчанию: $$ROLE_NAME):" 8 50 "$$ROLE_NAME,web,server" 3>&1 1>&2 2>&3); \
|
||||
if [ $$? -ne 0 ]; then echo "$(RED)❌ Отменено$(RESET)"; exit 1; fi; \
|
||||
echo "$(BLUE)📝 Создание роли: $$ROLE_NAME$(RESET)"; \
|
||||
mkdir -p $(ROLES_DIR)/$$ROLE_NAME/{tasks,handlers,templates,files,vars,defaults,meta,tests,playbooks}; \
|
||||
mkdir -p $(ROLES_DIR)/$${ROLE_NAME}/{tasks,handlers,templates,files,vars,defaults,meta,tests,playbooks}; \
|
||||
echo "$(BLUE)📝 Создаем основные файлы...$(RESET)"; \
|
||||
echo "---" > $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo "# Основные задачи роли $$ROLE_NAME" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo "# Автор: $(AUTHOR)" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo "# Сайт: $(SITE)" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo "---" > $(ROLES_DIR)/$${ROLE_NAME}/tasks/main.yml; \
|
||||
echo "# Основные задачи роли $${ROLE_NAME}" >> $(ROLES_DIR)/$${ROLE_NAME}/tasks/main.yml; \
|
||||
echo "# Автор: $(AUTHOR)" >> $(ROLES_DIR)/$${ROLE_NAME}/tasks/main.yml; \
|
||||
echo "# Сайт: $(SITE)" >> $(ROLES_DIR)/$${ROLE_NAME}/tasks/main.yml; \
|
||||
echo "" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo "- name: $$ROLE_NAME placeholder" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo " debug:" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
@@ -1498,10 +1498,10 @@ role-create-interactive: check-whiptail ## Интерактивное созда
|
||||
echo "" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo "- name: Start $$ROLE_NAME service" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo " systemd:" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo " name: \"{{ $$ROLE_NAME}_service | default('$$ROLE_SERVICE') }\"" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo " name: \"{{ $${ROLE_NAME}_service | default('$$ROLE_SERVICE') }}\"" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo " state: started" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo " enabled: true" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo " when: $$ROLE_NAME}_service is defined" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo " when: $${ROLE_NAME}_service is defined" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/main.yml; \
|
||||
echo "---" > $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
echo "# Задачи для Debian/Ubuntu семейства" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
echo "# Автор: $(AUTHOR)" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
@@ -1515,7 +1515,7 @@ role-create-interactive: check-whiptail ## Интерактивное созда
|
||||
echo "" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
echo "- name: Install $$ROLE_NAME package (Debian)" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
echo " apt:" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
echo " name: \"{{ $$ROLE_NAME}_package | default('$$ROLE_PACKAGE') }\"" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
echo " name: \"{{ $${ROLE_NAME}_package | default('$$ROLE_PACKAGE') }}\"" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
echo " state: present" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
echo " when: ansible_os_family == 'Debian'" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/debian.yml; \
|
||||
echo "---" > $(ROLES_DIR)/$$ROLE_NAME/tasks/redhat.yml; \
|
||||
@@ -1530,7 +1530,7 @@ role-create-interactive: check-whiptail ## Интерактивное созда
|
||||
echo "" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/redhat.yml; \
|
||||
echo "- name: Install $$ROLE_NAME package (RHEL)" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/redhat.yml; \
|
||||
echo " yum:" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/redhat.yml; \
|
||||
echo " name: \"{{ $$ROLE_NAME}_package | default('$$ROLE_PACKAGE') }\"" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/redhat.yml; \
|
||||
echo " name: \"{{ $${ROLE_NAME}_package | default('$$ROLE_PACKAGE') }}\"" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/redhat.yml; \
|
||||
echo " state: present" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/redhat.yml; \
|
||||
echo " when: ansible_os_family == 'RedHat'" >> $(ROLES_DIR)/$$ROLE_NAME/tasks/redhat.yml; \
|
||||
echo "---" > $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
@@ -1538,9 +1538,9 @@ role-create-interactive: check-whiptail ## Интерактивное созда
|
||||
echo "# Автор: $(AUTHOR)" >> $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
echo "# Сайт: $(SITE)" >> $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
echo "" >> $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
echo "$$ROLE_NAME}_enabled: true" >> $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
echo "$$ROLE_NAME}_package: $$ROLE_PACKAGE" >> $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
echo "$$ROLE_NAME}_service: $$ROLE_SERVICE" >> $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
echo "$${ROLE_NAME}_enabled: true" >> $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
echo "$${ROLE_NAME}_package: $$ROLE_PACKAGE" >> $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
echo "$${ROLE_NAME}_service: $$ROLE_SERVICE" >> $(ROLES_DIR)/$$ROLE_NAME/defaults/main.yml; \
|
||||
echo "---" > $(ROLES_DIR)/$$ROLE_NAME/meta/main.yml; \
|
||||
echo "galaxy_info:" >> $(ROLES_DIR)/$$ROLE_NAME/meta/main.yml; \
|
||||
echo " author: $(AUTHOR)" >> $(ROLES_DIR)/$$ROLE_NAME/meta/main.yml; \
|
||||
@@ -1555,7 +1555,7 @@ role-create-interactive: check-whiptail ## Интерактивное созда
|
||||
echo " versions: [7, 8, 9]" >> $(ROLES_DIR)/$$ROLE_NAME/meta/main.yml; \
|
||||
echo " - name: RHEL" >> $(ROLES_DIR)/$$ROLE_NAME/meta/main.yml; \
|
||||
echo " versions: [7, 8, 9]" >> $(ROLES_DIR)/$$ROLE_NAME/meta/main.yml; \
|
||||
echo " galaxy_tags: [$$ROLE_TAGS]" >> $(ROLES_DIR)/$$ROLE_NAME/meta/main.yml; \
|
||||
echo " galaxy_tags: [$${ROLE_TAGS}]" >> $(ROLES_DIR)/$$ROLE_NAME/meta/main.yml; \
|
||||
echo "dependencies: []" >> $(ROLES_DIR)/$$ROLE_NAME/meta/main.yml; \
|
||||
echo "---" > $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "# Роль $$ROLE_NAME" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
@@ -1566,9 +1566,9 @@ role-create-interactive: check-whiptail ## Интерактивное созда
|
||||
echo "" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "| Переменная | По умолчанию | Описание |" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "|------------|--------------|----------|" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "| \`$$ROLE_NAME}_enabled\` | \`true\` | Включить роль |" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "| \`$$ROLE_NAME}_package\` | \`$$ROLE_PACKAGE\` | Имя пакета |" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "| \`$$ROLE_NAME}_service\` | \`$$ROLE_SERVICE\` | Имя сервиса |" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "| \`$${ROLE_NAME}_enabled\` | \`true\` | Включить роль |" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "| \`$${ROLE_NAME}_package\` | \`$$ROLE_PACKAGE\` | Имя пакета |" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "| \`$${ROLE_NAME}_service\` | \`$$ROLE_SERVICE\` | Имя сервиса |" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "## Использование" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
echo "" >> $(ROLES_DIR)/$$ROLE_NAME/README.md; \
|
||||
|
||||
Reference in New Issue
Block a user