Artifactory: การแปลง repo ระยะไกลเป็น repo ในพื้นที่

นายจ้างของฉันใช้ Bintray เป็นแหล่งเก็บข้อมูลไบนารีของเราในทางที่ผิดมาระยะหนึ่งแล้ว ในที่สุดเราก็ย้ายไปที่ Artifactory แทนและปิด Bintray แต่นี่ดูเหมือนจะเป็นงานที่แทบจะเป็นไปไม่ได้เลย ไม่มีวิธีส่งออก repos ของ Bintray ไปยังไฟล์ zip การดาวน์โหลด repos หมายถึงการดาวน์โหลดไฟล์แต่ละไฟล์ด้วยตนเองจาก UI หรือผ่าน API ฉันได้ลองสองวิธีสำหรับการทำงานอัตโนมัติ:

1) wget สำหรับการรวบรวมข้อมูล bintray ของเราเช่นนี้: wget -e robots=off -o ~/wget.log -w 1 -m -np --user --password "https://.bintray.com" ซึ่งให้ผลลัพธ์ทั้งหมด ไฟล์ใน repos แต่นี่จะช่วยแก้ปัญหาได้เพียงครึ่งเดียวเท่านั้น ฉันไม่ทราบวิธีนำเข้าไฟล์ไปยังที่เก็บใน artifactory (ที่เก็บทั้งหมดมีขนาดเกิน 100mbs ต่อไฟล์ จึงไม่สามารถอัปโหลดได้ด้วยเหตุผลบางประการ)

2) ฉันตั้งค่า Bintray repos เป็นที่เก็บข้อมูลระยะไกลและเปิดใช้งาน Active Replication ดูเหมือนว่าจะได้ผลในตอนนี้ แต่ฉันไม่รู้ว่ามันจะถูกลบออกเมื่อมีการย้ายบัญชี Bintray หรือแม้ว่าจะเก็บไว้ใน Artifactory ก็ตาม ดังนั้นฉันต้องการแปลง repo ระยะไกลเป็น repo ในพื้นที่เพื่อให้แน่ใจว่ามันถูกเก็บไว้อย่างถาวรในโรงงานประดิษฐ์ มีวิธีการทำเช่นนี้หรือไม่? ถ้าเป็นเช่นนั้นอย่างไร?


person kschnack    schedule 30.06.2017    source แหล่งที่มา


คำตอบ (1)


ฉันจะพยายามตอบคำถามของคุณทั้งสองด้านล่าง

  1. คุณหมายถึงอะไรคุณไม่สามารถอัปโหลดเกิน 100mb ได้? คุณใช้ Artifactory เวอร์ชันใดอยู่ การติดตั้งภายในองค์กรหรือ SaaS? คุณพยายามอัปโหลดไฟล์ของคุณไปยัง Artifactory อย่างไร คุณได้ลองนำเข้าเนื้อหาโดยใช้คุณสมบัติการนำเข้าของ Artifactory แล้วหรือยัง? (ผู้ดูแลระบบ --> นำเข้า&ส่งออก --> การนำเข้าพื้นที่เก็บข้อมูล) ดูเหมือนว่าคุณกำลังใช้ UI สำหรับการอัปโหลด และหากเป็นเช่นนั้น คุณสามารถกำหนดค่าขนาดการอัปโหลดสูงสุดได้ในผู้ดูแลระบบ --> หน้าการกำหนดค่าทั่วไป
  2. หากคุณหมายความว่าคุณมีเนื้อหาทั้งหมดจาก Bintray แคชอยู่ในแคชพื้นที่เก็บข้อมูลระยะไกลของคุณใน Artifactory เพียงใช้ตัวเลือก "คัดลอก" หรือ "ย้าย" และย้ายเนื้อหาไปยังพื้นที่เก็บข้อมูลในเครื่อง สิ่งนี้จะช่วยให้มั่นใจได้ว่าเนื้อหาทั้งหมดจะถูกจัดเก็บไว้ในเครื่อง
person Ariel    schedule 02.07.2017
comment
เพื่อชี้แจงให้ชัดเจนว่าการดำเนินการคัดลอก/ย้ายเป็นการคัดลอก/ย้ายราคาถูก เนื่องจากไม่มีการถ่ายโอนเนื้อหาจริง แต่มีเพียงตัวชี้ในฐานข้อมูลเท่านั้น ในการคัดลอก/ย้ายเนื้อหา เพียงเรียกดูเบราว์เซอร์แบบต้นไม้ใน Artifactory UI และคลิกขวาที่ Remote-repository-cache --> Copy/Move - person Ariel; 02.07.2017
comment
ซึ่งหมายความว่าเมื่อคุณมี repo ระยะไกล และคุณพยายามย้ายไปยัง repo ในพื้นที่ ว่าจะย้ายเฉพาะเนื้อหาที่อยู่ในแคชของ repo ระยะไกลเท่านั้น (ดูเหมือนเป็นเรื่องปกติสำหรับฉันแต่ไม่แน่ใจ) - person lvthillo; 18.09.2017
comment
แน่นอนว่า Artifactory ไม่สามารถย้ายเนื้อหาที่ไม่มีได้ ดังนั้นมันจะย้ายเฉพาะสิ่งประดิษฐ์ที่แคชไว้เท่านั้น - person Ariel; 18.09.2017
comment
ขอบคุณ เรามี Artifactory OSS และ Artifactory PRO เราจำเป็นต้องย้าย repo ในเครื่องจาก oss แต่เราไม่สามารถส่ง repo ในเครื่องไปยัง repo ในเครื่องบน PRO Artifactory ของเราได้ เนื่องจากเป็น OSS (ไม่มีฟีเจอร์นั้น) เราสามารถดึงได้ (บน PRO) เท่านั้น แต่เป็นไปได้สำหรับที่เก็บข้อมูลระยะไกลเท่านั้น ดังนั้นจึงเป็นไปไม่ได้ที่จะใช้โซลูชันนั้น และหลังจากนั้นก็ย้ายพื้นที่เก็บข้อมูลระยะไกลของเราบน Artifactory PRO ไปยังพื้นที่เก็บข้อมูลในเครื่อง - person lvthillo; 18.09.2017
comment
ฉันรู้คุณสมบัติการนำเข้า / ส่งออก แต่จำเป็นต้องซิงค์ repo จนกว่าการโยกย้ายงานเจนกินส์บางส่วนจะเสร็จสิ้นเช่นกัน - person lvthillo; 18.09.2017
comment
คุณสามารถใช้ตัวเลือกการสำรองข้อมูลส่วนเพิ่มและนำเข้าเฉพาะพื้นที่เก็บข้อมูลที่เปลี่ยนแปลงไปยังอินสแตนซ์ใหม่ได้ หมายถึง รันกระบวนการสำรองข้อมูลด้วยตัวเลือกส่วนเพิ่ม เมื่อเสร็จแล้ว ให้นำเข้าข้อมูลไปยังอินสแตนซ์ใหม่ หลังจากการนำเข้าทั้งหมดเสร็จสิ้น ให้เรียกใช้ส่วนเพิ่มอีกครั้ง และนำเข้าพื้นที่เก็บข้อมูลที่เปลี่ยนแปลง นั่นสมเหตุสมผลไหม? - person Ariel; 18.09.2017
comment
@Ariels ขอบคุณฉันเห็นแล้วว่ามันไม่ใช่คุณสมบัติการนำเข้า / ส่งออกจริง แต่เป็นการสำรองข้อมูลจริงๆ ฉันมีที่เก็บข้อมูลขนาดใหญ่หนึ่งแห่งซึ่งมี repo หลายอันจริงๆ อาจไม่ใช่แนวทางที่ถูกต้องจริงๆ แต่นี่หมายความว่าครั้งแรกที่มีการสำรองข้อมูล repo ทั้งหมดและครั้งที่สองเฉพาะแพ็คเกจใหม่ซึ่งขณะนี้อยู่ใน repo นั้น โดยอัตโนมัติหรือทำงานเฉพาะในระดับพื้นที่เก็บข้อมูลเท่านั้น - person lvthillo; 19.09.2017
comment
สิ่งที่เราจะมีคือ: หนึ่ง repo ที่มีโฟลเดอร์ย่อยและแพ็คเกจ 100 รายการ เราจะย้าย repo นั้น ปรับงาน jenkins สำหรับ 5 ใน 100 โฟลเดอร์ย่อย ดังนั้น 5 ในนั้นจะมีแพ็คเกจใหม่ ส่วนงานอื่นๆ ยังคงสร้างบน repo เก่า กว่าที่เราจะย้ายสถานะปัจจุบันของแพ็คเกจอื่น ๆ อีก 5 รายการและปรับงาน Jenkins บางงานอีกครั้งเพื่อปรับใช้กับ repo ใหม่นี้แทนที่จะเป็นงานเก่า ดังนั้นเราจึงจำเป็นต้องมีการนำเข้าใหม่ที่เพิ่มขึ้น + เก็บแพ็คเกจใหม่ที่สร้างขึ้นบน repo ใหม่ - person lvthillo; 19.09.2017
comment
ใช่. นั่นคือสิ่งที่หมายถึงส่วนเพิ่ม หากวิธีนี้ช่วยแก้ปัญหาของคุณได้ ให้พิจารณาทำเครื่องหมายคำตอบว่าเป็นคำตอบที่ถูกต้อง เพื่อที่คนอื่นจะได้รู้ว่าคำตอบนั้นเหมาะกับคุณ - person Ariel; 19.09.2017
comment
ฉันได้สร้างสถานการณ์นี้ขึ้นมาใหม่ ปัญหาเดียวคือ: ฉันปรับใช้อาร์ติแฟกต์ที่มีอยู่ใน Artifactory ใหม่ของเราอีกครั้ง เมื่อฉันนำเข้าข้อมูลสำรองส่วนเพิ่มจากอันเก่าใน Artifactory ใหม่ของฉัน มันจะเขียนทับส่วนที่ถูกปรับใช้ใหม่นี้กลับไปยังเนื้อหาจาก Artifactory เก่าของเรา ดูเหมือนว่าจะไม่ได้ตรวจสอบเช็คซัม แต่ตรวจสอบเฉพาะชื่อไฟล์เท่านั้น (ตัวอย่าง: เนื้อหาใหม่สำหรับ text1.txt บน Artifactory แต่ไฟล์นี้มีอยู่กับเนื้อหาอื่นใน Artifactory เก่า การดำเนินการนำเข้าใหม่ = เนื้อหาเก่าของ text1.txt กลับมาใน Artifactory ใหม่ของเรา - ผลรวมตรวจสอบแตกต่างออกไป) - person lvthillo; 27.09.2017