Управление облачными ресурсами
Автоматизируйте развёртывание и обновление облачных ресурсов, например AWS, Azure и GCP, используя принципы IaC и GitHub Actions.
«Управление облачными ресурсами» — бесплатный урок CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CI/CD with GitHub Actions & DevOps Pipelines, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 4 уроков всего.
Введение в автоматизацию облачных ресурсов
Добро пожаловать! На этом уроке мы рассмотрим, как автоматизировать развертывание и обновление облачных ресурсов с использованием принципов инфраструктуры как кода (IaC) и GitHub Actions.
Ручное управление облачными ресурсами может быть медленным и приводить к ошибкам. Автоматизация обеспечивает согласованность и скорость.
Почему GitHub Actions подходит для облачной IaC?
GitHub Actions предоставляет мощную платформу для автоматизации задач облачной инфраструктуры. Вот почему это отличный выбор:
- Контроль версий: Код инфраструктуры хранится вместе с кодом приложения.
- Автоматизация: Развертывания автоматически запускаются при изменениях кода.
- Наглядность: Статус развертывания можно видеть непосредственно в GitHub.
- Интеграция: Платформа легко подключается к основным облачным поставщикам.
Подключение к облачному поставщику
Для управления облачными ресурсами GitHub Actions требуется разрешение на взаимодействие с вашим облачным поставщиком, например AWS, Azure, GCP и т. д. Обычно это делается одним из следующих способов:
- Ключи доступа и субъекты-службы: учетные данные для программного доступа.
- OpenID Connect (OIDC): более безопасный метод аутентификации без ключей.
На этом уроке мы сосредоточимся на безопасном использовании учетных данных.
Безопасное хранение облачных учетных данных
Никогда не прописывайте конфиденциальные учетные данные непосредственно в файлах рабочего процесса. GitHub Actions предоставляет для этого секреты.
Секреты — это зашифрованные переменные окружения, к которым можно обращаться в рабочих процессах. Они не отображаются в журналах.
- Перейдите в
Settingsсвоего репозитория. - Откройте раздел
Secrets and variables>Actions. - Нажмите
New repository secret, чтобы добавить ключи доступа к облаку.
Базовая структура рабочего процесса развертывания IaC
Типичный рабочий процесс GitHub Actions для IaC включает следующие шаги:
- Получение кода: получить файлы IaC.
- Настройка учетных данных: задать переменные окружения для облачного поставщика.
- Установка инструмента IaC: например, AWS CLI, Azure CLI, Terraform или Pulumi.
- Выполнение команд IaC: спланировать изменения, применить их или удалить ресурсы.
Рассмотрим общий пример.
Универсальный рабочий процесс применения облачной инфраструктуры
Этот рабочий процесс показывает структуру применения изменений IaC. Это шаблон, который нужно адаптировать под конкретное облако и инструмент IaC.
Обратите внимание, как secrets.AWS_ACCESS_KEY_ID используется для доступа к сохраненному секрету.
name: Deploy Cloud Resources
on: push
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Run IaC Apply Command
run: |
# Replace with your actual IaC tool command (e.g., terraform apply, aws cloudformation deploy)
echo "Running cloud resource deployment..."
# aws s3 mb s3://my-unique-coddykit-bucket-123
Пример: развертывание корзины AWS S3
Вот простой пример создания корзины S3 с помощью AWS CLI. Он показывает, как интегрировать в рабочий процесс команды для конкретного облака.
Если Вы решите попробовать этот пример, не забудьте заменить my-unique-coddykit-bucket-123 на глобально уникальное имя корзины!
name: Deploy S3 Bucket
on: push
jobs:
create-s3:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Create S3 Bucket
run: |
aws s3 mb s3://my-unique-coddykit-bucket-123
echo "S3 bucket created successfully!"
Пример: развертывание группы ресурсов Azure
Аналогично, для Azure используется Azure CLI. Этот рабочий процесс выполняет вход в Azure и создает группу ресурсов.
Вам потребуется настроить AZURE_CLIENT_ID, AZURE_TENANT_ID и AZURE_SUBSCRIPTION_ID как секреты GitHub, часто с использованием субъекта-службы.
name: Deploy Azure Resource Group
on: push
jobs:
create-rg:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Azure Login
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Create Azure Resource Group
run: |
az group create --name coddykit-rg --location eastus
echo "Azure Resource Group created!"
Управление обновлениями и откатами
После развертывания ресурсов Вам потребуется управлять обновлениями. При использовании IaC и GitHub Actions это означает следующее:
- Обновление файлов IaC: измените конфигурацию (например, добавьте новый экземпляр EC2).
- Отправка изменений: зафиксируйте изменения и отправьте их в свой репозиторий.
- Автоматическое развертывание: рабочий процесс запускается и применяет обновления.
Для отката обычно возвращают файлы IaC к предыдущей версии и повторно запускают развертывание.
Проверка безопасности управления облаком
При автоматизации управления облачными ресурсами с помощью GitHub Actions какой способ считается наиболее безопасным для работы с конфиденциальными облачными учетными данными?
Итоги: управление облачными ресурсами
Вы узнали, как GitHub Actions может автоматизировать развертывание и обновление облачных ресурсов с использованием принципов IaC.
- GitHub Actions предоставляет надежную платформу для автоматизации IaC.
- GitHub Secrets имеют решающее значение для безопасного управления облачными учетными данными.
- Рабочие процессы интегрируют специализированные для облачных платформ интерфейсы командной строки (AWS CLI, интерфейс командной строки Azure) для взаимодействия с поставщиками.
- Обновления выполняются путем изменения файлов IaC и повторного применения конфигурации рабочим процессом.
Продолжайте практиковаться, чтобы создавать автоматизированные облачные конвейеры!
Часто задаваемые вопросы
Урок «Управление облачными ресурсами» бесплатный?
Да — полный текст урока «Управление облачными ресурсами» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CI/CD with GitHub Actions & DevOps Pipelines, подпишись на CoddyKit PRO. Курс CI/CD with GitHub Actions & DevOps Pipelines содержит 4 уроков всего.
Чему я научусь в уроке «Управление облачными ресурсами»?
Автоматизируйте развёртывание и обновление облачных ресурсов, например AWS, Azure и GCP, используя принципы IaC и GitHub Actions. Ты практикуешь CI/CD with GitHub Actions & DevOps Pipelines с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать CI/CD with GitHub Actions & DevOps Pipelines?
Предыдущий опыт не требуется. CI/CD with GitHub Actions & DevOps Pipelines на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Управление облачными ресурсами»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке CI/CD with GitHub Actions & DevOps Pipelines?
Да. Каждый урок CI/CD with GitHub Actions & DevOps Pipelines включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- IaC с Terraform и GitHub Actions
- Управление облачными ресурсами
- Автоматизация обновлений инфраструктуры
- Управление состоянием Terraform и удалёнными серверными модулями