2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Izradite vlastiti pouzdan cloud server
Korak 1: Hardver
- Upotrijebite metalnu kutiju i obojite je u svoju omiljenu boju. (Koristio sam stari kontroler pohrane)
- Hobbycolor ploča otporna na najmanje 75 C
- Malina pi 3
- Micro SD kartica (koristio sam 16 GB, ali možete koristiti bilo koju veličinu> = 4 GB)
- USB čvorište s vanjskom utičnicom za napajanje
- Usb to sata adapteri
- Diskovi
- Mrežni kabel + mrežna utičnica
- Žice + utičnica za ulaz energije
- Vijci su izvučeni iz serijskog ili vga porta starog računala
- USB priključci oporavljeni sa starog računala
Malina pi je pričvršćena na ploču hobbycolor vijcima iz vga porta.
Diskovi su pričvršćeni običnim vijcima na stražnjoj strani.
Korak 2: Ožičenje
Ulazna utičnica za napajanje spaja se na oba obnovljena USB priključka
Prvo se USB (iza svih žica sprijeda lijevo) koristi kao izvor napajanja, samo se crvene i crne žice koriste i spajaju na ulaznu utičnicu za napajanje. Prvi USB kabel u ovom priključku daje napajanje pi, drugi USB kabel napaja USB čvorište.
Drugi USB (onaj straga - koristan za povezivanje dodatnih uređaja) ima crveno i crno spojeno izravno na ulaz napajanja, dok su bijelo i zeleno na svakom priključku spojeni na USB kabel oporavljen od nekog starog miša (bijeli izravno spojen na pi)
Lan kabel povezuje vanjsku mrežnu utičnicu s malinom pi LAN priključkom
Diskovi su povezani putem USB -a na sata adaptere na vanjsko USB čvorište s pogonom (diskovi većeg kapaciteta zahtijevaju više energije i ne želimo učiniti pi nestabilnim), koji je spojen na jedan od pi portova
Korak 3: Softver
Instalirajte operativni sustav
Za veću sigurnost koristite Centos 7 za ruku. (https://mirror.centos.org/altarch/7/isos/armhfp/); testirano: CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz, vodič ovdje:
Stavite sliku na micro sd karticu s vašeg Linux računala (za Windows provjerite:
xzcat CentOS-Userland-7-armv7hl-Minimalno-1611-RaspberryPi3.img.xz | sudo dd od = $/path/to/sd/status kartice = napredak bs = 4M
root lozinka: centos
koristite nmtui za konfiguriranje mreže i postavljanje statičke IP adrese
Postavite diskove
Napravite jednu particiju na svakom disku (bolje je da bude malo manji od cijelog diska - recimo 1 GB manji - različiti diskovi istog kapaciteta - npr: wd vs toshiba - imaju različite veličine:)). Na taj ćete način biti sigurni ako trebate zamijeniti jedan od diskova
Napravite datotečni sustav btrfs raid 1 na svojim diskovima
mkfs.btrfs -d raid1 -m raid1 /dev /sda1 /dev /sdb1
btrfs oznaka datotečnog sustava /dev /sda1 rpi3
Montirajte datotečni sustav pomoću autofs (sprječava ne pokretanje pi ako nešto pođe po zlu s diskovima)
yum install -y autofs
dodaj popunjavanje u /etc/auto.master:
/-/etc/auto.ext-usb --timeout = 300
Napravite /etc/auto.ext-usb sa sadržajem:
/srv -fstype = auto, compress = lzo, noatime:/dev/disk/by -label/rpi3
servis autofs ponovno pokretanje
ls /srv, df -h, potvrdite da je montirano
Instalirajte owncloud
Preduvjeti (apache, php, mariadb):
yum install -y httpd; yum install -y mod_ssl; yum install -y mariadb -server; yum install -y php*
Instalirajte owncloud 9 koji je kompatibilan s php54 koji dolazi s centos7, dobar vodič za to:
download.owncloud.org/download/repositories…
Nakon što se owncloud pokrene, premjestite podatke iz zadanog mjesta na nove pogone (/srv)
usluga httpd stop
uredite /var/www/html/owncloud/config/config.php i unesite ovu promjenu:
'datadirectory' => '/srv/owncloud/data', mkdir /srv /owncloud; mv/var/www/html/owncloud/data/srv/owncloud && chown -R apache: apache/srv/owncloud/data/
usluga httpd start
Možete instalirati desktop klijent owncloud na linux / windows, a za telefone koristim foldersync
-
Omogućite i konfigurirajte SELinux
(radna verzija je: selinux-policy-3.13.1-166.el7.5.noarch, selinux-policy-targetirano-3.13.1-166.el7.5.noarch)
provjerite ne ažurirate li to pravilo (u /etc/yum.conf append: exclude = selinux-policy*)
restorecon -Rv /
/boot/cmdline.txt treba sadržavati: selinux = 1 sigurnost = selinux provedba = 1
/etc/sysconfig/selinux trebao bi sadržavati: SELINUX = provođenje i SELINUXTYPE = ciljano
ponovno podizanje sustava
Nakon ponovnog pokretanja napravite sljedeće postavke:
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 httpd_graceful_shutdown = 1
ako naiđete na probleme, stavite SD karticu na drugo računalo i izmijenite cmdline.txt tako da ima: selinux = 0
Osigurajte svoju kutiju
Promijenite root lozinku
Napravite sebi korisnika (adduser -s /bin /bash "ja") i postavite jaku lozinku (passwd "ja")
konfigurirajte sshd za slušanje na drugom portu i NE dopuštajte root prijave
U/etc/ssh/sshd_config postavite Port
(recimo 2222), PermitRootLogin br
Obavijestite SELinux i firewalld o svojim namjerama:
semanage port -a -t ssh_port_t -p tcp 2222
service firewalld start && systemctl enable firewalld.service
firewall-cmd --permanent --add-port 2222/tcp
firewall-cmd-ponovno učitavanje
usluga sshd ponovno pokretanje
Neka to bude javno
Na vašem internetskom usmjerivaču proslijedite ove priključke na svoj statički IP postavljen u prvom koraku: 80, 443, 2222.
Postavite DDNS na usmjerivaču tako da svojoj kutiji možete pristupiti s bilo kojeg mjesta.
Fino podešavanje
Postavite apache na 5 računala jer je memorije malo:
/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module moduli/mod_mpm_prefork.so
StartServers 5
MinSpareServers 5
MaxSpareServers 5
ServerLimit 5
MaxClients 5
MaxRequestsPerChild 3000
usluga httpd ponovno pokretanje
Postavite cron da tjedno čisti diskove i svake noći pravi snimku (u /etc /crontab)
01 02 * * 6 korijena btrfs scrub start/srv01 01 * * * root/usr/sbin/btrfs snimka podvoluma -r/srv/srv/@$ (printf "\%s" $ (/bin/date +\%d \%b \%Y-\%k-\%M))
povremeno provjerite glasnoću pomoću: btrfs dev stats /srv
Upotrijebite watchdog za automatsko poništavanje ako ne reagira (malina pi3 ima hardverski):
yum install -y čuvar
/etc/watchdog.conf
watchdog-device = /dev /watchdogwatchdog-timeout = 15
interval = 1logtick = 1 log-dir =/var/log/watchdog
u stvarnom vremenu = daprioritet = 1
service watchdog start && systemctl enable watchdog.service