DevOps AI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
No Result
View All Result
Home DevOps & Cloud

Series Ansible – Bài 4 – Deploying Docker Swarm using Ansible

Hiếu Tạ by Hiếu Tạ
30 Tháng 4, 2025
in DevOps & Cloud
0
Series Ansible – Bài 4 – Deploying Docker Swarm using Ansible
Share on FacebookShare on Twitter

Đa số các bài viết khác sẽ dùng Ansible để khởi tạo cụm Docker swarm, nhưng đối với bài này để hiểu rõ hơn về Playbook/Ansible nên mình quyết định chỉ dùng cho phần triển khai. Tức là bình thường khi deploy swarm, update image mới thì swarm sẽ lên repository kéo image mới về node để run.

Trong bài này thì mình sẽ dùng Ansible cho việc này, tuy hơi giống “làm lại cái bánh xe” nhưng để hiểu rõ hơn về Playbook thì mình nghĩ đây là ví dụ ổn, cũng như trong một số tình huống triển khai docker swarm, các worker không tự kéo được image mới về, vì các worker node không kéo về được thì không run container trên node đó được.

Điều kiện tiên quyết

  • Phải đảm bảo các node cần deploy đã có thông kết nối SSH với máy đích như ở Bài 3 – ví dụ như docker swarm thì từ manager có thể ssh đến các worker node
  • Cụm docker swarm phải được thiết lập và create trước một stack (mình sẽ giành bài viết khác để nói về chủ đề này)
  • Node manager có kết nối SSH với các node còn lại thì cần cài ansible/ Các node còn lại thì phải có docker
ansible playbook

Playbook

---
- hosts: webservers
  tasks:
    - name: Get ping
      command:
        cmd: whoami
    - name: Login dockerhub
      command:
        cmd: docker login -u admin -p devopsifypassword http://10.121.xx.xx:xxxx/repository/devopsify-docker-repo
    - name: Pull the new image
      command:
        cmd: docker pull 10.121.xx.xx:xxxx/dcb-"{{ ENVIRONMENT }}":v"{{ BUILD_NUMBER }}"

Giải thích chút, mình có 3 tasks.

  • Task 1 – Get Ping: Mục đích để xem bạn đang run với user nào, Ví dụ docker run dưới user A nhưng bạn đang cho kết nối từ manager đến worker là user B trong file hosts (xem bài trước để biết về hosts file) thì lúc nào docker sẽ không thực thi được do thiếu quyền,..bla..bla, nên mình để task này ở đây mục đích để remind, để lỡ có lỗi, mọi người fix cho lẹ 😀
  • Task 2 – Login dockerhub: Login vào repository, nơi mà bạn chứa các image mới
  • Task3 – Pull the new image: lấy cái image mới về, ở đây mình để 2 biến là ENVIRONMENT – để pull đúng môi trường, BUILD_NUMBER là bản version của image

Related Post

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên

DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên

7 Tháng 6, 2025

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

29 Tháng 4, 2025

Đổi MTU cho Calico trong Kubernetes

30 Tháng 4, 2025

Hosts

Ở đây mình có 2 nodes nên file hosts mình cấu hình như này. Docker mình run ở user root và dùng SSH

Deployment

Thực thi lệnh sau để pull image về

ansible-playbook -i /u01/app/ansible/hosts --extra-vars 'ENVIRONMENT=prod BUILD_NUMBER=286' /u01/app/ansible/ansible-playbook.yml

Trong đó,

  • -i là đường dẫn tới file hosts ở trên
  • –extra-vars: gồm 2 biến đã được đặt trong playbook
  • /u01/app/ansible/ansible-playbook.yml: đường dẫn đến ansible-playbook.yml mình đã viết

Sau đó, dùng lệnh docker service update để update image mới

Kết quả:

ansible playbook

Chúc các bạn thành công!

Tags: ansiblebuilddevopsdevops engineer
Hiếu Tạ

Hiếu Tạ

Graduated as a Software Engineer. I have more than 3-year experience in developing software and DevOps, used to many services of AWS, and Azure, K8S, and using Windows or Linux on-premies proficiently to set up servers, proxy, build and deploy multiple programming languages (Java, GO, NET,...)..... Experience with CMS such SiteCore, ElasticPath, AEM... Implement CICD via Jenkins scripting, infrastructure as code via Terraform, and AWS Cloud Formation.

Related Posts

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent
AI & Automation

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

by devopsify
16 Tháng 6, 2025
DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên
Bảo mật

DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên

by devopsify
7 Tháng 6, 2025
Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!
Tin tức

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

by devopsify
29 Tháng 4, 2025
Next Post
Khác nhau giữa HTTP 1.0, HTTP 1.1, HTTP 2.0 và HTTP 3.0

Khác nhau giữa HTTP 1.0, HTTP 1.1, HTTP 2.0 và HTTP 3.0

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended

Tổng hợp các phiên bản Stable Diffusion: So sánh, tính năng và yêu cầu phần cứng

Tổng hợp các phiên bản Stable Diffusion: So sánh, tính năng và yêu cầu phần cứng

13 Tháng 6, 2025
Cài đặt Maven trên Windows

Cài đặt Maven trên Windows

11 Tháng 6, 2025
Các website demo hay được sử dụng cho thực hành Automation Test

Các website demo hay được sử dụng cho thực hành Automation Test

11 Tháng 6, 2025
Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

16 Tháng 6, 2025
DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

13 Tháng 6, 2025
GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

11 Tháng 6, 2025
DevOpsify

Cộng đồng DevOps Việt Nam chia sẽ kiến thức giúp tăng tốc quá trình phát triển ứng dụng và tự động hóa trong lĩnh vực Cloud DevOps & AI.

Bài viết mới

  • Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent
  • MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật
  • DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

Categories

  • AI & Automation
  • Bảo mật
  • Chưa phân loại
  • DevOps & Cloud
  • Tin tức
No Result
View All Result
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud

© 2025 DevOpsify