|
|
| 18. satır: |
18. satır: |
|
| |
|
|
| |
|
| = '''Proxy Alan Adı SSL Kurulumu''' = | | = '''VMTools Websocket Proxy ve ISO Transfer Agent Kurulum Aracı''' = |
| Proxy sunucusunda kullanmak üzere alan adınızın DNS yönetimi bölümünden proxy.siteadresiniz.com şeklinde bir '''"A"''' kaydı oluşturun, kurduğunuz ubuntu proxy sunucu ip adresine yönlendirin ve aşağıdaki komutları sırayla alan adını kendinize göre düzenleyerek çalıştırın.
| |
| apt-get install nginx -y && apt install certbot python3-certbot-nginx -y && sudo certbot --nginx -d '''proxy.siteadresiniz.com''' --non-interactive --agree-tos --register-unsafely-without-email --redirect
| |
| | |
| | |
| | |
| = '''Nginx Yapılandırması''' =
| |
| Aşağıdaki komutu çalıştırmadan önce iki alanı kendinize göre düzenleyin;
| |
| | |
| * '''DOMAIN''' = proxy.siteadresiniz.com (Proxy sunucusunun alan adı olmalıdır. '''https:// ön eki koymayınız!''')
| |
| * '''PANEL_ORIGIN''' = <nowiki>https://siteadresiniz.com</nowiki> (Hosting otomasyon yazılımınızın kurulu olduğu alan adı/alt alan adı. '''https:// ile başlamak zorundadır''')
| |
| <blockquote><u>Önemli Not:</u>
| |
| | |
| * DOMAIN ile PANEL_ORIGIN aynı şey değildir.
| |
| * DOMAIN proxy sunucusunun alan adıdır.
| |
| * PANEL_ORIGIN ise yalnızca sizin hosting otomasyon yazılımınızın kurulu olduğu, gelen isteklerin kabul edileceği alan adınızdır.
| |
| * Yani başka bir alan adından aynı istekler gönderilirse kabul edilmeyecektir.
| |
| </blockquote>
| |
| | |
| Aşağıdaki komutun başındaki 2 alan adı bölümünü yukarıdaki yönergelere göre düzenleyip komutu çalıştırın:
| |
| DOMAIN="'''proxy.siteadresiniz.com'''" PANEL_ORIGIN="'''<nowiki>https://panel.siteadresiniz.com</nowiki>'''" && sudo bash -c 'printf "map $arg_hostname $ng_hostname {\n default $arg_hostname;\n}\n\nmap $arg_port $ng_port {\n default $arg_port;\n}\n\nmap $arg_ticket $ng_ticket {\n default $arg_ticket;\n}\n\nserver {\n listen 443 ssl;\n server_name '"$DOMAIN"';\n\n ssl_certificate /etc/letsencrypt/live/'"$DOMAIN"'/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/'"$DOMAIN"'/privkey.pem;\n\n ssl_protocols TLSv1.2 TLSv1.3;\n ssl_prefer_server_ciphers on;\n\n location /ticket {\n if ($ng_hostname = "") { return 400; }\n if ($ng_port = "") { return 400; }\n if ($ng_ticket = "") { return 400; }\n\n proxy_pass <nowiki>https://$ng_hostname:$ng_port$ng_ticket;\n</nowiki> proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n proxy_set_header Host $host;\n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_set_header X-Forwarded-Proto $scheme;\n proxy_read_timeout 86400;\n proxy_ssl_verify off;\n proxy_ssl_verify_depth 0;\n proxy_ssl_server_name on;\n }\n\n location /iso-agent/ {\n if ($request_method = OPTIONS) {\n add_header Access-Control-Allow-Origin '"$PANEL_ORIGIN"' always;\n add_header Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS" always;\n add_header Access-Control-Allow-Headers "Authorization, Content-Type, X-Chunk-Index, X-Chunk-Size, X-Chunk-Checksum, X-Upload-Length" always;\n add_header Access-Control-Max-Age 86400 always;\n add_header Content-Length 0;\n add_header Content-Type text/plain;\n return 204;\n }\n\n add_header Access-Control-Allow-Origin '"$PANEL_ORIGIN"' always;\n add_header Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS" always;\n add_header Access-Control-Allow-Headers "Authorization, Content-Type, X-Chunk-Index, X-Chunk-Size, X-Chunk-Checksum, X-Upload-Length" always;\n\n proxy_pass <nowiki>http://localhost:9480/;\n</nowiki> proxy_http_version 1.1;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_set_header X-Forwarded-Proto $scheme;\n proxy_read_timeout 86400;\n proxy_send_timeout 86400;\n proxy_request_buffering off;\n proxy_buffering off;\n client_max_body_size 64m;\n }\n}\n" | tee /etc/nginx/sites-available/default > /dev/null' && nginx -t && systemctl restart nginx
| |
| | |
| | |
| | |
| = '''ISO Aktarım Klasörleri ve Proxy Erişim Anahtarı Oluşturma''' =
| |
| Aynı proxy sunucusunda ISO aktarımı için gerekli klasörleri oluşturun ve modül ile proxy arasında kullanılacak '''Erişim Anahtarı''' değerini üretin.
| |
| PROXY_SHARED_SECRET="$(openssl rand -hex 32)" && sudo mkdir -p /opt/vmtools-transfer-agent/{data,tmp,logs} && echo "PROXY_SHARED_SECRET=$PROXY_SHARED_SECRET" | sudo tee /opt/vmtools-transfer-agent/agent.env > /dev/null && echo "$PROXY_SHARED_SECRET"
| |
| <blockquote><u>Önemli Not:</u>
| |
| | |
| * Bu komut size '''Proxy''' '''Erişim Anahtarı''' verecektir, not almayı unutmayınız!
| |
| * 3. Şahıslar ile paylaşmayınız!
| |
| | |
| | |
| | |
| Ne işe yarar?
| |
| | |
| * Bu gizli anahtar, modül ile proxy sunucusunun birbirini tanıması için kullanılır.
| |
| * Böylece sadece sitenizden gelen istekler proxy sunucusu tarafından kabul edilir.
| |
| * Web konsolu ve ISO aktarım özellikleri aynı güvenlik yapısını kullanır.
| |
| </blockquote>
| |
| | |
| | |
| | |
| = '''VMTools ISO Transfer Agent Kurulumu''' =
| |
| Aşağıdaki komutu çalıştırarak vmtools iso transfer aracını proxy sunucusuna kurabilir ve servisi aktif hale getirebilirsiniz: | | Aşağıdaki komutu çalıştırarak vmtools iso transfer aracını proxy sunucusuna kurabilir ve servisi aktif hale getirebilirsiniz: |
| bash <(curl -fsSL <nowiki>https://cdn.vmtools.io/storage/install.sh</nowiki>) | | bash <(curl -fsSL <nowiki>https://cdn.vmtools.io/storage/install.sh</nowiki>) |
| 76. satır: |
33. satır: |
| * '''Proxy sunucusu hali hazırda vcenter'ınıza ve esxi sunucularınıza erişebiliyor olmalıdır!'''</blockquote> | | * '''Proxy sunucusu hali hazırda vcenter'ınıza ve esxi sunucularınıza erişebiliyor olmalıdır!'''</blockquote> |
|
| |
|
| | | = Kurulum Sonrası Test = |
| Kurulum tamamlandıktan sonra aşağıdaki kontrolleri/testleri yapabilirsiniz: | | <blockquote> |
| | |
| * Web konsol bağlantısı açılabiliyor olmalıdır. | | * Web konsol bağlantısı açılabiliyor olmalıdır. |
| * ISO İmajları admin modülünden ve müşteri panelinden yüklenebiliyor olmalıdır. | | * ISO İmajları admin modülünden ve müşteri panelinden yüklenebiliyor olmalıdır. |
| * Proxy alan adınız tarayıcıdan düzgün açılıyor olmalı ve ssl sertifikası geçerli görünmelidir. | | * Proxy alan adınız tarayıcıdan düzgün açılıyor olmalı ve ssl sertifikası geçerli görünmelidir. |
| | </blockquote> |
Sadece adımları takip ederek modüllerimizdeki web konsol ve iso imajı işlevleri için proxy sunucusu kurabilirsiniz.
Hazırlık
Aşağıdaki özelliklerde veya yakın olacak şekilde bir ubuntu sanal sunucu kurulumu gerçekleştirmeniz gerekmektedir. Disk alanı oldukça önemlidir. Müşterileriniz tarafından yüklenecek iso imajları geçici olarak bu sunucuda tutulacak ve vcenter sunucunuza aktarılacaktır.
Ubuntu 22.04 LTS (Minimal server)
4 Core İşlemci
8 GB RAM
250 GB Disk Alanı (Önerilen: SATA SSD yada NVMe SSD
Kurulumun ardından linux dağıtımınızı güncelleyin.
sudo apt-get update -y && sudo NEEDRESTART_MODE=a apt-get upgrade -y && sudo reboot
Aşağıdaki komutu çalıştırarak vmtools iso transfer aracını proxy sunucusuna kurabilir ve servisi aktif hale getirebilirsiniz:
bash <(curl -fsSL https://cdn.vmtools.io/storage/install.sh)
Modül Ayarları
VMTools Admin Module > Genel Ayarlar bölümünde aşağıdaki alanları doldurup kaydedin:
- Websocket Proxy Hostname/IP Adresi: proxy.siteadresiniz.com (Örnektir*)
- Proxy ISO Transfer URL: https://proxy.siteadresiniz.com/iso-agent (Örnektir*)
- Proxy Erişim Anahtarı: Not almış olduğunuz proxy erişim anahtarınızı giriniz.
Önemli Not:
- Proxy sunucusu hali hazırda vcenter'ınıza ve esxi sunucularınıza erişebiliyor olmalıdır!
Kurulum Sonrası Test
- Web konsol bağlantısı açılabiliyor olmalıdır.
- ISO İmajları admin modülünden ve müşteri panelinden yüklenebiliyor olmalıdır.
- Proxy alan adınız tarayıcıdan düzgün açılıyor olmalı ve ssl sertifikası geçerli görünmelidir.