ฉันพยายามติดตั้ง gitlab (6.5.1) บนเซิร์ฟเวอร์ใหม่ที่สะอาด ทุกอย่างดูเหมือนจะใช้งานได้ แต่คอมไพล์ไม่สามารถผลักดันไปยังโครงการใด ๆ ทำตามคำสั่งจากหน้าโครงการที่สร้างขึ้นใหม่และผลักดันไปยังระยะไกลผ่านทาง ssh ให้:
$ git push -u origin master
fatal: Could not read from remote repository.
Please make sure you have the correct access
rights and the repository exists.
นี่ดูเหมือนจะเป็นปัญหาที่พบบ่อยพอสมควร น่าเสียดายที่ดูเหมือนจะมีสาเหตุที่เป็นไปได้จำนวนมากและดูเหมือนว่าจะไม่มีสาเหตุใดที่ตรงกัน จากปัญหา 3424 กับรีลีสเก่าและแหล่งอื่น ๆ ออนไลน์ฉันได้เห็นและตรวจสอบคำแนะนำต่อไปนี้:
ปุ่ม ssh ที่เหลือ
นี่คือการตั้งค่าใหม่ทั้งหมดโดยไม่เหลือสิ่งใด รหัสของฉันถูกเพิ่มลงในไฟล์คีย์ที่ได้รับอนุญาตอย่างถูกต้องและเป็นรายการเดียวเท่านั้น
การรัน ssh ด้วยการบันทึกการดีบักจะแสดงข้อผิดพลาดที่เกี่ยวข้องกับ vars environment ของ vars
ฉันทำความสะอาดแล้ว การดีบัก SSH แสดงการเชื่อมต่อที่สำเร็จ ทุกอย่างเกี่ยวกับการจับมือรับรองความถูกต้องเป็นเรื่องปกติแล้วนี่คือจุดสิ้นสุดของเอาต์พุต:
debug1: Sending command: git-receive-pack 'username/reponame.git' debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK
ปัญหากับสภาพแวดล้อม gitlab-shell
ซึ่งแตกต่างจากคนอื่น ๆ ด้วยข้อผิดพลาดเดียวกันข้างต้นสคริปต์ตรวจสอบ gitlab-shell ของฉันคืนค่าสุขภาพที่สะอาด:
% sudo -u gitlab -H ~gitlab/gitlab-shell/bin/check Check GitLab API access: OK Check directories and files: /var/lib/gitlab/repositories: OK /var/lib/gitlab/.ssh/authorized_keys: OK Test redis-cli executable: redis-cli 2.8.5 Send ping to redis server: PONG
รีสตาร์ท {ยูนิคอร์น, sidekiq, redis}
รายงานที่เริ่มต้นบริการใหม่ตั้งแต่หนึ่งบริการขึ้นไปจะเป็นการล้างสิ่งนี้ดูเหมือนจะไม่ใช้ที่นี่ นี่ไม่ใช่ปัญหาต่อเนื่องที่ปล่อย daemon แก้ไข
ธุรกรรมซื้อคืนไม่ได้รับการสร้างขึ้นจริง
แต่มันคือ. ครั้งแรกทุกครั้งที่ repo คอมไพล์เปลือย
~gitlab/repositories/username/reponame.git
จะถูกสร้างขึ้นทุกครั้งและดูเหมือนว่าจะมีสิทธิ์ที่ถูกต้องGitlab-shell ไม่สามารถคุยกับเซิร์ฟเวอร์ API ได้เนื่องจาก A) ปัญหา DNS, B) การเชื่อมต่อ ip / พอร์ต / อินเตอร์เฟสผิด C) ผิด C) ไม่มี / มีเครื่องหมายสแลชต่อท้าย
สคริปต์ตรวจสอบบอกว่าการเข้าถึง API นั้นใช้ได้
ฉันไม่ได้ใช้งาน nginx ดังนั้นปัญหาการเชื่อมโยง IP เริ่มต้นที่เกี่ยวข้องกับสิ่งนั้นคือ n / a
ฉันได้พยายามทั้งสอง
*:8080
และสำหรับฟังค่าใน127.0.0.1:8080
unicorn.yml
นอกเหนือจากนั้นฉันได้ลองทำซ้ำหลาย ๆ ครั้งของ localhost, 127.0.0.1 และชื่อโดเมนที่ผ่านการรับรองอย่างสมบูรณ์ (ซึ่งเป็น DNS ที่สามารถแก้ไขได้ดี) ด้วยและไม่มีเครื่องหมายทับท้าย
shell.yml
เพื่อไม่เกิดประโยชน์ ฉันได้ลองเดินสายนี้โดยตรงไปยังเซิร์ฟเวอร์ยูนิคอร์นที่พอร์ต 8080 แทนที่จะเป็น Apache SSL / พร็อกซีโฮสต์ที่พอร์ต 80 ดูเหมือนจะไม่มีอะไรสร้างความแตกต่างได้เลย ใบรับรองของฉันไม่ได้ลงนามด้วยตนเองและทำงานได้ดีกับเบราว์เซอร์ แต่ฉันได้ลองตั้งค่าself_signed_cert: true
แล้ว ไม่มีอะไรพา ธ git ที่รายงานผิดไปเพิ่มพา ธ ที่ผ่านการรับรองโดยสมบูรณ์จากบ้านผู้ใช้ gitlab
ดูเหมือนว่านี่เป็นข้อเสนอแนะที่ถูกต้องถ้า gitlab-shell ไม่ได้ทำธุรกิจของลิงเพื่อแก้ไขสิ่งนี้ แต่ฉันลองเปลี่ยน
git remote add origin gitlab@server:username/reponame.git
เป็น `` git remote add กำเนิดกำเนิด gitlab @ server: repositories / ชื่อผู้ใช้ / reponame.git ' ข้อผิดพลาดเดียวกัน
สิ่งนี้ดูเหมือนจะเป็นแนวทางของการแก้ปัญหาที่เสนอ แต่ไม่มีใครเห็นว่าถูกต้อง หมายเหตุฉันสามารถกด http ได้ พรอมต์เข้าสู่ระบบยอมรับชื่อผู้ใช้และรหัสผ่าน ldap ของฉันและยอมรับการพุช นี่เป็นปัญหาที่พยายามใช้ SSH เท่านั้น ทดสอบเฉพาะส่วนการเข้าสู่ระบบ ssh ด้วยการssh -T gitlab@server
ทำงานได้ดี
มีอะไรอีกที่ทำให้เกิดข้อผิดพลาดนี้?
เราจะแก้ไขข้อผิดพลาดใน gitlab ได้อย่างไร ดูเหมือนจะไม่มีอะไรเกี่ยวข้อง~gitlab/gitlab-shell/gitlab-shell.log
เลย จะพบข้อความแสดงข้อผิดพลาดเพิ่มเติมได้ที่ไหน