สารบัญ:

Red Box: 3 ขั้นตอน (พร้อมรูปภาพ)
Red Box: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Red Box: 3 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Red Box: 3 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Ep.3 รวมร่างครัมเพ็ท 19 ตัว!!! ในเมืองฟรี All 19 Crumpets in Bob City Free Town!!! Toca Life World 2024, กรกฎาคม
Anonim
กล่องแดง
กล่องแดง

สร้างเซิร์ฟเวอร์คลาวด์ที่เชื่อถือได้ของคุณเอง

ขั้นตอนที่ 1: ฮาร์ดแวร์

ฮาร์ดแวร์
ฮาร์ดแวร์
  • ใช้กล่องโลหะแล้วทาสีด้วยสีที่คุณชื่นชอบ (ฉันใช้ตัวควบคุมการจัดเก็บข้อมูลแบบเก่า)
  • จานสีงานอดิเรกที่ทนต่ออย่างน้อย 75 C
  • ราสเบอร์รี่ pi 3
  • การ์ด Micro SD (ฉันใช้ 16GB แต่คุณสามารถใช้ขนาดใดก็ได้ >= 4GB)
  • ฮับ USB พร้อมแจ็คไฟภายนอก
  • อะแดปเตอร์ USB เป็น sata
  • ดิสก์ไดรฟ์
  • สายเคเบิลเครือข่าย + เต้ารับเครือข่ายที่ผนัง
  • สายไฟ + แจ็คเสียบไฟ
  • กู้คืนสลักเกลียวจากพอร์ตอนุกรมหรือ vga ของคอมพิวเตอร์เครื่องเก่า
  • พอร์ต USB กู้คืนจากคอมพิวเตอร์เครื่องเก่า

Raspberry pi ติดอยู่กับแผ่นงานอดิเรกสีด้วยสลักเกลียวจากพอร์ต vga

ดิสก์ถูกยึดด้วยสลักเกลียวปกติที่ด้านหลัง

ขั้นตอนที่ 2: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ

แจ็คอินพุตไฟเชื่อมต่อกับพอร์ต usb ที่กู้คืนทั้งสองพอร์ต

ใช้ USB ตัวแรก (หลังสายทั้งหมดที่ด้านหน้าซ้าย) เป็นแหล่งพลังงาน ใช้เฉพาะสายสีแดงและสีดำและเชื่อมต่อกับแจ็คอินพุตไฟ สาย USB สายแรกในพอร์ตนี้จ่ายไฟให้กับ pi ส่วนสาย USB สายที่สองจะให้พลังงานแก่ฮับ USB

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

สาย Lan เชื่อมต่อเต้ารับเครือข่ายภายนอกเข้ากับพอร์ต Raspberry pi LAN

ดิสก์เชื่อมต่อผ่านอะแดปเตอร์ usb กับ sata ไปยังฮับ USB ที่ใช้พลังงานจากภายนอก (ดิสก์ที่มีความจุมากขึ้นต้องการพลังงานมากกว่า และเราไม่ต้องการทำให้ pi ไม่เสถียร) ซึ่งเชื่อมต่ออยู่ในพอร์ต pi อันใดอันหนึ่ง

ขั้นตอนที่ 3: ซอฟต์แวร์

ซอฟต์แวร์
ซอฟต์แวร์

ติดตั้งระบบปฏิบัติการ

ใช้ Centos 7 สำหรับแขนเพื่อความปลอดภัยที่สูงขึ้น (https://mirror.centos.org/altarch/7/isos/armhfp/); ทดสอบแล้ว: CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz บทช่วยสอนที่นี่:

วางรูปภาพบนการ์ด micro sd จากคอมพิวเตอร์ Linux ของคุณ (สำหรับ windows ตรวจสอบ:

xzcat CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz | sudo dd of=$/path/to/sd/card status=progress bs=4M

รหัสผ่านรูท: centos

ใช้ nmtui เพื่อกำหนดค่าเครือข่ายและตั้งค่าที่อยู่ IP แบบคงที่

ตั้งค่าดิสก์

สร้างหนึ่งพาร์ติชั่นในแต่ละดิสก์ (ดีกว่าที่จะเล็กกว่าดิสก์ทั้งหมดเล็กน้อย - สมมติว่าเล็กกว่า 1GB - ดิสก์ที่แตกต่างกันที่มีความจุเท่ากัน - เช่น: wd vs toshiba - มีขนาดต่างกัน:)) วิธีนี้คุณจะปลอดภัยหากคุณต้องการเปลี่ยนดิสก์ตัวใดตัวหนึ่ง

สร้างระบบไฟล์ btrfs raid 1 บนดิสก์ของคุณ

mkfs.btrfs -d raid1 -m raid1 /dev/sda1 /dev/sdb1

ป้ายกำกับระบบไฟล์ btrfs /dev/sda1 rpi3

เมานต์ระบบไฟล์โดยใช้ autofs (ป้องกันการบูท pi ไม่ได้หากมีสิ่งผิดปกติกับดิสก์)

yum ติดตั้ง -y autofs

ต่อท้าย fllowing ไปที่ /etc/auto.master:

/- /etc/auto.ext-usb --timeout=300

สร้าง /etc/auto.ext-usb ด้วยเนื้อหา:

/srv -fstype=auto, compress=lzo, noatime:/dev/disk/by-label/rpi3

บริการ autofs เริ่มต้นใหม่

ls /srv, df -h ยืนยันว่าติดตั้งแล้ว

ติดตั้ง owncloud

ข้อกำหนดเบื้องต้น (apache, php, mariadb):

yum ติดตั้ง -y httpd;yum ติดตั้ง -y mod_ssl; yum ติดตั้ง -y เซิร์ฟเวอร์ mariadb; yum ติดตั้ง -y php*

ติดตั้ง owncloud 9 ซึ่งเข้ากันได้กับ php54 ที่มาพร้อมกับ centos7 ซึ่งเป็นบทช่วยสอนที่ดีสำหรับสิ่งนั้น:

download.owncloud.org/download/repositories…

หลังจาก owncloud เปิดใช้งานแล้ว ให้ย้าย data dir จากตำแหน่งเริ่มต้นไปยังไดรฟ์ใหม่ (/srv)

บริการ httpd หยุด

แก้ไข /var/www/html/owncloud/config/config.php และทำการเปลี่ยนแปลงนี้:

'datadirectory' => '/srv/owncloud/data', mkdir /srv/owncloud; mv /var/www/html/owncloud/data /srv/owncloud && chown -R apache:apache /srv/owncloud/data/

บริการ httpd เริ่ม

คุณสามารถติดตั้งไคลเอนต์เดสก์ท็อป owncloud บน linux / windows และสำหรับโทรศัพท์ ฉันใช้ foldersync

  • เปิดใช้งานและกำหนดค่า SELinux

    (เวอร์ชันที่ใช้งานได้คือ: selinux-policy-3.13.1-166.el7.5.noarch, selinux-policy-targeted-3.13.1-166.el7.5.noarch)

ตรวจสอบให้แน่ใจว่าคุณไม่ได้อัปเดตนโยบายนั้น (ใน /etc/yum.conf ผนวก: แยก = selinux-policy*)

คืนค่าคอน -Rv /

/boot/cmdline.txt ควรมี: selinux=1 security=selinux enforcecing=1

/etc/sysconfig/selinux ควรมี: SELINUX=enforcecing และ SELINUXTYPE=targeted

รีบูต

ทำการตั้งค่าต่อไปนี้หลังจากรีบูต:

yum ติดตั้ง -y policycoreutils-python

semange fcontext -a -t httpd_sys_rw_content_t /srv/owncloud(/.*)?

setsebool -P httpd_builtin_scripting=1; setsebool -P httpd_can_network_connect=1; setsebool -P httpd_enable_cgi=1; setsebool -P

หากคุณพบปัญหาใด ๆ ให้ใส่การ์ด sd ลงในคอมพิวเตอร์เครื่องอื่นและแก้ไข cmdline.txt ให้มี: selinux=0

รักษาความปลอดภัยกล่องของคุณ

เปลี่ยนรหัสผ่านรูท

สร้างผู้ใช้ของคุณเอง (adduser -s /bin/bash "me") และตั้งรหัสผ่านที่คาดเดายาก (passwd "me")

กำหนดค่า sshd ให้ฟังบนพอร์ตอื่นและไม่อนุญาตให้รูทล็อกอิน

ใน /etc/ssh/sshd_config ให้ตั้งค่า Port

(สมมติว่า 2222), PermitRootLogin no

บอก SELinux และ firewalld เกี่ยวกับความตั้งใจของคุณ:

จัดการพอร์ต -a -t ssh_port_t -p tcp 2222

บริการ firewalld เริ่ม && systemctl เปิดใช้งาน firewalld.service

firewall-cmd --permanent --add-port 2222/tcp

firewall-cmd --reload

บริการ sshd รีสตาร์ท

ตั้งเป็นสาธารณะ

บนเราเตอร์อินเทอร์เน็ตของคุณส่งต่อพอร์ตนี้ไปยัง ip แบบคงที่ของคุณที่ตั้งไว้ในขั้นตอนแรก: 80, 443, 2222

ตั้งค่า DDNS บนเราเตอร์ของคุณ เพื่อให้คุณสามารถเข้าถึงกล่องของคุณได้จากทุกที่

ปรับจูน

ตั้งค่า apache เป็น 5 procs เนื่องจากหน่วยความจำเหลือน้อย:

/etc/httpd/conf.modules.d/00-mpm.conf

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

StartServers 5

MinSpareServers 5

MaxSpareServers 5

ขีดจำกัดเซิร์ฟเวอร์ 5

MaxClients5

MaxRequestsPerChild 3000

บริการ httpd เริ่มใหม่

ตั้งค่า cron เพื่อขัดดิสก์ทุกสัปดาห์และสร้างสแน็ปช็อตในแต่ละคืน (ใน /etc/crontab)

01 02 * * 6 รูท btrfs สครับเริ่มต้น /srv01 01 * * * root /usr/sbin/btrfs subvolume snapshot -r /srv /srv/@$(printf "\%s" $(/bin/date +\%d \%b\%Y-\%k-\%M))

ตรวจสอบระดับเสียงเป็นครั้งคราวด้วย: btrfs dev stats /srv

ใช้สุนัขเฝ้าบ้านเพื่อรีเซ็ตโดยอัตโนมัติหากไม่ตอบสนอง (ราสเบอร์รี่ pi3 มีฮาร์ดแวร์):

yum ติดตั้ง -y watchdog

/etc/watchdog.conf

อุปกรณ์เฝ้าระวัง = /dev/watchdogwatchdog-timeout = 15

ช่วงเวลา = 1logtick = 1 log-dir = /var/log/watchdog

เรียลไทม์ = yespriority = 1

บริการ watchdog start && systemctl เปิดใช้งาน watchdog.service

แนะนำ: