บอกเจนกินส์ให้ทำโครงการเฉพาะในโหนดบ่าว


87

ฉันจะบอกเจนกินส์ให้ทำโครงการเฉพาะกับทาสคนหนึ่งได้อย่างไร

ฉันได้ตั้งค่าโหนดหลักของเจนกินส์และโหนดทาสที่ฉันต้องการใช้สำหรับการแสดงผลแอปพลิเคชัน แต่ฉันไม่สามารถหาวิธีกำหนดค่าโครงการให้ทำงานบนโหนดบ่าวที่ฉันสร้างขึ้นได้


คำตอบ:


84

ตั้งค่าช่องทำเครื่องหมาย "จำกัด ตำแหน่งที่สามารถรันงานนี้" ในการกำหนดค่างานของคุณและระบุชื่อทาสของคุณ

หากคุณเพิ่มทาสมากขึ้นในภายหลังคุณสามารถกำหนดป้ายกำกับสำหรับทาสแต่ละคนและระบุพวกเขาในการกำหนดค่างานของคุณ

ดูเอกสารอ้างอิงนี้:


ขอบคุณ ฉันใช้เวลาซักพักก่อนจะพบคำตอบของคุณ ควรเพิ่มไว้ในหน้านี้wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
Tancharoen

16

หากคุณกำลังใช้งานไปป์ไลน์คุณต้องเพิ่มป้ายกำกับ (เช่น 'ทาส') ไปยังโหนดสลาฟ (หรือเอเจนต์ตามที่ดูเหมือนว่าจะเรียกตอนนี้)

จากนั้นในสคริปต์ไพพ์ไลน์คุณระบุเลเบลที่งานรัน:

ไปป์ไลน์ที่ประกาศ:

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

ไพพ์ไลน์ Scripted:

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

งานนี้จะทำงานบนโหนดใด ๆ ที่มีป้ายกำกับ 'ทาส' หากคุณต้องการให้งานรันเฉพาะทาสคนนี้เท่านั้นอย่าใช้ฉลากซ้ำ และแน่นอนว่าฉลากไม่จำเป็นต้องเป็น 'ทาส' มันอาจเป็นสิ่งที่คุณต้องการ

ปรับปรุง:

ในไพพ์ไลน์สคริปต์หากโหนดของคุณชื่อ "My Node" คุณสามารถทำได้ดังนี้:

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

หากคุณต้องการให้โค้ดบล็อกทำงานบนโหนดเฉพาะนั้นจะมีประโยชน์ อย่างไรก็ตามการใช้เลเบลมีความยืดหยุ่นมากขึ้นและสามารถเพิ่มโหนดเพื่อแบ่งใช้เวิร์กโหลดได้ง่ายขึ้น


นี่เป็นเรื่องยากที่จะหาเอกสารสำหรับไวยากรณ์ของสคริปต์กำลังจะตายเนื่องจากการประกาศฉันยังไม่สามารถโยกย้ายได้ขอบคุณมาก!
Mitchell Currie

7

หากคุณต้องการใช้ Node / Label เป็นพารามิเตอร์ให้ติดตั้งNodeLabel Parameter Plugin


โปรดทราบว่าหากเลือกพารามิเตอร์ "โหนด" สำหรับงานและคุณต้องการโทรจาก Groovy คุณต้องสร้างพารามิเตอร์พิเศษ: params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);(แทนที่จะเป็นแบบปกติStringParameterValue)
Nux
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.