- Added a check in `blueforce-install.sh` to ensure the script is run with root privileges, providing user-friendly error messages and guidance for launching with sudo or using check mode. - Updated `01-precheck.sh` to conditionally require root privileges based on the check mode, allowing for non-root execution in read-only mode. - Modified test scripts to reflect changes in the installation process, ensuring accurate reporting of the Python console's presence and adjusting expectations accordingly. |
||
|---|---|---|
| .. | ||
| installer | ||
| optional/anydesk | ||
| .gitkeep | ||
| blueforce-install.sh | ||
| README.md | ||
Blueforce kurulumu (scripts/install/)
Bu klasör cihazı kuran betiği içerir. Kurulumu yapan kişinin bilmesi gereken her şey bu sayfada.
1. Kurulum yapan kişi ne yapar?
Tek komut:
sudo ./scripts/install/blueforce-install.sh --dealer-id 12345678
--dealer-idtek zorunlu bilgidir: 8 haneli bayi numarası.- Betik numaradan ana makine adını (
bf-12345678) ve cihaz kimliğini (BF-12345678) kendisi üretir. - Kurulum sırasında başka hiçbir soru sorulmaz. Onay istemeyen (fabrika/otomatik)
senaryoda sonuna
--yesekleyin. - Kurulum bittiğinde cihaz yerinde kurulmuş olur ve
PROVISIONED_OFFLINEdurumuna geçer. Cihazın READY sayılması için merkeze kayıt (enrollment) gerekir; bu ayrı bir adımdır, kuruluma dahil değildir.
Paket aramaz, paket indirmez, apt kaynağı eklemez, anahtar getirmez. Bunların hepsi zaten hazırdır.
2. Paketler nereden gelir?
Paketler git deposunun içinde taşınır:
provisioning/offline-repo/built/ hazır paket seti (pool/, Packages, SHA256SUMS, packages.lock.tsv)
Bunları repo sorumlusu hazırlar ve commit eder; kurulumu yapan kişi sadece depoyu çeker. Paket setinin nasıl üretildiği, hangi paketlerin neden gerektiği ve sorun giderme adımları:
provisioning/offline-repo/README.md
Kurucu paket setini kendi kendine bulur. Arama sırası:
| Sıra | Yer | Ne zaman kullanılır |
|---|---|---|
| 1 | BF_OFFLINE_REPO ortam değişkeni |
Repo sorumlusu farklı bir dizin verdiyse (nadir) |
| 2 | provisioning/offline-repo/built |
Normal durum: kurucu betiğin bulunduğu repo |
| 3 | /opt/blueforce/offline-repo |
Paket seti cihaza ISO/medya ile kopyalanmışsa |
Bulunan depo kurulumdan önce baştan sona doğrulanır: dosya listesi,
checksum (SHA256SUMS) ve pinlenen her paketin depoda gerçekten durması.
Doğrulama geçmezse kurulum hiç başlamaz.
3. İnternet gerekmez — neden?
- Sahada internet yok veya güvenilmez; kurulumun ihtiyaç duyduğu her paket yanında taşınır ve cihazdaki tek kaynak yerel depodur.
- Kurulum çalışırken Apt kaynakları yalnızca bu yerel depoyu gösterir. Dış adreslere, DNS çözümlemesine veya indirmeye ihtiyaç duyulmaz.
- Bu yüzden internet erişimi kontrolü kurulumu durdurmaz:
01-precheckmodülü interneti sadece bilgi olarak yazar.05-networkmodülü de bağlantı yokken geçer (yerel ağ, internet ve merkez bağlantısı ayrı ayrı raporlanır; hiçbiri kurulum için şart değildir). - Merkez bağlantısı (WireGuard, izleme, kayıt) kurulumdan sonra, enrollment aşamasında doğrulanır.
Yalnızca geliştirme/test makinesi için --online vardır: paketleri internetten
çeker. Üretimde kullanmayın — sahada kurulum yerel depodan yapılır.
4. Bir şey ters giderse
"Yerel paket deposu yok" hatası
HATA: Yerel paket deposu yok. Repo sorumlusuna başvurun: provisioning/offline-repo/README.md
Anlamı: cihazda kullanılacak paket seti yok. Kurulum başlamadı, sistemde hiçbir değişiklik yapılmadı. Yapılacaklar:
- Depoyu tam olarak çekin (
git pull) veya repo sorumlusunun verdiği kopyayı/opt/blueforce/offline-repoaltına koyun. - Komutu yeniden çalıştırın. Aynı numarayla devam edebilirsiniz.
Ekranda aranan yerlerin listesi yazar; o listeyi repo sorumlusuna iletmek yeterlidir.
OFFLINE BLOCKED mesajları
Depo bulundu ama eksik ya da bozuk demektir (checksum tutmuyor, pinlenen paket
depoda yok, kilit/indeks dosyası boş...). Kurulum yine başlamaz ve sistem
değişmez. Mesajın altındaki "Ne yapmalı" satırı depoyu nasıl düzelteceğinizi
söyler; ayrıntılı tablo provisioning/offline-repo/README.md içindedir.
Sahada çözülmez — depoyu düzeltip yeniden getirmek gerekir.
Kurulum kesildi, devam etmek istiyorum
sudo ./scripts/install/blueforce-install.sh --dealer-id 12345678 --resume
--resume daha önce tamamlanmış adımları atlar. Bütün adımlar tekrar
çalıştırılabilir (idempotent); bir adımı iki kez çalıştırmak zarar vermez.
Kurulum yapıldı mı, kontrol etmek istiyorum
sudo ./scripts/install/blueforce-install.sh --dealer-id 12345678 --check
--check hiçbir şeyi değiştirmez (log, durum dosyası, dizin oluşturmaz);
yalnızca rapor verir. Denetim de aynı paket sözleşmesini doğruladığı için
depo yine gerekir.
Kayıtlar nerede?
| Ne | Yer |
|---|---|
| Kurulum günlüğü | /var/log/blueforce-install.log |
| Adım adım durum | /var/lib/blueforce/install-state |
| Cihaz durumu | /var/lib/blueforce/state.json |
5. Seçenekler (normalde gerekmez)
| Seçenek | Ne yapar |
|---|---|
--dealer-id NUMARA |
Zorunlu. 8 haneli bayi numarası. |
--yes, -y |
Onay sormadan başla. |
--check |
Salt okunur denetim. |
--from NN |
NN numaralı adımdan başla (örn. --from 06). |
--only AD |
Yalnız tek adımı çalıştır (örn. --only 05-network). |
--resume |
Daha önce tamamlanan adımları atla. |
--help, -h |
Yardım metni. |
--offline |
Yerel depoyu kullanmayı zorlar. Artık gerekmez; varsayılan davranış zaten budur (eski komutlar bozulmasın diye duruyor). |
--online |
Yalnız geliştirme/test: paketleri internetten çeker. Üretimde kullanılmaz. |
Kurulum sonucu: 0 başarılı · 1 kurulum durdu (depo ya da adım hatası) ·
2 komut/parametre hatası.
6. Kurulum adımları (modül haritası)
Her adım tekrar çalıştırılabilir ve --check destekler.
01-precheck · 02-system · 03-user · 04-hostname · 05-network ·
06-wireguard · 07-ssh · 08-rdp · 09-rustdesk · 10-docker · 11-meg ·
12-monitoring · 13-firewall · 14-update-policy · 15-logrotate ·
16-gui · 17-healthcheck · 18-final-check
Uzak erişim için her cihaza özel değerler gerekir: WG_ADDRESS, WG_ENDPOINT,
WG_PEER_PUBKEY, RUSTDESK_SERVER ve yerel RUSTDESK_DEB. Yer tutucu
değerler kabul edilmez; WireGuard erişimi BF_WG_HANDSHAKE_MAX_AGE saniyeden
(öntanımlı 180) daha yeni bir eş el sıkışması ister (REQUIRE_WIREGUARD=false
ile kapatılabilir).
Docker'ın dışa açtığı portlar öntanımlı olarak kapalıdır. Yalnız incelenmiş
tcp PORT / udp PORT satırları
/etc/blueforce/docker-published-port-allowlist.conf dosyasına eklenir;
blueforce-docker-firewall.service bu politikayı Docker her başladığında
yeniden uygular.
Not: AnyDesk bilinçli olarak yoktur. Uzak erişim SSH-over-WireGuard, xRDP ve RustDesk ile sağlanır; AnyDesk elle yapılan cihaz başına bir istisnadır.