2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Kreirajte vlastiti pouzdan cloud server
Korak 1: Hardver
- Upotrijebite metalnu kutiju i obojite je u svoju omiljenu boju. (Koristio sam stari kontroler memorije)
- Hobbycolor ploča otporna na najmanje 75 C
- Malina pi 3
- Mikro SD kartica (koristio sam 16 GB, ali možete koristiti bilo koju veličinu> = 4 GB)
- USB čvorište s vanjskim priključkom za napajanje
- Usb to sata adapteri
- Disk jedinice
- Mrežni kabel + mrežna utičnica
- Žice + utičnica za ulaz energije
- Vijci su izvučeni sa serijskog ili vga porta starog računara
- USB portovi oporavljeni sa starog računara
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 povezuje se na oba oporavljena USB porta
Prvo se USB (iza svih žica sprijeda lijevo) koristi kao izvor napajanja, samo se crvene i crne žice koriste i povezuju 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 direktno na ulaz napajanja, dok su bijelo i zeleno na svakom portu spojeni na USB kabel oporavljen od nekog starog miša (bijeli izravno povezan sa pi)
Lan kabl povezuje spoljnu mrežnu utičnicu sa malinom pi LAN portom
Diskovi su povezani putem USB -a na sata adaptere na USB čvorište s vanjskim napajanjem (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 sistem
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 sa svog Linux računara (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 ovaj način ćete biti sigurni ako trebate zamijeniti jedan od diskova
Napravite btrfs raid 1 datotečni sistem na svojim diskovima
mkfs.btrfs -d raid1 -m raid1 /dev /sda1 /dev /sdb1
btrfs oznaka datotečnog sistema /dev /sda1 rpi3
Montirajte datotečni sistem koristeći autofs (sprječava ne pokretanje pi ako nešto pođe po zlu s diskovima)
yum install -y autofs
dodajte ispunjenje u /etc/auto.master:
/-/etc/auto.ext-usb --timeout = 300
Kreirajte /etc/auto.ext-usb sa sadržajem:
/srv -fstype = auto, compress = lzo, noatime:/dev/disk/by -label/rpi3
service autofs restart
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 sa php54 koji dolazi sa centos7, dobar vodič za to:
download.owncloud.org/download/repositories…
Nakon što se owncloud pokrene, premjestite direktorij podataka sa zadane lokacije na nove pogone (/srv)
usluga httpd stop
uredite /var/www/html/owncloud/config/config.php i napravite 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 owncloud desktop klijent 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 tu politiku (u /etc/yum.conf append: exclude = selinux-policy*)
restorecon -Rv /
/boot/cmdline.txt bi trebao sadržavati: selinux = 1 sigurnost = selinux provedba = 1
/etc/sysconfig/selinux treba sadržavati: SELINUX = primjena i SELINUXTYPE = ciljana
reboot
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 bilo kakav problem, stavite SD karticu na drugo računalo i izmijenite cmdline.txt tako da ima: selinux = 0
Osigurajte svoju kutiju
Promenite 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
usluga firewalld start && systemctl omogućiti firewalld.service
firewall-cmd --permanent --add-port 2222/tcp
firewall-cmd --reload
servis sshd restart
Neka to bude javno
Na vašem internetskom usmjerivaču proslijedite ove portove na svoj statički IP postavljen u prvom koraku: 80, 443, 2222.
Postavite DDNS na usmjerivaču kako biste svom kutiji mogli pristupiti s bilo kojeg mjesta.
Fine tuning
Postavite apache na 5 specifikacija 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 restart
Postavite cron da tjedno čisti diskove i svake noći pravi snimku (u /etc /crontab)
01 02 * * 6 root btrfs scrub start/srv01 01 * * * root/usr/sbin/btrfs snimak podvoluma -r/srv/srv/@$ (printf "\%s" $ (/bin/date +\%d \%b \%Y-\%k-\%M))
povremeno provjerite volumen pomoću: btrfs dev stats /srv
Upotrijebite watchdog za automatsko poništavanje ako prestane reagirati (malina pi3 ima hardverski):
yum install -y watchdog
/etc/watchdog.conf
watchdog-device = /dev /watchdogwatchdog-timeout = 15
interval = 1logtick = 1 log-dir =/var/log/watchdog
realtime = yespriority = 1
service watchdog start && systemctl enable watchdog.service