Score:0

เวิร์กโฟลว์สำหรับการจัดการ bash rc ในสภาพแวดล้อมแบบคลาวด์

ธง br

ก่อนหน้านี้ฉันยังไม่ได้แก้ไข bashrc บนเซิร์ฟเวอร์คลาวด์ของฉัน เซิร์ฟเวอร์เปลี่ยนบ่อยเกินไปดูเหมือนว่าจะไม่คุ้มกับความพยายาม ฉันยังไม่ต้องการอัปโหลด bashrc ในเครื่องของฉันไปยังเซิร์ฟเวอร์คลาวด์แต่ละเครื่องเพราะมีสิ่งต่างๆ มากมายใน bashrc ในเครื่องของฉันซึ่งเหมาะสมกับเครื่องในเครื่องของฉันเท่านั้น แต่ฉันมีนามแฝงบางอย่าง ฯลฯ ที่ฉันต้องการมีบนเซิร์ฟเวอร์คลาวด์ทั้งหมดของฉัน มีสองสามวิธีที่ฉันคิดว่าจะจัดการสิ่งนี้ได้:

  1. เขียน bashrc หนึ่งอันสำหรับเซิร์ฟเวอร์คลาวด์ จากนั้นแทนที่ bashrc เริ่มต้นด้วยอันนี้เสมอ ข้อเสีย: หากฉันเริ่มเซิร์ฟเวอร์ด้วยระบบปฏิบัติการอื่นที่มี bashrc อื่น ฉันจะแทนที่เนื้อหาเมื่อฉันอัปโหลด
  2. ฉันสร้างไฟล์แยกต่างหากด้วยชื่อแทน ฯลฯ และอัปโหลดไปยังเซิร์ฟเวอร์ของฉัน จากนั้นเพิ่มบรรทัดต่อท้าย bashrc ที่มีอยู่ซึ่งเป็นแหล่งไฟล์เพิ่มเติมนี้ ข้อเสีย: ความพยายามอีกเล็กน้อย
  3. เพียงคัดลอกวางทุกครั้งที่ฉันเริ่มเซิร์ฟเวอร์ใหม่ ข้อเสีย: ความพยายามมากมาย

ใครมีวิธีแก้ปัญหาหรือคำแนะนำดีๆ ขอบคุณ.

Score:1
ธง cn

นี่คือการตั้งค่าของฉัน (ค่าใช้จ่ายเริ่มต้นสูง ความพยายามต่อเนื่องต่ำ)

  1. สร้าง repo git เพื่อเก็บไฟล์ปรับแต่งของคุณ และเขียนสคริปต์การติดตั้งขนาดเล็กเพื่อติดตั้ง

    ตัวอย่างเช่น คุณอาจโคลน repo ของคุณเข้าไป ~/src/my_config และสคริปต์การติดตั้งจะเขียนทับ (หรือ symlink) ~/.bashrc ถึง ~/src/my_config/.bashrc

    สิ่งนี้ทำให้การทำงานในสภาพแวดล้อมใหม่ค่อนข้างง่าย คุณแค่ต้องทำ

    คอมไพล์โคลน $repo_url
    ./my_config/install.sh
    

    นั่นไม่เป็นความจริงอย่างเคร่งครัด: ในเครื่องระยะไกลคุณจะต้องทำเช่นกัน ssh-keygen และเพิ่มรหัสสาธารณะใหม่ในบัญชีของคุณที่โฮสต์ git

  2. สร้าง ~/.bash.d ไดเรกทอรี เพิ่มสิ่งนี้ใน .bashrc ของคุณ

    สำหรับไฟล์ใน ~/.bash.d/*.bash; ทำ
        ถ้า [[ -r "$file" ]]; แล้ว
            . "$ไฟล์"
        ไฟ
    เสร็จแล้ว
    

    สิ่งนี้ช่วยให้คุณใส่สิ่งต่าง ๆ เช่นการกำหนดพรอมต์ของคุณเป็นไฟล์แยกต่างหาก: ~/.bash.d/prompt.bash. ฉันชอบสิ่งนี้เพื่อทำให้ .bashrc ของฉันมีขนาดเล็กลง เนื่องจากฉันใช้ฟังก์ชันมากมายในเชลล์โต้ตอบของฉัน

  3. สำหรับแต่ละสภาพแวดล้อม ให้สร้าง ~/.bash.d/$(ชื่อโฮสต์) ไดเรกทอรี เพิ่มสิ่งนี้ใน .bashrc ของคุณ

    สำหรับไฟล์ใน ~/.bash.d/$(ชื่อโฮสต์)/*.bash; ทำ
        ถ้า [[ -r "$file" ]]; แล้ว
            . "$ไฟล์"
        ไฟ
    เสร็จแล้ว
    

    ทุกสิ่งที่อยู่ในเครื่องเฉพาะอย่างเคร่งครัดสามารถแยกออกจากกันได้

    Symlinks ทำงานได้ดีที่นี่: หากเซิร์ฟเวอร์ AWS ทั้งหมดของคุณใช้การตั้งค่าเดียวกัน คุณสามารถสร้างได้ ~/.bash.d/AWS และเชื่อมโยงชื่อโฮสต์เฉพาะทั้งหมดเข้าด้วยกัน

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


โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา