Проект FinalVersion направлен на автоматизацию развертывания облачной инфраструктуры с использованием Chef, Packer и Vagrant. Включает в себя настройку CloudWatch для мониторинга, SSM (AWS Systems Manager) для управления конфигурациями и обновлениями, а также настройку базы данных PostgreSQL.
Для использования этого проекта вам потребуются следующие инструменты:
- Chef Workstation
- Vagrant
- Packer
- AWS CLI (для работы с AWS)
- Установите Chef Workstation, чтобы иметь возможность работать с Chef-рецептами и кукбуками.
- Установите Vagrant для локального развертывания виртуальных машин.
- Установите Packer, который будет использоваться для создания образов машин.
- Настройте AWS CLI с вашими учетными данными AWS для работы с CloudWatch и SSM.
finalversion/
├── cookbooks/ # Кукбуки Chef
│ ├── cloudwatch/
│ │ └── recipes/
│ │ └── default.rb
│ ├── ssm/
│ │ └── recipes/
│ │ └── default.rb
│ └── postgresql/
│ └── recipes/
│ └── default.rb
├── packer/ # Конфигурации Packer
│ └── amazonlinux.json
├── Vagrantfile # Конфигурация Vagrant VirtualBox
├── AWSVagrantfile # в случае AWS provisioner
└── README.md
Для использования Vagrant с провайдером AWS и применения тех же ролей и кукбуков Chef, необходимо использовать плагин vagrant-aws, который позволяет Vagrant управлять и создавать инстансы в AWS. Вначале убедитесь, что у вас установлен этот плагин. Если нет, вы можете установить его, используя команду:
vagrant plugin install vagrant-aws
Затем, вам нужно будет настроить Vagrantfile для использования AWS как провайдера и определить конфигурации для создания инстанса EC2, а также указать настройки провижининга с помощью Chef.
config.vm.box = "dummy" используется, поскольку для Vagrant необходимо указать базовый образ, но в случае с vagrant-aws реальный образ будет указан через параметр aws.ami. Значения YOUR_AWS_ACCESS_KEY_ID, YOUR_AWS_SECRET_ACCESS_KEY, и другие параметры должны быть заменены на ваши реальные данные AWS. Убедитесь, что у вас есть доступ к AMI (aws.ami), который вы указываете, и что он подходит для вашего региона и типа инстанса. aws.security_groups, aws.subnet_id, и aws.keypair_name должны быть настроены в соответствии с вашей конфигурацией безопасности в AWS. Путь к приватному ключу (override.ssh.private_key_path) должен соответствовать ключу, который имеет доступ к созданному инстансу. После настройки Vagrantfile, вы можете запустить инстанс в AWS, используя команду:
vagrant up --provider=aws
SSM Agent по умолчанию установлен на образах Ubuntu Server 22.04 LTS, 20.04, 18.04 и 16.04 LTS 64-bit с идентификатором 20180627 или более поздней версии.
Если вам необходимо установить SSM Agent на локальный сервер или выполнить переустановку агента, используйте следующий скрипт. Указывать URL для загрузки не требуется, поскольку команда snap
автоматически загружает агент из магазина приложений Snap по адресу snapcraft.io.
sudo snap install amazon-ssm-agent --classic
Для проверки, запущен ли SSM Agent, выполните следующую команду:
sudo snap list amazon-ssm-agent
Если предыдущая команда показывает, что amazon-ssm-agent
остановлен, неактивен или отключен, используйте следующую команду для запуска сервиса:
sudo snap start amazon-ssm-agent
Для проверки статуса SSM Agent выполните:
sudo snap services amazon-ssm-agent