Trang chủTác giảLiên hệ

Hướng dẫn quẩy CICD cho elastic beanstalk với bamboo

By Trần Tuấn Anh
Published in DevOps
December 14, 2021
2 min read

CICD là gì

Hiểu nôm na là bạn push code lên git thì nó sẽ được tự động deploy lên server luôn theo các step mà bạn chỉ dẫn chả phải loằng ngoằng hay sợ nhầm nhọt.

Chi tiết cho CICD là gì? (Đọc thêm)

Tạo plan ở bamboo.

Tạo mới một plan. alt text

hoặc bạn có thể clone từ một dự án đã có sẵn nào đó bằng cách chọn.

alt text

Bắt đầu chỉnh sửa plan bằng cách chọn icon bút chì vào plan mà bạn vừa tạo. alt text

alt text

Như ảnh trên thì lúc mới tạo thì bạn sẽ không có các job nào, bạn thêm job bằng cách ấn nút thêm add job tại khu vực số 2.

Bạn đặt tên và add job vào.

alt text

Và bạn chọn vào job mà bạn vừa tạo và bắt đầu thêm các task vào job này.

alt text

Lúc thêm task sẽ mở ra popup, bạn cần hiểu được các bước build của dự án để chọn task phù hợp, ở đây tôi chọn ssh vì dự án tôi cần ssh tới một server và server này sẽ chứa code đã được build trên đó, tôi gọi server này là bastion.

Tiếp đến bạn chọn task SSH Task trên và sửa. Phần này sẽ mô tả khi bạn ssh vào server thì bạn sẽ làm gì, sử dụng những câu lệnh nào.

Bạn vào server bastion và chạy bằng tay các câu lệnh để thử trước khi chạy tự động.

alt text

Những trường thông tin trên đầu là những thông tin để SSH tới sever, bạn có thể dùng các tham số, config để tiện làm việc.

Tại SSH command là những câu lệnh tôi sẽ thực hiện trên server.

Các config như ${bamboo.bastionDomain} như ảnh thì bạn vào trong Plan configuration tab Variables

alt text Bạn điền thêm Repository và branch, triger để khi bạn có commit. (Đoạn này bạn thêm các sự kiện như khi merge chẳng hạn)

alt text alt text

Bạn kiểm tra câu lệnh chạy có lỗi hay không thì bạn chọn như hình trên ở nút Run. alt text Và xem log sau khi chạy xong.

alt text Như vậy code project của tôi đã được build trên server bastion này.

Deploy code từ bastion tới Elastic Beanstalk

Trong Elastic Beanstalk ta có thể deploy bằng câu lệnh trong EB CLI https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-cmd-commands.html

Tất cả những gì bạn cần chuẩn bị deploy là bạn phải build được code, có đủ quyền deploy từ eb cli.

bạn cd vào thư mục source code đoạn SSH Command tại bước build

alt text

Bạn chạy lệnh eb init để thiết lập cấu hình và môi trường. ( Đoạn này giống như chỉ định code này sẽ deploy tại môi trường nào, ứng dụng nào …

![alt text](https://kipalog.kaopiz.com/uploads/6721/a7fd/Screenshot from 2021-08-28 14-43-35.png)

Bạn điền các thông số phù hợp với region, aplication mà bạn đã tạo elasticBeanstalk.

alt text

Xong thì bạn chạy thử lệnh eb deploy [Environment name] -l (version)

alt text

Như vậy là bạn thử chạy bẳng tay và đã deploy lênh elastic beanstalk.

Tạo Job deploy để hoàn thành deploy tự động

alt text

Bạn cũng tạo task SSH task và điền các thông số ssh. Tại mục SSH Command. Bạn sẽ sử dụng câu lệnh deploy bên trên để deploy.

Lỗi có thể xảy ra trong quá trình deploy

![alt text](https://kipalog.kaopiz.com/uploads/0815/1a9b/MicrosoftTeams-image (10).png)

Lỗi trên là thiếu quyền.

Nếu sử dụng quyền root thì không sao. Còn user thường sẽ gặp nhiều vấn đề về quyền như này, trong quá trình build thì tôi đã sử dụng những quyền như dưới. Bạn có thể tạo một policy và nhờ user root gắn cho User của bạn và ElasticBeanstalk Role. ElasticbeanstalkDeployPolicy


Tags

DEVOPSCICD

Trần Tuấn Anh

Related Posts

CICD Pipeline: Codebuild, CodeDeploy
December 14, 2021
2 min
© 2022, All Rights Reserved.

Quick Links

Liên hệ quảng cáoThông tinLiên hệ

Social Media