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 Instance
- Интегриране на AWS CodeDeploy със S3
- Създайте приложение CodeDeploy
- Интеграция на Jenkins с AWS CodeDeploy
- Заключение
- Препоръчително четене
Настройка на CodeDeploy
AWS CodeDeploy ще трябва да работи, а именно с две обекти за достъп до екземпляра EC2 и сегмента S3, където артефактите (WAR файл) се съхраняват за внедряване. За да се предостави разрешение на услугата CodeDeploy за достъп до тези IAM, ще трябва да се настроят роли. Ролите на IAM не са дефинирани за потребители на IAM, но те имат достъп само до обектите.
# 1) Създайте първа роля за услугата CodeDeploy за достъп до екземпляра EC2.
Стартирайте IAM и кликнете върху Роли-> Създаване на роля.
Под AWS услуга кликнете върху EC2 -> Изберете вашия случай на употреба -> EC2 и кликнете върху Напред-> Разрешения.
Изберете AWSCodeDeployRole под Име на политика и щракнете Напред-> Преглед.
Въведете име на роля и кликнете върху Създаване на роля.
И накрая, редактирайте връзката Trust за тази роля, за да сте сигурни, че услугата CodeDeploy е достъпна като цяло или специфични региони / крайни точки.
Кликнете върху ролята и актуализирайте отношенията на доверие, както е показано по-долу.
В политиката променете EC2 на Codedeploy и кликнете върху Актуализирайте Политиката за доверие.
две) Създайте втора роля за екземпляра EC2, използващ услугата CodeDeploy за достъп до сегмента S3.
Повторете горните стъпки за тази роля и въведете както по-долу:
- Отидете на IAM -> Роли -> Създаване на роля.
- Под AWS Service изберете EC2.
- Под това Изберете вашия случай на употреба отново и щракнете върху EC2 и щракнете върху бутона Напред-> Разрешения.
- В екрана на политиката за разрешение за прикачване изберете AmazonS3ReadOnlyAccess и щракнете върху бутона Напред-> Преглед.
- Назовете ролята HW-Codedeploy-EC2-S3 и щракнете върху Създаване на роля.
И двете роли вече трябва да са налични.
Стартирайте Amazon Linux EC2 Instance
В този раздел сега предоставяме екземпляра EC2.
как да направя makefile c ++
Докато осигурявате екземпляра, не забравяйте да изберете ролята HW-Codedeploy-EC2-S3 по време на Конфигурирайте подробности за екземпляра стъпка. Също така, уверете се, че сте направили отворен порт 8080.
Заедно с това, ние също ще трябва да инсталираме Агент CodeDeploy и Tomcat като сървър за приложения, който ще се използва за разполагане на нашето приложение.
# 1) Инсталирайте и конфигурирайте CodeDeploy Agent на екземпляра на Amazon Linux
Агентът CodeDeploy помага при разполаганията и трябва да бъде инсталиран във всеки екземпляр (среди), където ще бъде извършено разполагането.
Влезте в екземпляра на Linux и изтеглете агента според използвания регион. В нашия случай идентификаторът е регионът на Сингапур ap-югоизток-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 Web Application Manager и проверете дали работи, като използвате URL адреса http: //: 8080 / manager
Интегриране на AWS CodeDeploy със S3
Както бе споменато в част 2, CodeDeploy поддържа само S3 и GitHub като кодово хранилище, което се използва за разполагане на най-новите версии на приложението. Тъй като нашият WAR файл на приложението се съхранява в сегмент S3, трябва да гарантираме, че поддържаният формат е ZIP файл.
Това означава, че WAR файлът трябва да бъде в ZIP файл, което се поддържа от процеса на внедряване с помощта на CodeDeploy.
- AWS CLI (интерфейс на командния ред) също трябва да бъде инсталиран на екземпляра на Linux. Моля, обърнете се към URL да инсталираш.
- Изпълнете следните стъпки в екземпляра на Linux, за да изтеглите WAR от сегмента S3. Обикновено на машината за изграждане трябва да се направят следните стъпки.
задайте AWS_ACCESS_KEY_ID =
задайте AWS_SECRET_ACCESS_KEY =
задайте AWS_DEFAULT_REGION = ap-югоизток-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 и папката скриптове, както е показано по-долу:
По време на разполагането събитията се изпълняват в следния ред.
е мрежовият ключ wifi паролата
# 1) ApplicationStop
# 2) Преди Инсталиране
# 3) Инсталиране (извиква се секцията с файлове и копира WAR файл)
# 4) ApplicationStart
- Използваната йерархия на папките е
/ opt / niranjan
appspec.yml
AWS-HelloWorld-1.0.0.war
скриптове
старт_приложение
стоп_приложение
uninstall_war_file
- Съдържание на скриптове
стоп_приложение:
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 адреса на приложението, за да се уверите, че приложението е внедрено успешно.
Интеграция на Jenkins с AWS CodeDeploy
Както видяхме в предишните 2 урока, Дженкинс се интегрира много добре с инструментите на AWS DevOps. За да интегрирате Jenkins с CodeDeploy, приставката трябва да бъде инсталирана. Щракнете тук за да изтеглите и инсталирате приставката CodeDeploy.
Първо въведете Access и Secret Key за потребителя на 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