• About
  • Advertise
  • Privacy & Policy
  • Contact
NQ NEWS
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
NQ NEWS
No Result
View All Result
Home Quản trị hệ thống

Sử dụng Docker thiết lập môi trường tạo Package RPM cho CentOS

@admiz by @admiz
03/05/2021
in Quản trị hệ thống
0
Sử Dụng Docker Thiết Lập Môi Trường Tạo Package Rpm Cho Centos 60902c2233378.jpeg

Ngày xửa ngày xưa…

Ngày mới chập chững bước vào nghề System Engineer, được sếp hướng dẫn và giao cho task: compile HTTPD, PHP lên Server. Lúc đầu làm khoái lắm, viết script compile 2 cái kia từ source như đúng rồi. Mới viết thì script cũng lỗi tè le, cũng ngồi hỏi rồi fix, dần dần thì script cũng ngon hẳn. Lúc đầu sếp giao cho 1 con Server, ngồi compile mất cả buổi sáng. Sau sếp giao cho nhiều hơn, ngồi làm cũng nguyên ngày.    Khoảng 2 năm sau khi làm System Engineer, mình vẫn ngồi compile từ source cho các Server của mình. Tốc độ cải thiện hơn, nhưng cũng chả đáng là bao. Cũng có ý định ngồi build RPM nhưng mà đọc hướng dẫn How to create an RPM Package chả hiểu gì nên từ bỏ luôn ý định.  Được một người bạn giới thiệu Tool https://github.com/jordansissel/fpm ngon quá, từ đó mới bắt đầu tự tạo RPM để tăng hiệu suất làm việc và để đỡ ức chế khi ngồi cả buổi sáng chỉ để compile.

Ngày nảy ngày nay …

• Có 2 Server bản Minimal Fresh làm 2 nhiệm vụ khác nhau

o Server BUILD: Tool FPM để chạy script compile

o Server CHECK: dùng để chạy lệnh yum install file RPM đã tạo để kiểm tra xem file RPM này có OK không.

Việc tạo ra mội trường phải nhanh nhất có thể. 2 Server BUILD và CHECK nên share Folder RPMS với nhau để có thể kiểm tra file RPM nhanh nhất có thể.

Solution

Ngày trước, mình sử dụng Vagrant để tạo môi trường này. Tuy nhiên, theo xu hướng công nghệ, giờ mình cũng học đòi dùng Docker cho bằng bạn bằng bè

Tóm tắt các bước thực hiện

1. Checkout Project của mình về https://github.com/summer0nguyen/package-builder-docker để tạo môi trường nhé. (chỉ checkout về lần đầu)

2. Start container RPM-BUILD lên bằng lệnh : ./start_container_rpm_builder.sh. Lúc này, Docker tự động PULL image summernguyen/rpm-builder của mình về từ Docker Hub và start container lên . Note: Image này được tạo từ Dockerfile Dockerfile_build có sẵn trong Project.

3. Thực hiện việc Build RPM bằng Tool FPM được cài sẵn trong Image summernguyen/rpm-builder. (xem hướng dẫn bên dưới)

4. Start container rpm_checker lên bằng lệnh ./start_container_rpm_checker.sh. Lúc này Docker sẽ pull image centos:centos6 về từ DockerHub về .

5. Ở trong container rpm_checker thử YUM INSTALL file RPM vừa tạo ra trong folder /build/RPMS. Sau khi check xong, chỉ cần exit là Container này sẽ tự động bị delete.

6. Sau khi việc hoàn tất hoặc muốn tạo lại môi trường Fresh cho container RPM-BUILD, chạy lệnh ./destroy_container_rpm_builder.sh.

Demo : Thực hiện tạo RPM NGINX

1. Checkout Project

Checkout Project của mình từ GitHub : https://github.com/summer0nguyen/package-builder-docker.

Macs-MacBook-Pro:tmp macpro$ git clone git@github.com:summer0nguyen/package-builder-docker.git

Cloning into ‘package-builder-docker’…

remote: Counting objects: 29, done.

remote: Compressing objects: 100% (19/19), done.

remote: Total 29 (delta 6), reused 25 (delta 5), pack-reused 0

Receiving objects: 100% (29/29), 819.22 KiB | 212.00 KiB/s, done.

Resolving deltas: 100% (6/6), done.

Checking connectivity… done.

2. Start Container RPM_Builder

Start container RPM Build lên. Container này được start lên từ Image summernguyen/rpm-builder có cài đặt Tool FPM

DockerFile cho image này cũng có sẵn trong Project, nếu bạn muốn edit lại thì có thể build lại nhé.

Macs-MacBook-Pro:package-builder-docker macpro$ ./start_container_rpm_builder.sh

Error: No such image or container: rpm_builder

Starting Container rpm_builder

Unable to find image ‘summernguyen/rpm-builder:latest’ locally

latest: Pulling from summernguyen/rpm-builder

a3ed95caeb02: Already exists

204c9415d16d: Already exists

aef7590dae45: Already exists

2ee50d3dbf64: Already exists

f8329bb76a04: Already exists

Digest: sha256:b65a30e9455e1ef88437261738d057ced34919e70805774981ff60803f5bb0e1

Status: Downloaded newer image for summernguyen/rpm-builder:latest

Ta thấy Docker container đã start lên, và ta đang nằm trong Bash shell của container.

3. Compile Nginx

Trong script start container lên, mình có MAP Folder hiện tại thành Folder /build ở trong container.

[root@7d5376933719 /]# cd /build/BUILDS/NGINX/

[root@7d5376933719 NGINX]# ls

SRC build_nginx.sh

[root@7d5376933719 NGINX]# ./build_nginx.sh

Các bạn nên review qua hướng dẫn sử dụng Tool FPM qua WIKI của họ. 
Ngoài ra, các bạn nên review qua script build_nginx.sh của mình để dễ hình dung hơn.

Mình mô tả lại cách tạo file RPM đơn giản như sau :

1. Compille từ source y như những gì mình thường làm

2. Tạo folder build ở đâu đó, ta xem folder này tương đương folder / của OS .

3. Xác định toàn bộ những file mà quá trình compile ở bước 1 tạo ra lên hệ thống ( Không tính folder source sau khi giải nén nhé)

4. Rsync , Copy, … toàn bộ các folder đó vào folder build ở bước 2 . Nói chung là coi folder build này là folder / của OS . ( xem qua script build_nginx.sh để hiểu rõ thêm)

5. Tạo file RPM bằng lệnh : fpm -s dir -t rpm … . Lưu ý các options :

o -d : tạo dependencies khi install package RPM này

4. Kiểm tra lại file RPM đã tạo ra

Ta start container CHECK lên và cài đặt thử package RPM .
Lưu ý là container này cũng được MAP Folder hiện tại của project vào folder /build nên ta hoàn toàn có thể truy cập file RPM được tạo ra tại : /build/RPMS/

Macs-MacBook-Pro:package-builder-docker macpro$ ./start_container_rpm_checker.sh

Checking Image centos:centos6

centos6: Pulling from library/centos

a3ed95caeb02: Already exists

204c9415d16d: Already exists

Digest: sha256:ec1bf627545d77d05270b3bbd32a9acca713189c58bc118f21abd17ff2629e3f

Status: Image is up to date for centos:centos6

THIS FRESH CENTOS6 CONTAINER WILL BE AUTOMATICALLY DESTROYED AFTER EXIT

[root@32452fb1cc4f /]# cd /build/RPMS/

[root@32452fb1cc4f RPMS]# ls

nginx-1.8.1.1.rpm

[root@32452fb1cc4f RPMS]# yum install nginx-1.8.1.1.rpm -y

…….

Complete!

[root@32452fb1cc4f RPMS]# /etc/init.d/nginx start

Starting nginx: [ OK ]

[root@32452fb1cc4f RPMS]#

Sau khi thoát container này ra, container này sẽ tự động bị xoá .

5. Xoá container RPM Builder

Mọi việc đã xong, giờ mình chỉ cần xoá container RPM Builder

Macs-MacBook-Pro:package-builder-docker macpro$ ./destroy_container_rpm_builder.sh

rpm_builder

OK. Container rpm_builder is destroyed.

Hi vọng việc này sẽ giúp mọi người tăng hiệu suất công việc. Chúc mọi người cuối tuần vui vẻ.

Tìm hiểu thêm: Docker: Chưa biết gì đến biết dùng (Phần 1)

NQ Computing sưu tầm

Theo Kipalog

Kể từ ngày 05/11/2018, VCCloud chính thức đổi tên thành NQ Computing – là nhà cung cấp các dịch vụ đám mây hàng đầu tại Việt Nam hiện nay với các dịch vụ nổi bật như: NQ Computing Server, NQ News CDN, NQ News Load Balancer, NQ News Pre-built Application, NQ News Business Mail, NQ News Simple Storage. Hãy tăng tốc thích nghi cho doanh nghiệp cùng các giải pháp công nghệ của NQ Computing tại đây.

Post Views: 121
Previous Post

Plugin là gì? Các plugin bạn nên sử dụng

Next Post

Rủi ro tiềm ẩn từ Internet of Things

Related Posts

Quicktime Player Logo650 1
macOS

Cách ghép video trên macOS bằng QuickTime Player

26/12/2021
Kali Linux 2021 4 700 1
Linux

Kali Linux 2021.4: Thêm 9 công cụ mới và hỗ trợ tốt hơn cho Apple M1

26/12/2021
Openbsd La Gi 1
Linux

OpenBSD là gì? Đây là mọi thứ bạn cần biết về hệ điều hành này!

26/12/2021
Mac Os Xoa Ung Dung Cai Dat Logo640 1
macOS

Cách gỡ, xóa ứng dụng trên Mac OS

26/12/2021
Tim Thu Vien Anh Photos Library Tren May Mac700 1
macOS

Hướng dẫn tìm thư viện ảnh Photos Library trên máy Mac

26/12/2021
So Sanh Macbook Pro Macbook Air Va Ipad Pro 1
macOS

So sánh MacBook Pro 13 inch với MacBook Air và iPad Pro

26/12/2021
Next Post
Rủi Ro Tiềm ẩn Từ Internet Of Things 60902c24023a7.jpeg

Rủi ro tiềm ẩn từ Internet of Things

Bài mới nhất

Tổng Hợp 10 Mẫu Email Marketing Giới Thiệu Sản Phẩm Nổi Bật Nhất Hiện Nay 612d0da97658c.png

Tổng hợp 10 mẫu email marketing giới thiệu sản phẩm nổi bật nhất hiện nay

07/05/2025
Dịch Vụ Thiết Kế Website Tại Hải Dương Chuyên Nghiệp, ấn Tượng Và Uy Tín 612d25752b14f.png

Dịch vụ thiết kế website tại Hải Dương chuyên nghiệp, ấn tượng và uy tín

06/05/2025
Top Công Ty Thiết Kế Website Tại Biên Hòa Chuyên Nghiệp, Chuẩn Seo 612d259494e93.jpeg

Top công ty thiết kế website tại Biên Hòa chuyên nghiệp, chuẩn SEO

06/05/2025
Top Công Ty Thiết Kế Website Tại Vinh – Nghệ An Uy Tín 612d259a9cae3.jpeg

Top công ty thiết kế website tại Vinh – Nghệ An uy tín

05/05/2025
Top 10 Công Ty Thiết Kế Website Tại Nha Trang Chuyên Nghiệp 612d0a9ad018b.jpeg

Top 10 công ty thiết kế website tại Nha Trang chuyên nghiệp

05/05/2025

Danh mục

  • Android
  • Bảo mật máy tính
  • Bảo mật, Antivirus
  • Chuyện công nghệ
  • Deep Learning
  • Development
  • Dịch vụ công trực tuyến
  • Dịch vụ nhà mạng
  • Giải pháp bảo mật
  • Hệ thống
  • Hệ thống
  • iPhone
  • Kiến thức bảo mật
  • Kiến thức cơ bản phổ thông
  • Kiến thức Marketing căn bản
  • Kiến thức tổng hợp
  • Lập trình
  • Linux
  • Linux OS
  • macOS
  • Mail Server
  • Mạng LAN – WAN
  • Máy ảo
  • Máy chủ
  • ms excel
  • ms-powerpoint
  • Nền tảng điện toán đám mây
  • Phần cứng
  • Phần Mềm
  • Quản trị hệ thống
  • Raspberry Pi
  • Sửa lỗi máy tính
  • Tăng tốc máy tính
  • Thủ thuật
  • Thủ thuật SEO
  • Thủ thuật Wifi
  • Tiện ích hệ thống
  • Tin học văn phòng
  • Tin tức
  • Uncategorized
  • Ứng dụng
  • Website
  • Windows Server 2012

Thẻ

#app #chatbot #chatbot tự động #CRM #Kiến thức cơ bản #Techblog #Thiết kế website Android apple CPU Email Marketing Google Google Drive hacker HTML hàm python hàm python có sẵn hình nền hình nền máy tính học css học python học SQL ios iphone iphone 12 iPhone X macos Microsoft mssql MS SQL Server ngôn ngữ lập trình python Raspberry Pi Samsung smartphone SQL SQL Server tham số trong C thủ thuật windows 10 tài liệu python windows windows 10 YouTube điện thoại thông minh ứng dụng
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2022 Pha Le Solution

No Result
View All Result
  • Home

© 2022 Pha Le Solution