Yêu cầu Jenkins chạy một dự án cụ thể trên một nút nô lệ cụ thể


87

Làm thế nào để tôi bảo Jenkins điều hành một dự án cụ thể về một nô lệ cụ thể?

Tôi đã thiết lập nút chính Jenkins và nút nô lệ mà tôi muốn sử dụng để dàn dựng một ứng dụng. Nhưng tôi không thể tìm ra cách cấu hình dự án để chạy trên nút nô lệ mà tôi đã tạo.


Câu trả lời:


84

Đặt hộp kiểm "Hạn chế nơi công việc này có thể chạy" trong cấu hình công việc của bạn và chỉ định tên của nô lệ của bạn.

Nếu bạn thêm nhiều nô lệ sau này, bạn có thể đặt nhãn cho từng nô lệ và chỉ định những nô lệ trong cấu hình công việc của bạn.

Xem tài liệu tham khảo này:


Cảm ơn. Tôi đã sử dụng khá lâu trước khi tìm thấy câu trả lời của bạn. Nó nên được thêm vào trang này wiki.jenkins-ci.org/display/JENKINS/Distribution+builds
Surasin Tancharoen

16

Nếu bạn đang chạy một công việc Đường ống, trước tiên bạn muốn thêm nhãn (ví dụ: 'nô lệ') vào nút nô lệ (hoặc tác nhân vì nó dường như được gọi ngay bây giờ).

Sau đó, trong tập lệnh đường ống, bạn chỉ định nhãn mà công việc chạy trên:

Đường ống khai báo:

pipeline {
    agent {label 'slave'}
    stages {
        ...
    }
}

Đường ống dẫn kịch bản:

node (label: 'slave') {
    ...
}

Công việc này bây giờ sẽ chạy trên bất kỳ nút nào có nhãn 'nô lệ'. Nếu bạn chỉ muốn công việc chạy trên nô lệ cụ thể này, đừng sử dụng lại nhãn. Và dĩ nhiên, nhãn hiệu không phải là 'nô lệ'; nó có thể là bất cứ điều gì bạn muốn

Cập nhật:

Trong đường dẫn kịch bản, nếu nút của bạn được đặt tên là "Nút của tôi", bạn cũng có thể làm điều này:

node ('My Node') {
    ...
}

Nếu bạn chỉ muốn khối mã chạy trên nút cụ thể đó, thì điều này rất hữu ích. Tuy nhiên, sử dụng nhãn linh hoạt hơn và có thể giúp dễ dàng thêm các nút để chia sẻ khối lượng công việc.


Điều này rất khó tìm, tài liệu cho cú pháp theo kịch bản đang chết dần để ủng hộ khai báo, tôi chưa thể di chuyển được nên cảm ơn bạn!
Mitchell Currie

7

Nếu bạn muốn sử dụng Node / Label làm tham số thì hãy cài đặt Plugin NodeLabel Parameter


Lưu ý rằng nếu chọn tham số "Nút" cho công việc và bạn muốn gọi nó từ Groovy thì bạn cần tạo một tham số đặc biệt: params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);(thay vì thông thường StringParameterValue).
Nux
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.