working aws codedeploy devops tool
Εκμάθηση για την αυτοματοποιημένη ανάπτυξη με χρήση του AWS Code
Σε Μέρος 2 των εργαλείων AWS DevOps , είδαμε πώς χρησιμοποιήθηκε η υπηρεσία CodeBuild για την κατασκευή του έργου J2EE χρησιμοποιώντας το Maven.
Σε αυτό το σεμινάριο, θα δούμε πώς μπορεί να χρησιμοποιηθεί το αρχείο artifact WAR που είναι αποθηκευμένο στον κάδο S3 για ανάπτυξη σε διακομιστή εφαρμογών Tomcat χρησιμοποιώντας την υπηρεσία CodeDeploy.
Ρίξτε μια ματιά => Ιδανικός οδηγός για την εκπαίδευση DevOps
Το AWS CodeDeploy είναι η υπηρεσία ανάπτυξης που αυτοματοποιεί την ανάπτυξη της εφαρμογής σε παρουσίες Amazon EC2 Linux ή Windows.
Αυτό το σεμινάριο θα εξηγήσει επίσης πώς η Jenkins μπορεί να ενσωματωθεί στο CodeDeploy.
Προαπαιτούμενο:
- Λογαριασμός με AWS κατά προτίμηση ένα δωρεάν επίπεδο.
- Καλή και γρήγορη σύνδεση στο Διαδίκτυο.
- Χρησιμοποιείται περιοχή AWS - Ασία-Ειρηνικός (Σιγκαπούρη)
- Amazon Linux ή RHEL EC2.
- Το Tomcat είναι εγκατεστημένο στην παρουσία EC2.
Σημείωση: Για την ανάπτυξη του περιεχομένου, το αποθετήριο AWS CodeCommit δεν υποστηρίζεται για την υπηρεσία CodeDeploy. Υποστηρίζονται μόνο S3 και GitHub.
Τι θα μάθετε:
- Ρύθμιση CodeDeploy
- Εκκινήστε το Amazon Linux EC2 Instance
- Ενσωμάτωση κώδικα AWS Ανάπτυξη με S3
- Δημιουργία εφαρμογής CodeDeploy
- Jenkins Integration με AWS CodeDeploy
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Ρύθμιση CodeDeploy
Το AWS CodeDeploy θα πρέπει να λειτουργήσει συγκεκριμένα με δύο οντότητες για πρόσβαση στην παρουσία EC2 και στον κάδο S3 όπου αποθηκεύονται τα αντικείμενα (αρχείο WAR) για ανάπτυξη. Προκειμένου να παρέχεται άδεια στην υπηρεσία CodeDeploy να έχει πρόσβαση σε αυτά τα IAM, πρέπει να ρυθμιστούν ρόλοι. Οι ρόλοι IAM δεν ορίζονται για χρήστες IAM αλλά έχουν πρόσβαση μόνο στις οντότητες.
# 1) Δημιουργήστε το πρώτος ρόλος για την υπηρεσία CodeDeploy για πρόσβαση στην παρουσία EC2.
char στη συμβολοσειρά c ++
Εκκινήστε το IAM και κάντε κλικ στο Ρόλοι-> Δημιουργία ρόλου.
Κάτω από Υπηρεσία AWS κάντε κλικ στο EC2 -> Επιλέξτε τη θήκη χρήσης σας -> EC2 και κάντε κλικ στο Επόμενο-> Δικαιώματα.
Επίλεξε το AWSCodeDeployRole κάτω από το Όνομα πολιτικής και κάντε κλικ στο Επόμενο-> Κριτική.
Εισαγάγετε ένα όνομα ρόλου και κάντε κλικ στο Δημιουργία ρόλου.
Τέλος, επεξεργαστείτε τη σχέση εμπιστοσύνης για αυτόν τον ρόλο για να διασφαλίσετε ότι η υπηρεσία CodeDeploy είναι προσβάσιμη συνολικά ή συγκεκριμένες περιοχές / τελικά σημεία.
Κάντε κλικ στον ρόλο και ενημερώστε τη σχέση εμπιστοσύνης όπως φαίνεται παρακάτω.
Στην πολιτική, αλλάξτε το EC2 σε Codedeploy και κάντε κλικ στο Ενημέρωση πολιτικής εμπιστοσύνης.
δύο) Δημιουργήστε το δεύτερος ρόλος για την παρουσία EC2 χρησιμοποιώντας την υπηρεσία CodeDeploy για πρόσβαση στον κάδο S3.
Επαναλάβετε τα παραπάνω βήματα για αυτόν τον ρόλο και εισαγάγετε όπως παρακάτω:
- Παω σε IAM -> Ρόλοι -> Δημιουργία ρόλου.
- Στην υπηρεσία AWS, επιλέξτε EC2.
- Κάτω από αυτό επιλέξτε ξανά τη θήκη χρήσης σας και κάντε κλικ στο EC2 και κάντε κλικ στο κουμπί Επόμενο-> Δικαιώματα.
- Στην οθόνη πολιτικής άδειας επισύναψης, επιλέξτε AmazonS3ReadOnlyAccess και κάντε κλικ στο κουμπί Επόμενο-> Κριτική.
- Ονομάστε τον ρόλο HW-Codedeploy-EC2-S3 και κάντε κλικ στο Δημιουργία ρόλου.
Και οι δύο ρόλοι πρέπει τώρα να είναι διαθέσιμοι.
Εκκινήστε το Amazon Linux EC2 Instance
Σε αυτήν την ενότητα, παρέχουμε τώρα την παρουσία EC2.
Κατά την παροχή της παρουσίας φροντίστε να επιλέξετε τον ρόλο 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 Ανάπτυξη με 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-tenggara-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 και το φάκελο scripts όπως φαίνεται παρακάτω:
Τα συμβάντα εκτελούνται με την ακόλουθη σειρά κατά την ανάπτυξη.
# 1) ApplicationStop
# 2) BeforeInstall
# 3) Εγκατάσταση (η ενότητα αρχείων καλείται και το αρχείο WAR αντιγράφηκε)
# 4) Έναρξη εφαρμογής
- Η ιεραρχία φακέλων που χρησιμοποιείται είναι
/ opt / niranjan
appspec.yml
AWS-HelloWorld-1.0.0.war
σενάρια
start_application
stop_application
απεγκαταστήστε_war_file
- Περιεχόμενα σεναρίων
stop_application:
curl –user tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/stop?path=/AWS-HelloWorld-1.0.0
λογισμικό για λήψη βίντεο από ιστότοπους
έναρξη_εφαρμογή:
curl – user tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/start?path=/AWS-HelloWorld-1.0.0
απεγκαταστήστε_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 scripts
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 εφαρμογής είναι διαθέσιμο από το build.
Δημιουργία εφαρμογής 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 Integration με AWS CodeDeploy
Όπως έχουμε δει σε προηγούμενα 2 σεμινάρια, η Jenkins ενσωματώνεται πολύ καλά με τα εργαλεία AWS DevOps. Για την ενσωμάτωση της Jenkins στο CodeDeploy, πρέπει να εγκατασταθεί η προσθήκη. Κάντε κλικ εδώ για λήψη και εγκατάσταση της προσθήκης CodeDeploy.
Καταχωρίστε πρώτα το Access και το μυστικό κλειδί για τον χρήστη IAM Jenkins -> Διαμόρφωση .
συμπέρασμα
Μέχρι στιγμής είδαμε πώς μπορεί να χρησιμοποιηθεί το CodeDeploy για την αυτοματοποίηση της ανάπτυξης ενός αρχείου WAR εφαρμογής J2EE που είναι αποθηκευμένο σε κάδο S3 στην παρουσία EC2 που εκτελεί διακομιστή εφαρμογών tomcat.
Η σειρά αυτών των τριών εργαλείων, δηλαδή CodeCommit, CodeBuild και CodeDeploy βοηθούν στις πτυχές συνεχούς ολοκλήρωσης και συνεχούς παράδοσης του DevOps. Μαζί με αυτά τα 3 εργαλεία, το AWS CodePipeline είναι ένα άλλο εργαλείο που βοηθά στο τέλος σε τέλος την οπτικοποίηση της παράδοσης της εφαρμογής.
Μείνετε συντονισμένοι στο επερχόμενο σεμινάριό μας για να μάθετε περισσότερα σχετικά με την ανάπτυξη εφαρμογών ιστού .NET στο AWS χρησιμοποιώντας το Elastic Beanstalk.
Εκπαιδευτικό πρόγραμμα PREV | ΕΠΟΜΕΝΟ Φροντιστήριο
Συνιστώμενη ανάγνωση
- Κορυφαία Εργαλεία AWS DevOps για Δημιουργία και Ανάπτυξη Cloud
- Συνεχής ανάπτυξη σε DevOps
- Tutorial AWS CodeCommit για την εφαρμογή DevOps στο Cloud
- Συνεχής παράδοση σε DevOps
- Συνεχής δοκιμή σε DevOps
- Σημασία των μικρών αυξήσεων των παραδόσεων σε DevOps
- Tutorial AWS CodeBuild: Εξαγωγή κώδικα από το Maven Build
- Αυτοματισμός DevOps: Πώς εφαρμόζεται ο αυτοματισμός στην πρακτική του DevOps