ฉันจะเรียกใช้ Juju บนเซิร์ฟเวอร์ภายในได้อย่างไร


16

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

หมายเหตุ: เซิร์ฟเวอร์ของฉันมีอยู่แล้วและกำลังทำงาน 12.04 ฉันไม่ต้องการติดตั้งใหม่โดยใช้ maas เพียงเพื่อให้ juju ทำงานได้ ฉันไม่ต้องการเรียกใช้ "ในคลาวด์" บน ec2 หรือผู้ให้บริการอื่น ๆ เพราะฉันต้องการลองใช้กับเครื่องของฉันภายใต้การควบคุมของฉันบนเครือข่ายของฉัน

แก้ไข: -

  • ไม่มีไฟร์วอลล์
  • ไม่มีการปิดกั้นพอร์ตทั้งหมดเปิด
  • ใช่. คอมพิวเตอร์ทุกเครื่องบน LAN (192.168.1.0/24) สามารถดูเซิร์ฟเวอร์ (homeserver.local) บน 192.168.1.2
  • สายสวยและ wifi มาตรฐานพร้อมเซิร์ฟเวอร์ DHCP หนึ่งที่กำหนดที่อยู่ IP ในช่วงด้านบน
  • การตั้งค่าอย่างถูกต้อง (เพิ่งเริ่มต้นใหม่จากศูนย์) แล้วติดตามการสอน Luis นำฉันไปที่นี่คือผลลัพธ์: - http://paste.ubuntu.com/5714640/
  • สถานะ juju แสดงให้เห็นข้างต้น

ดังนั้นทุกการทำงานก็โอเค แต่ปัญหาหลักคือคอนเทนเนอร์มีที่อยู่ IP ที่กำหนดไว้ในเซิร์ฟเวอร์ซึ่งสามารถเข้าถึงได้บนเซิร์ฟเวอร์เท่านั้น ในขณะที่ฉันสามารถตั้งค่าพอร์ต ssh เพื่อส่งต่อไปยังสถานที่ต่างๆเพื่อเข้าถึงที่อยู่ IP 10.x จากช่วง 192.168.1.0/24 ดูเหมือนว่าจะซับซ้อนและไม่จำเป็น ฉันต้องการให้ภาชนะบรรจุที่เปิดผ่าน LAN ของฉัน


จุดเชื่อมโยงไป Pastebin โปรแกรม C ++ ...
rigved

1
มันแปลกมาก!
popey

คำตอบ:


11

ตกลงแก้ไข!

ตั้งค่า bridged network br0 ใน / etc / network / interfaces

auto eth1
iface eth1 inet manual

auto br0
iface br0 inet static
bridge_ports eth1
address 192.168.1.2
broadcast 192.168.1.255
netmask 255.255.255.0
gateway 192.168.1.1
bridge_stp off
bridge_fd 0
bridge_maxwait 0

แก้ไข /etc/lxc/lxc.conf และตั้ง lxc.network.link = br0

lxc.network.type=veth
lxc.network.link=br0
lxc.network.flags=up

แก้ไข / etc / default / lxc และตั้งค่า LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE และ LXC_DHCP_MAX ที่เหมาะสมสำหรับสถานะ LAN ของฉัน (192.168.1.0/24) พวกเขาผ่าน LAN จากเครื่องอื่น

LXC_BRIDGE="br0"
LXC_ADDR="192.168.1.2"
LXC_NETMASK="255.255.255.0"
LXC_NETWORK="192.168.1.0/24"
LXC_DHCP_RANGE="192.168.1.50,192.168.1.99"
LXC_DHCP_MAX="49"

นอกจากนี้คุณยังจะต้องเปลี่ยนการตั้งค่า "สะพานเครือข่าย" ของผู้ให้บริการท้องถิ่นในสภาพแวดล้อมของคุณ yaml มิฉะนั้น juju จะพยายามใช้ค่าเริ่มต้น "lxcbr0"
ลดลง

5

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

ฉันยังคาดเดาการกวดวิชาที่คุณกำลังพูดถึงเป็นหนึ่งในนี้

จากนั้นฉันจะจินตนาการว่าถ้าคุณต้องการให้บริการสำหรับคอมพิวเตอร์เครื่องอื่นคุณจะทำสิ่งนี้:

juju expose SERVICE

ใช้วิธีการติดตั้ง Hadoop เป็นตัวอย่างฉันจะ:

juju expose hadoop-master

Juju Expose - https://jujucharms.com/docs/stable/charms-exposing

juju status SERVICE ยังช่วยในการหาวิธีการทำงานของบริการ

แน่นอนมีสองสิ่งที่ฉันต้องรู้เกี่ยวกับเครือข่ายและเซิร์ฟเวอร์เช่น:

  • เซิร์ฟเวอร์มีการตั้งค่าไฟร์วอลล์ (iptables, ufw ... ) หรือไม่
  • เครือข่ายมีเราเตอร์ที่กำหนดค่าให้ทำสิ่งที่เกี่ยวข้องกับการบล็อกการส่งต่อหรือไม่และจะสร้างปัญหาในการพยายามเข้าถึงเซิร์ฟเวอร์หรือไม่?
  • คอมพิวเตอร์ที่อยู่บน LAN เห็นเซิร์ฟเวอร์หรือไม่
  • มีการเชื่อมต่อพิเศษที่ไม่ธรรมดา (ไร้สายหรือแบบใช้สาย) หรือความปลอดภัยที่ใช้ซึ่งอาจสร้างปัญหากับไคลเอนต์และเซิร์ฟเวอร์หรือไม่?
  • ทุกขั้นตอนในการตั้งค่า Juju ทำได้อย่างถูกต้อง (ตามที่ระบุในบทเรียนที่กล่าวถึงโดยเฉพาะส่วนenvironments.yamlที่ฉันมักจะลืมหรือทำผิด)
  • ไม่juju statusทำให้คุณเข้าใจในสิ่งที่ปัญหาอาจจะบางอย่าง?
  • คุณมีหลายสภาพแวดล้อมในenvironments.yamlไฟล์หรือไม่?

ในกรณีที่บริการไม่ปรากฏภายนอกเนื่องจาก LXC ให้ทำดังต่อไปนี้ (จัดทำโดยคำตอบที่ป๊อปกี้ให้และการวิจัยจำนวนมาก):

  • ตั้งค่า bridged network br0 ใน / etc / network / interfaces
  • แก้ไข/etc/lxc/lxc.confและตั้งค่าlxc.network.link=br0
  • แก้ไข/etc/default/lxcและตั้งค่า LXC_BRIDGE, LXC_ADDR, LXC_NETMASK, LXC_NETWORK, LXC_DHCP_RANGE & LXC_DHCP_MAX ให้เหมาะสมกับการตั้งค่าประเภท LAN (192.168.1.0/24)

    ตอนนี้juju statusควรแสดงที่อยู่ 192.168.1.0/24 สำหรับหน่วยของฉันและสามารถเข้าถึง LAN ได้จากเครื่องอื่น


1
อย่างไรก็ตามถ้าฉันไปที่เซิร์ฟเวอร์และเรียกใช้ "lynx 10.0.3.234" ฉันจะได้รับหน้า wordpress ดังนั้นคอนเทนเนอร์ lxc จึงเปิดใช้งานและติดตั้ง wordpress เรียบร้อยแล้วและพร้อมใช้งานบนพอร์ต 80 ใน 10.0.3.234 แต่มองเห็นได้เฉพาะภายในเซิร์ฟเวอร์เท่านั้น ความคิดของฉันคือการปรับใช้ juju ในพื้นที่นั้นได้รับการปรับให้เหมาะกับนักพัฒนาที่พกพาสิ่งนี้บนแล็ปท็อปไม่ใช่เครื่องแยกต่างหาก
popey
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.