2013-03-18 30 views
20

Gần đây tôi đã thừa kế một dự án Java do Jenkins điều khiển, nơi nhà phát triển chính chỉ tăng cường và thoát. Ông đã triển khai WAR Jenkins cho một cá thể Tomcat trên một máy chủ ảo, và đó là những gì được coi là "máy chủ xây dựng".Cách thiết lập nô lệ Jenkins mới

Máy chủ xây dựng này có nô lệ được định cấu hình để xây dựng và triển khai thành myserver.example.com, một máy chủ ảo khác. Cuối tuần qua, các nhân viên hệ thống hưu các máy chủ vật lý rằng myserver.example.com ảo sống vào, tạo ra các ngoại lệ sau đây đối với bất kỳ công việc Jenkins cấu hình để triển khai đến nô lệ rằng:

enter image description here

Khi tôi bấm vào "Xem đăng nhập để biết thêm chi tiết "liên kết tôi thấy giao diện điều khiển đầu ra sau đây:

[03/18/13 08:13:31] [SSH] Opening SSH connection to myserver.example.com:22. 
java.io.IOException: There was a problem while connecting to myserver.example.com:22 
    at com.trilead.ssh2.Connection.connect(Connection.java:755) 
    at com.trilead.ssh2.Connection.connect(Connection.java:546) 
    at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:650) 
    at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:283) 
    at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:200) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: java.net.NoRouteToHostException: No route to host 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) 
    at java.net.Socket.connect(Socket.java:529) 
    at com.trilead.ssh2.transport.TransportManager.establishConnection(TransportManager.java:342) 
    at com.trilead.ssh2.transport.TransportManager.initialize(TransportManager.java:450) 
    at com.trilead.ssh2.Connection.connect(Connection.java:699) 
... 9 more 
[03/18/13 08:13:34] [SSH] Connection closed. 

này có ý nghĩa, vì nô lệ (các myserver.example.com ảo) là ẩn. Tuy nhiên, không có kinh nghiệm thực sự trước đây với Jenkins, tôi không chắc chắn về những bước thích hợp để cấu hình trình chủ Jenkins để xây dựng/triển khai các công việc này cho một nô lệ mới, và cách thiết lập nô lệ mới. Ví dụ, tôi có cần phải cài đặt bất cứ điều gì trên nô lệ mới, hoặc làm bất kỳ loại thiết lập/cấu hình? Cảm ơn trước!

Trả lời

33

Thêm một nô lệ trong Jenkins khá đơn giản. Về cơ bản, nếu bạn đang sử dụng một nô lệ unix, bạn cần truy cập SSH vào máy. Bạn cũng cần phải cài đặt plugin Jenkins SSH Slaves. Khi bạn có điều đó, hãy chuyển đến tùy chọn Quản lý Jenkins trên Chủ của mình và chọn Quản lý các nút.

Các bước thực hiện sau đó:

  1. Bấm Node mới
  2. Chọn Dumb Slave và cung cấp cho nó một cái tên (tượng trưng, ​​không cần phải là tên miền, mà đến sau)
  3. Nhấp vào OK và tiếp tục đến trang cấu hình
  4. Điền vào số # số người thi hành với số lượng quy trình đồng thời bạn muốn để chạy trên nút đó (thường là không được lớn hơn số lượng được phân bổ lõi CPU)
  5. Fill trong từ xa FS gốc với đường dẫn đầy đủ đến nơi bạn muốn Jenkins để lưu trữ các file làm việc của nó
  6. Tùy chọn thêm Nhãn nếu bạn đang sử dụng chúng trong hệ thống của mình (không cần thiết trong nhiều trường hợp, nhưng các Dự án của bạn có thể yêu cầu các nút có một số nhãn nhất định nằm trong nhóm người thực hiện công việc cụ thể)
  7. Chọn Khởi chạy tác nhân phụ trên máy Unix qua SSHPhương thức khởi chạy (nếu chưa được chọn)
  8. Đặt tên miền đầy đủ điều kiện trong chủ lĩnh vực mà xuất hiện dưới Launch Phương pháp dòng

Có một số giả định về công cụ được cài đặt trên các nô lệ.Nếu bạn có các công cụ chuyên biệt, bạn có thể cần phải cài đặt chúng một cách riêng biệt (hoặc xem các plugin xử lý các công cụ di chuyển ngay trước khi thực hiện). Tuy nhiên, nếu các nút của bạn được xây dựng từ một mẫu có tất cả các công cụ xây dựng của bạn trên chúng (java, kiến, v.v. trong trường hợp của bạn), thì đây sẽ là tất cả những gì bạn cần làm để làm mọi thứ.

+1

@TheTerribleSwiftTomato Cảm ơn lời nhắc về plugin. – gaige

+0

Tôi đã triển khai tập tin jenkins.war trên tomcat chạy trên máy linux của tôi. Tôi cần thiết để thiết lập nô lệ trên máy Windows.Nhưng tôi không thể làm như vậy. Cửa sổ Slave Jenkins trên chương trình nô lệ cố gắng kết nối nhưng không được kết nối.Xin vui lòng giúp những gì chính xác tôi cần phải làm trong bước 7 được đề cập ở trên –

+0

Tôi đã cố gắng chạy jenkins.war mà không tomcat và nó đã có thể thiết lập nô lệ trên cửa sổ máy. Nhưng tôi cần phải có jenkins để chạy trên Tomcat.Xin vui lòng giúp –

0

Tôi gặp phải vấn đề tương tự như bạn đã làm, trong trường hợp của tôi điều này là do tôi chưa cài đặt máy chủ ssh trên Ubuntu.

Các vấn đề liên quan