working aws codedeploy devops tool
Підручник з автоматизованого розгортання за допомогою AWS CodeDeploy:
В Частина 2 інструментів AWS DevOps , ми побачили, як служба CodeBuild була використана для побудови проекту J2EE за допомогою Maven.
У цьому посібнику ми побачимо, як артефактний WAR-файл, який зберігається у сегменті S3, може бути використаний для розгортання на сервері додатків Tomcat за допомогою служби CodeDeploy.
Перевірка => Ідеальний посібник з навчання DevOps
AWS CodeDeploy - це служба розгортання, яка автоматизує розгортання програми на екземплярах Amazon EC2 Linux або Windows.
Цей посібник також пояснить, як Дженкінса можна інтегрувати з CodeDeploy.
Передумова:
- Рахунок у AWS бажано вільний рівень.
- Хороше і швидке підключення до Інтернету.
- Використовується регіон AWS - Азіатсько-Тихоокеанський регіон (Сінгапур).
- Екземпляр Amazon Linux або RHEL EC2.
- Tomcat встановлено на екземплярі EC2.
Примітка: Для розгортання вмісту сховище AWS CodeCommit не підтримується службою CodeDeploy. Підтримуються лише S3 та GitHub.
Що ви дізнаєтесь:
- Налаштування CodeDeploy
- Запустіть екземпляр Amazon Linux EC2
- Інтеграція AWS CodeDeploy із S3
- Створіть програму CodeDeploy
- Інтеграція Дженкінса з AWS CodeDeploy
- Висновок
- Рекомендована література
Налаштування CodeDeploy
AWS CodeDeploy потрібно буде працювати саме з двома об'єктами для доступу до екземпляра EC2 та сегмента S3, де артефакти (файл WAR) зберігаються для розгортання. Щоб надати дозвіл службі CodeDeploy на доступ до цих IAM, потрібно встановити ролі. Ролі IAM не визначені для користувачів IAM, але вони мають доступ лише до сутностей.
# 1) Створіть перша роль для служби CodeDeploy для доступу до екземпляра EC2.
Запустіть IAM і натисніть на Ролі-> Створити роль.
Під Служба AWS натисніть на EC2 -> Виберіть варіант використання -> EC2 і натисніть на Далі-> Дозволи.
Виберіть AWSCodeDeployRole у розділі Назва політики та натисніть Далі-> Огляд.
Введіть назву ролі та натисніть Створити роль.
Нарешті, відредагуйте відносини довіри для цієї ролі, щоб переконатися, що служба CodeDeploy доступна загальним або певним регіонам / кінцевим точкам.
Клацніть на роль і оновіть відносини довіри, як показано нижче.
У політиці змініть EC2 на Codedeploy і натисніть на Оновіть політику довіри.
два) Створіть друга роль для екземпляра EC2 за допомогою служби CodeDeploy для доступу до сегмента S3.
Повторіть наведені вище дії для цієї ролі та введіть, як показано нижче:
- Йти до IAM -> Ролі -> Створити роль.
- У розділі Служба AWS виберіть EC2.
- Під цим ще раз виберіть Ваш варіант використання та натисніть EC2 і натисніть кнопку Далі-> Дозволи.
- На екрані політики дозволу на вкладення виберіть AmazonS3ReadOnlyAccess і натисніть кнопку Далі-> Огляд.
- Назвіть роль HW-Codedeploy-EC2-S3 і натисніть на Створити роль.
Тепер обидві ролі мають бути доступними.
Запустіть екземпляр Amazon Linux EC2
У цьому розділі ми надаємо екземпляр EC2.
Під час надання екземпляра обов’язково виберіть роль HW-Codedeploy-EC2-S3 під час Налаштування деталей екземпляра крок. Крім того, переконайтеся, що відкритий порт 8080
найкращий завантажувач YouTube для Windows 10
Разом із цим нам також потрібно буде встановити Агент CodeDeploy і Tomcat як сервер додатків, який буде використовуватися для розгортання нашої програми.
# 1) Встановіть та налаштуйте агент CodeDeploy на екземплярі Amazon Linux
Агент CodeDeploy допомагає у розгортаннях і повинен бути встановлений у кожному екземплярі (середовищі), де буде здійснюватися розгортання.
Увійдіть до екземпляра Linux і завантажте агент відповідно до регіону, який використовується. У нашому випадку це ідентифікатор регіону Сінгапур ап-південний схід-1.
Команда для завантаження агента має бути у форматі:
wget https: // aws-codedeploy-. s3.amazonaws.com/latest/install
# 2) Встановіть Tomcat на екземплярі EC2
- Щоб встановити та запустити Tomcat, виконайте наступні кроки в порядку.
yum встановити tomcat7 tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps
- Увімкніть користувача tomcat для менеджера програм. Внесіть зміни, як показано у файлі /etc/tomcat7/tomcat-users.xml
- Нарешті, запустіть службу Tomcat.
послуга tomcat7 старт
- Запуск Менеджер веб-додатків Tomcat та перевірте, чи працює, використовуючи URL-адресу http: //: 8080 / manager
Інтеграція AWS CodeDeploy із S3
Як вже згадувалося в частині 2, CodeDeploy підтримує лише S3 та GitHub як сховище коду, яке використовується для розгортання останніх версій програми. Оскільки наш файл програми WAR зберігається у сегменті S3, нам потрібно переконатися, що підтримуваний формат - це файл ZIP.
Це означає, що файл WAR повинен знаходитись у ZIP-файлі, який підтримується процесом розгортання за допомогою CodeDeploy.
Запитання та відповіді на інтерв’ю для SQL Server 2012 для досвідчених
- На екземплярі Linux також потрібно встановити AWS CLI (інтерфейс командного рядка). Будь ласка, зверніться до URL встановити.
- Виконайте наступні кроки в екземплярі Linux, щоб завантажити WAR із сегмента S3. Зазвичай на машині побудови слід виконувати наступні кроки.
встановити AWS_ACCESS_KEY_ID =
встановити AWS_SECRET_ACCESS_KEY =
встановити AWS_DEFAULT_REGION = ap-southeast-1
cd / opt / niranjan
aws s3 cp s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war / opt / niranjan
- CodeDeploy використовує файл appspec.yml файл, який містить інструкції щодо розгортання до екземплярів EC2. Цей файл повинен знаходитись у кореневій папці, куди завантажується файл WAR програми.
Створіть файл appspec.yml та папку скриптів, як показано нижче:
Під час розгортання події виконуються в наступному порядку.
# 1) ApplicationStop
# 2) Перед встановленням
# 3) Встановити (викликається розділ файлів і копіюється файл WAR)
# 4) ApplicationStart
- Використана ієрархія папок -
/ opt / niranjan
appspec.yml
AWS-HelloWorld-1.0.0.war
сценарії
start_application
зупинка_застосування
uninstall_war_file
- Зміст сценаріїв
stop_application:
curl –користувач tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/stop?path=/AWS-HelloWorld-1.0.0
start_application:
curl –користувач tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/start?path=/AWS-HelloWorld-1.0.0
uninstall_war_file
rm -rf /var/lib/tomcat7/webapps/AWS-HelloWorld-1.0.0.war
rm -rf /var/lib/tomcat7/webapps/AWS-HelloWorld-1.0.0
- ZIP-вміст і завантажте ZIP-файл у відро S3. Переконайтеся, що VERSIONING увімкнено на відрі.
zip –r AWS-HelloWorld-1.0.0.war.zip AWS-HelloWorld-1.0.0.war скрипти appspec.yml
aws s3 cp /opt/niranjan/AWS-HelloWorld-1.0.0.war.zip
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
ZIP-файл, завантажений у сегмент S3, видно на екрані нижче:
тестувати засоби управління даними з відкритим кодом -
Замість того, щоб запускати команди по черзі, ви можете створити виконуваний сценарій, додати до нього вищезазначені команди та запускати його кожного разу, коли новий файл WAR доступний із збірки.
Створіть програму CodeDeploy
Додаток CodeDeploy створюється для забезпечення належного перегляду файлу WAR, розгорнутого у відповідному середовищі, яке є екземпляром EC2.
Запустіть службу CodeDeploy і натисніть на Створити програму кнопку.
Введіть назву програми, групу розгортання ( Приклад: QA-Env) і виберіть запущені екземпляри EC2.
У кінці форми виберіть службову роль. Це інша роль, яка була створена раніше в підручнику.
Клацніть на Створити програму кнопку.
Виберіть групу розгортання (QA-Env) і виберіть Дії -> Розгортання нової версії.
Оскільки ZIP-файл знаходиться в сегменті S3, введіть місце редакції таким чином:
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
Клацніть на Розгортати кнопку. Розгортання успішне, як показано нижче.
Файл WAR успішно копіюється в каталог tomcat webapps.
Перегляньте URL-адресу програми, щоб переконатися, що програма успішно розгорнута.
Інтеграція Дженкінса з AWS CodeDeploy
Як ми вже бачили в попередніх 2 підручниках, Дженкінс дуже добре інтегрується з інструментами AWS DevOps. Для інтеграції Jenkins з CodeDeploy потрібно встановити плагін. Клацніть тут завантажити та встановити плагін CodeDeploy.
Спочатку введіть ключ доступу та секретний ключ для користувача IAM у Дженкінс -> Конфігурація .
Висновок
Поки ми побачили, як CodeDeploy можна використовувати для автоматизації розгортання файлу WAR програми J2EE, що зберігається у відрі S3, до екземпляра EC2, на якому запущений сервер додатків tomcat.
Серія цих трьох інструментів, тобто CodeCommit, CodeBuild і CodeDeploy, допомагає в аспектах Безперервної інтеграції та Безперервної доставки DevOps. Поряд з цими 3 інструментами, AWS CodePipeline - це ще один інструмент, який допомагає врешті-решт припинити візуалізацію доставки додатків.
Слідкуйте за нашим майбутнім посібником, щоб дізнатись більше про розгортання веб-додатків .NET на AWS за допомогою Elastic Beanstalk.
НАЗАД Підручник | НАСТУПНИЙ підручник
Рекомендована література
- Найкращі інструменти розробки AWS для розробки та розгортання хмари
- Постійне розгортання в DevOps
- Підручник AWS CodeCommit з реалізації DevOps у хмарі
- Постійна доставка в DevOps
- Постійне тестування в DevOps
- Важливість невеликих приростів поставок у DevOps
- Підручник з AWS CodeBuild: Витяг коду з Maven Build
- DevOps Automation: як застосовується автоматизація на практиці DevOps