Ana içeriğe atla Navigasyona atla Alt bilgiye atla

Makine Kurulumu

Yapılandırma oluşturma, makine ekleme, sunucuları hazırlama ve altyapı yapılandırması.

Makine Kurulumu

Bu sayfa, ilk makinenizi kurma sürecini anlatır: yapılandırma oluşturma, sunucu kaydetme, hazırlama ve isteğe bağlı olarak genel erişim için altyapı yapılandırması.

Adım 1: Yapılandırma Oluşturma

Bir yapılandırma (config), SSH kimlik bilgilerinizi, makine tanımlarınızı ve depo eşlemelerinizi saklayan adlandırılmış bir yapılandırma dosyasıdır. Bunu bir proje çalışma alanı olarak düşünebilirsiniz.

rdc config init --name my-infra --ssh-key ~/.ssh/id_ed25519
SeçenekGerekliAçıklama
--ssh-key <path>EvetSSH özel anahtarınızın yolu. Tilde (~) otomatik olarak genişletilir.
--renet-path <path>HayırUzak makinelerdeki renet ikili dosyasının özel yolu. Varsayılan olarak standart kurulum konumunu kullanır.

Bu komut my-infra adında bir yapılandırma oluşturur ve ~/.config/rediacc/my-infra.json dosyasında saklar. Varsayılan yapılandırma (ad verilmediğinde) ~/.config/rediacc/rediacc.json olarak saklanır.

Birden fazla yapılandırmanız olabilir (ör. production, staging, dev). Herhangi bir komutta --config bayrağıyla bunlar arasında geçiş yapabilirsiniz.

Adım 2: Makine Ekleme

Uzak sunucunuzu yapılandırmaya makine olarak kaydedin:

rdc config machine add --name server-1 --ip 203.0.113.50 --user deploy
SeçenekGerekliVarsayılanAçıklama
--ip <address>Evet-Uzak sunucunun IP adresi veya ana bilgisayar adı
--user <username>Evet-Uzak sunucudaki SSH kullanıcı adı
--port <port>Hayır22SSH portu
--datastore <path>Hayır/mnt/rediaccRediacc’ın şifrelenmiş depoları sakladığı sunucu üzerindeki dizin yolu

Makine eklendikten sonra rdc, sunucunun host anahtarlarını almak için otomatik olarak ssh-keyscan çalıştırır. Bunu manuel olarak da çalıştırabilirsiniz:

rdc config machine scan-keys -m server-1

Kayıtlı tüm makineleri görüntülemek için:

rdc config machine list

Adım 3: Makineyi Hazırlama

Uzak sunucuyu gerekli tüm bağımlılıklarla hazırlayın:

rdc config machine setup --name server-1

Bu komut:

  1. renet ikili dosyasını SFTP aracılığıyla sunucuya yükler
  2. Docker, containerd ve cryptsetup’ı kurar (yüklü değilse)
  3. rediacc sistem kullanıcısını (UID 7111) oluşturur
  4. Veri deposu dizinini oluşturur ve şifrelenmiş depolar için hazırlar
SeçenekGerekliVarsayılanAçıklama
--datastore <path>Hayır/mnt/rediaccSunucudaki veri deposu dizini
--datastore-size <size>Hayır95%Veri deposu için ayrılacak disk alanı miktarı
--debugHayırfalseSorun giderme için ayrıntılı çıktıyı etkinleştirir

Hazırlık her makine için yalnızca bir kez çalıştırılmalıdır. Gerektiğinde tekrar çalıştırmak güvenlidir.

Host Anahtarı Yönetimi

Bir sunucunun SSH host anahtarı değiştiyse (ör. yeniden kurulum sonrası), saklanan anahtarları yenileyin:

rdc config machine scan-keys -m server-1

Bu komut, yapılandırmanızdaki ilgili makinenin knownHosts alanını günceller.

SSH Bağlantısını Test Etme

Makine ekledikten sonra erişilebilir olduğunu doğrulayın:

rdc term connect -m server-1 -c "hostname"

Bu komut makineye SSH bağlantısı açar ve komutu çalıştırır. Başarılı olursa SSH yapılandırmanız doğrudur.

Daha ayrıntılı tanılama için şunu çalıştırın:

rdc doctor

Yalnızca bulut adaptörü: rdc machine test-connection komutu ayrıntılı SSH tanılaması sağlar ancak bulut adaptörü gerektirir. Yerel adaptör için rdc term veya doğrudan ssh kullanın.

Altyapı Yapılandırması

Trafiği herkese açık olarak sunması gereken makineler için altyapı ayarlarını yapılandırın:

Altyapıyı Ayarlama

rdc config infra set -m server-1 \
  --public-ipv4 203.0.113.50 \
  --base-domain example.com \
  --cert-email admin@example.com \
  --cf-dns-token your-cloudflare-api-token
SeçenekKapsamAçıklama
--public-ipv4 <ip>MachinePublic IPv4 address, proxy entrypoints are only created for configured address families
--public-ipv6 <ip>MachinePublic IPv6 address, proxy entrypoints are only created for configured address families
--base-domain <domain>MachineUygulamalar için temel alan adı (ör. example.com)
--cert-email <email>ConfigLet’s Encrypt TLS sertifikaları için e-posta (makineler arasında paylaşılır)
--cf-dns-token <token>ConfigACME DNS-01 doğrulamaları için Cloudflare DNS API anahtarı (makineler arasında paylaşılır)
--tcp-ports <ports>MachineVirgülle ayrılmış ek TCP portları (ör. 25,143,465,587,993)
--udp-ports <ports>MachineVirgülle ayrılmış ek UDP portları (ör. 53)

Machine kapsamlı seçenekler makine başına saklanır. Config kapsamlı seçenekler (--cert-email, --cf-dns-token) yapılandırmadaki tüm makineler arasında paylaşılır, bir kez ayarlayın ve her yerde geçerli olsun.

Altyapıyı Görüntüleme

rdc config infra show -m server-1

Sunucuya Gönderme

Traefik ters proxy yapılandırmasını oluşturun ve sunucuya dağıtın:

rdc config infra push -m server-1

Bu komut:

  1. renet ikili dosyasını uzak makineye dağıtır
  2. Traefik ters proxy, yönlendirici ve systemd hizmetlerini yapılandırır
  3. --cf-dns-token ayarlanmışsa makine alt alan adı için Cloudflare DNS kayıtları oluşturur (server-1.example.com ve *.server-1.example.com)

DNS adımı otomatik ve etkisizdir (idempotent), eksik kayıtları oluşturur, IP’leri değişen kayıtları günceller ve zaten doğru olan kayıtları atlar. Cloudflare anahtarı yapılandırılmamışsa DNS bir uyarıyla atlanır. Per-repo wildcard DNS records (for auto-routes) are created automatically when you run rdc repo up.

Bulut Hazırlama

VM’leri manuel olarak oluşturmak yerine, bir bulut sağlayıcı yapılandırabilir ve rdc’nin OpenTofu kullanarak makineleri otomatik olarak hazırlamasını sağlayabilirsiniz.

Ön Koşullar

OpenTofu’yu kurun: opentofu.org/docs/intro/install

SSH yapılandırmanızın bir genel anahtar içerdiğinden emin olun:

rdc config set --key ssh.privateKeyPath --value ~/.ssh/id_ed25519

Bulut Sağlayıcı Ekleme

rdc config provider add --name my-linode \
  --provider linode/linode \
  --token $LINODE_API_TOKEN \
  --region us-east \
  --type g6-standard-2
SeçenekGerekliAçıklama
--provider <source>Evet*Bilinen sağlayıcı kaynağı (ör. linode/linode, hetznercloud/hcloud)
--source <source>Evet*Özel OpenTofu sağlayıcı kaynağı (bilinmeyen sağlayıcılar için)
--token <token>EvetBulut sağlayıcının API anahtarı
--region <region>HayırYeni makineler için varsayılan bölge
--type <type>HayırVarsayılan örnek türü/boyutu
--image <image>HayırVarsayılan işletim sistemi imajı
--ssh-user <user>HayırSSH kullanıcı adı (varsayılan: root)

* --provider veya --source gereklidir. Bilinen sağlayıcılar için --provider kullanın (yerleşik varsayılanlar). Özel sağlayıcılar için --source ile ek --resource, --ipv4-output, --ssh-key-attr bayraklarını kullanın.

Makine Hazırlama

rdc machine provision --name prod-2 --provider my-linode

Bu tek komut:

  1. OpenTofu aracılığıyla bulut sağlayıcıda bir VM oluşturur
  2. SSH bağlantısını bekler
  3. Makineyi yapılandırmanıza kaydeder
  4. renet ve tüm bağımlılıkları kurar
  5. Configures Traefik proxy and Cloudflare DNS (auto-detects base domain from sibling machines, or pass --base-domain explicitly)
SeçenekAçıklama
--provider <name>Bulut sağlayıcı adı (add-provider’dan)
--region <region>Sağlayıcının varsayılan bölgesini geçersiz kılar
--type <type>Varsayılan örnek türünü geçersiz kılar
--image <image>Varsayılan işletim sistemi imajını geçersiz kılar
--base-domain <domain>Base domain for infrastructure. Auto-detected from sibling machines if not specified
--no-infraSkip infrastructure configuration (proxy + DNS) entirely
--debugAyrıntılı hazırlama çıktısını gösterir

Makine Kaldırma

rdc machine deprovision --name prod-2

VM’yi OpenTofu aracılığıyla yok eder ve yapılandırmanızdan kaldırır. --force kullanılmadıkça onay gerektirir. Yalnızca machine provision ile oluşturulan makineler için çalışır.

Sağlayıcıları Listeleme

rdc config provider list

Varsayılanları Ayarlama

Her komutta belirtmek zorunda kalmamak için varsayılan değerler ayarlayın:

rdc config set --key machine --value server-1  # Varsayılan makine
rdc config set --key team --value my-team  # Varsayılan ekip (bulut adaptörü, deneysel)

Varsayılan makineyi ayarladıktan sonra komutlardan -m server-1 ifadesini çıkarabilirsiniz:

rdc repo create --name my-app -m my-server --size 10G

Birden Fazla Yapılandırma

Adlandırılmış yapılandırmalarla birden fazla ortamı yönetin:

# Ayrı yapılandırmalar oluşturun
rdc config init --name production --ssh-key ~/.ssh/id_prod
rdc config init --name staging --ssh-key ~/.ssh/id_staging

# Belirli bir yapılandırmayı kullanın
rdc repo list -m server-1 --config production
rdc repo list -m staging-1 --config staging

Tüm yapılandırmaları görüntüleyin:

rdc config list

Mevcut yapılandırma ayrıntılarını gösterin:

rdc config show