2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Buat server cloud Anda sendiri yang andal
Langkah 1: Perangkat Keras
- Gunakan kotak logam dan cat dengan warna favorit Anda. (Saya menggunakan pengontrol penyimpanan lama)
- Pelat warna hobi yang tahan terhadap setidaknya 75 C
- Raspberry pi 3
- Kartu Micro SD (Saya menggunakan 16GB tetapi Anda dapat menggunakan ukuran apa pun>= 4GB)
- Hub USB dengan colokan listrik eksternal
- Adaptor usb ke sata
- Disk drive
- Kabel jaringan + soket dinding jaringan
- Kabel + jack input daya
- Baut pulih dari port serial atau vga komputer lama
- Port usb dipulihkan dari komputer lama
Raspberry pi terpasang pada pelat hobbycolor dengan baut dari port vga.
Disk terpasang dengan baut biasa di bagian belakang.
Langkah 2: Pengkabelan
Soket input daya terhubung ke kedua port usb yang dipulihkan
Usb pertama (di belakang semua kabel di kiri depan) digunakan sebagai sumber listrik, hanya kabel merah dan hitam yang digunakan dan dihubungkan ke jack input daya. Kabel usb pertama di port ini menyediakan daya untuk pi, kabel usb kedua menyediakan daya ke hub USB.
Usb kedua (yang di belakang - berguna untuk menghubungkan perangkat tambahan) memiliki warna merah dan hitam yang terhubung langsung ke input daya, sedangkan warna putih dan hijau dari setiap port terhubung ke kabel usb yang diambil dari beberapa mouse lama (yang putih langsung terhubung ke pi)
Kabel Lan menghubungkan soket dinding jaringan eksternal ke port LAN raspberry pi
Disk terhubung melalui adaptor usb ke sata ke hub USB bertenaga eksternal (disk berkapasitas lebih besar membutuhkan lebih banyak daya dan kami tidak ingin membuat pi tidak stabil), yang terhubung di salah satu port pi
Langkah 3: Perangkat Lunak
Instal Sistem Operasi
Gunakan Centos 7 untuk lengan untuk keamanan yang lebih tinggi. (https://mirror.centos.org/altarch/7/isos/armhfp/); diuji: CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz, tutorial di sini:
Letakkan gambar di kartu micro sd dari komputer Linux Anda (untuk windows periksa:
xzcat CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz | Sudo dd of=$/path/to/sd/card status=progress bs=4M
kata sandi root: centos
gunakan nmtui untuk mengonfigurasi jaringan dan menetapkan alamat ip statis
Siapkan disk
Buat satu partisi pada setiap disk (lebih baik sedikit lebih kecil dari seluruh disk - katakanlah 1GB lebih kecil - disk berbeda dengan kapasitas yang sama - mis: wd vs toshiba - memiliki ukuran berbeda:)). Dengan cara ini Anda akan aman jika Anda perlu mengganti salah satu disk
Buat sistem file btrfs raid 1 di disk Anda
mkfs.btrfs -d raid1 -m raid1 /dev/sda1 /dev/sdb1
label sistem file btrfs /dev/sda1 rpi3
Pasang sistem file menggunakan autofs (mencegah pi tidak dapat di-boot jika ada yang salah dengan disk)
yum install -y autofs
tambahkan aliran ke /etc/auto.master:
// /etc/auto.ext-usb --timeout=300
Buat /etc/auto.ext-usb dengan konten:
/srv -fstype=auto, kompres=lzo, noatime:/dev/disk/by-label/rpi3
autofs layanan restart
ls /srv, df -h, pastikan sudah terpasang
Instal owncloud
Prasyarat (apache, php, mariadb):
yum install -y httpd;yum install -y mod_ssl; yum install -y mariadb-server; yum instal -y php*
Instal owncloud 9 yang kompatibel dengan php54 yang disertakan dengan centos7, tutorial yang bagus untuk itu:
download.owncloud.org/download/repositories…
Setelah owncloud aktif dan berjalan, pindahkan direktori data dari lokasi default ke drive baru (/ srv)
layanan httpd berhenti
edit /var/www/html/owncloud/config/config.php dan buat perubahan ini:
'datadirectory' => '/srv/owncloud/data', mkdir /srv/owncloud; mv /var/www/html/owncloud/data /srv/owncloud && chown -R apache:apache /srv/owncloud/data/
layanan httpd mulai
Anda dapat menginstal klien desktop owncloud di linux / windows dan untuk ponsel saya menggunakan foldersync
-
Aktifkan dan konfigurasikan SELinux
(versi yang berfungsi adalah: selinux-policy-3.13.1-166.el7.5.noarch, selinux-policy-targeted-3.13.1-166.el7.5.noarch)
pastikan Anda tidak memperbarui kebijakan itu (di /etc/yum.conf tambahkan: kecualikan = selinux-policy*)
restorecon -Rv /
/boot/cmdline.txt harus berisi: selinux=1 security=selinux enforcing=1
/etc/sysconfig/selinux harus berisi: SELINUX=enforcing dan SELINUXTYPE=targeted
menyalakan ulang
Lakukan pengaturan berikut setelah reboot:
yum install -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
jika Anda mengalami masalah, masukkan kartu sd ke komputer lain dan ubah cmdline.txt menjadi: selinux=0
Amankan kotak Anda
Ubah kata sandi root
Buat diri Anda pengguna (adduser -s /bin/bash "me") dan tetapkan kata sandi yang kuat (passwd "me")
konfigurasikan sshd untuk mendengarkan di port lain dan JANGAN izinkan login root
Di /etc/ssh/sshd_config, atur Port
(katakanlah 2222), PermitRootLogin no
Beri tahu SELinux dan firewalld tentang niat Anda:
semanage port -a -t ssh_port_t -p tcp 2222
service firewalld start && systemctl aktifkan firewalld.service
firewall-cmd --permanen --add-port 2222/tcp
firewall-cmd --muat ulang
layanan sshd restart
Publikasikan
Di router internet Anda, teruskan port ini ke ip statis Anda yang diatur pada langkah pertama: 80, 443, 2222.
Atur DDNS di router Anda sehingga Anda dapat mengakses kotak Anda dari mana saja.
Mencari setelan
Setel Apache ke 5 procs karena memori rendah:
/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
StartServer 5
Server MinSpare 5
MaxSpareServers 5
Batas Server 5
Klien Maks 5
MaxRequestsPerChild 3000
layanan httpd restart
Atur cron untuk menggosok disk setiap minggu dan membuat snapshot setiap malam (di /etc/crontab)
01 02 * * 6 root btrfs scrub start /srv01 01 * * * root /usr/sbin/btrfs subvolume snapshot -r /srv /srv/@$(printf "\%s" $(/bin/date +\%d \%b\%Y-\%k-\%M))
periksa volume dari waktu ke waktu dengan: btrfs dev stats /srv
Gunakan pengawas untuk mengatur ulang secara otomatis jika menjadi tidak responsif (raspberry pi3 memiliki perangkat keras):
yum install -y watchdog
/etc/watchdog.conf
watchdog-device = /dev/watchdogwatchdog-timeout = 15
interval = 1logtick = 1 log-dir = /var/log/watchdog
waktu nyata = yaprioritas = 1
service watchdog start && systemctl aktifkan watchdog.service