Chuyển đến nội dung chính

Bài đăng

Đang hiển thị bài đăng từ tháng sáu, 2019

Tổng quan về Clair tool.

Clair là một mã nguồn mở dùng để quét các lỗ hổng (vulnerability) và là một tool phân tích tĩnh các image container được phát triển bởi CoreOS.

Clair lấy thông tin lỗ hỗng từ các nguồn khác nhau và lưu vào cơ sở dữ liệu (database )
Clair xuất API cho các client yêu cầu và thực thi quét lỗ hổng. Điều đó cho thấy Clair là một tool "backend-only" , nó không được tích hợp với "frontend" để quét hay các máy quét lỗ hổng.

Có một vài công cụ của bên thứ 3 tích hợp với Clair nhưng quét các image từ terminal như là một phần của việc deploy.

Cài đặt Clair Theo link sau : https://github.com/coreos/clair/blob/master/Documentation/running-clair.md

Và có thể chạy Theo kiều container.

Dưới client ta chạy klar  tool với cấu trúc lệnh như sau:

CLAIR_ADDR=<Clair server URL>  klar <image name to be scanned> Ví dụ ta cần scan image : python:3 trên server có cái CLAIR server :

CLAIR_ADDR=localhost klar python:3 Nếu Docker image python không có trên host thì nó sẽ tự động pul…

Find Security Bugs với Jenkins, Maven và Sonaqube

https://find-sec-bugs.github.io/

Findsecbugs là một plugin cho việc kiểm tra các lỗi bảo mật cho một ứng dụng web chạy Java.

Plugin này có thể tích hợp với nhiếu công cụ phát triền khác nhau như : Eclipse , IntelliJ và NetBeans.

Ngoài ra nó được dùng trong CI như Jenkins và Sonar.

Bài viết này tập  trung vào việc Findsecbugs tích hợp với Maven và Jenkins.

I. Cài đặt FindBug plugin trên Jenkins.

Manage Jenkins >> Manage Plugin >> Available

Select : "FindBug Plug-in"

II. Configure Maven:

1. Cấu hình file POM:

Trong file pom.xml :
[...] <build>     <plugins>         [...] <!-- SpotBugs Static Analysis -->         <plugin>             <groupId>com.github.spotbugs</groupId>             <artifactId>spotbugs-maven-plugin</artifactId>             <version>3.1.1</version>             <configuration>                 <effort>Max</effort>                 <threshold>Low</threshold>                 &…

Cài đặt kubernetes cluster trên ubuntu.

I. Yêu cầu cầu hình server ubuntu trước khi cài đặt kubernetes.

Master: 2 GB RAM2 Cores of CPUSlave/ Node: 1 GB RAM1 Core of CPU 
 I.1 Update repository.


apt-get update
  I.2 Tắt swap:

swapoff -anano /etc/fstab


Coment out, để khi server reboot, swap không được khởi tạo.

I.3 Update hostname:
nano /etc/hostname


I.4 Update file hosts:

nano /etc/hosts



 I.5 Cài đặt OpenSSH-server:

sudo apt-get install openssh-server  I.6 Cài đặt docker:

# sudo su # apt-get update # apt-get install -y docker.io
Cài đặt repo cho kubernetes :

# apt-get update && apt-get install -y apt-transport-https curl # curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - # cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb http://apt.kubernetes.io/ kubernetes-xenial main EOF # apt-get update
 I.7 : Cài đặt kubeadm, Kubelet And Kubectl



# apt-get install -y kubelet kubeadm kubectl
Update kubernetes configuration:

nano /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Thêm vào :

Env…

Spring cloud - bootstrapping là gì ? Xây dựng một ứng dụng sử dụng spring cloud cơ bản.

I. Khái quát: 

Spring cloud là một framework để xây dựng một ứng dụng trên nền tảng đám mây rất mạnh mẽ. Khi chuyển qua môi trường phân tán (distributed env ) các framework thường đối mặt với các vấn đề chung. và framework này cung các các giải pháp để giải quyết những vấn đề đó.

Các ứng dụng chạy với kiến trúc microservices thường mong muốn cho việc phát triển, triển khai và bảo trì một cách đơn giản nhất. Việc phân tích, phân thành mảng nhỏ các ứng dụng cho phép lập trình viên tập trung giải quyết một vấn đề trong một thời  điểm. và không ảnh hưởng đến các phần khác của hệ thống.

Mặt khác những thử thách khác nhau khi chúng ta tiến tới sử dụng kiến trúc microservices:

Những cấu hình bên ngoài là linh động và không cần build lại dịch vụ.Service discovery (dịch vụ quan sát và phát hiện )Ẩn các dịch vụ phức tạp được deploy lên các host khác nhau.  Trong bài viết này, chúng ta sẽ build 5 microservcie, 1 config server và 1 discovery server, 1 gateway server, 1 book service và một rating s…

VIẾT MỘT ỨNG DỤNG DÙNG FRAMEWORK FLASK VỚI DATABASE LÀ MONGO.

Trong bài viết này bạn học được cách tạo một ứng dụng sử dụng framework flask với cơ sở dữ liệu là mongodb.

Các phần mềm cần thiết :

docker (1.6.0 or above)docker-compose (1.3.1+)python 2.7 or aboveLinux VM - (We used ubuntu 14.04 64 bit)
Cấu trúc của một flask app như sau:

├── app.py ├── docker-compose.yml ├── Dockerfile ├── README.md ├── requirements.txt └── templates └── todo.html
Tạo một thư mực cha:

Tạo một thư mục cha có tên : flask_mongo_compose_sample

$ mkdir flask_compose_sample $ cd flask_compose_sample Tạo một file app.py có nội dung sau :

importosfromflaskimportFlask,redirect,url_for,request,render_templatefrompymongoimportMongoClientapp=Flask(__name__)client=MongoClient(os.environ['DB_PORT_27017_TCP_ADDR'],27017)db=client.tododb@app.route('/')deftodo():_items=db.tododb.find()items=[itemforitemin_items]returnrender_template('todo.html',items=items)@app.route('/new',methods=['POST'])defnew():item_doc={'name':request.form[…

Cơ bản về Jenkin pipeline

Như ta đã biết Jenkins là bộ công cụ build - deployment ứng dụng khá phổ biến hiện nay.

Ngoài Jenkins còn rất nhiều công cụ tương tự như: Team City, Bamboo, Codeship, etc...

Jenkins pipeline là một dạng(type) của jenkins, ngoài ra còn có các dạng build khác như : Freestyle Project, Maven Project, Multi-Configuration Project, ...

Bài viết chỉ tâp trung vào dạng jenkins pipeline:

Cơ bản Jenkins phải được kết nối tới Maven, Arti-factory, SonarQube và gitlab.

Trong phần cấu hình cript bạn định nghĩa các biến như:  url_gitlab, path_maven, ....
 Các bước ta sẽ định nghĩa hàm build và cho từng các stage trong hàm build đó : 
  stage - kết nối đến gitlab và pull code từ nhánh development về :

   stage - build file jar và upload lên server. 


  Sau khi upload file jar lên server chuyển qua stage chạy ứng dụng.
Theo jenkins logs ta có thể biết được build thành công hay thất bại.