linux etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
linux etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6 Mart 2020 Cuma

Windows üzerinden SSH ile Linux ortamına erişim

-İlk Kurulum:

Önce Windows üzerinde OpenSSH kurulumu (Admin hakkı ile):

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

-Her bir sunucu/kullanıcı eklemek için:
Public ve Private key oluşturma:
cmd > C:\Users\[username]\.ssh > ssh-keygen.exe

Dosya adı isteyecek. Örn: xserver-yuser
[Dosya adı verilmez ise default olarak id_rsa ve id_rsa.pub dosyaları oluşturulur.
Bu şekilde ssh bağlantısı -i ile key dosya adı belirtilmez ise bu kullanılır.]

İki dosya oluşacak. Biri uzantısız, biri pub uzantılı.

pub uzantılı dosya adı sunucuda .ssh\authorized_keys dosyasına eklenir.

Sonra bağlantı kurmak için
Dosya adı (örneğin xserver-openssh) ve passphrase verilince;
Cmd ortamında:
ssh -i C:\\Users\\[username]\\.ssh\\xserver-yuser-openssh user-name@111.222.0.8

-passphrase vererek dosya oluşturulursa her girişte bu passphrase de girilmeli.

-ssh bağlantısının kısa sürede düşmesini engellemek için:

 -o ServerAliveInterval=30


 

-Eğer mevcutta sunucu ve ssh key tanımlıysa ve yeni sunucu eklendiyse (do da olduğu gibi) mevcut istemci tanımlıyla erişilmeye çalışıldığında Public Key error hatası alınabilir. Bu durumda  yeni sunucu üzerinde (web console erişimi ile);

sudo nano /etc/ssh/sshd_config
PermitRootLogin prohibit-password to PermitRootLogin yes 
PasswordAuthentication no to PasswordAuthentication yes

 sonra;

sudo service ssh restart

 

 

 Windows Terminal de profil olarak eklemek için;

"profiles" dizininde;


        {
          "guid""{2f0c4513-e827-45de-a043-5dcdfc58b78c}",
          "name":  "ssh xserver",
          "tabTitle""xserver",
          "commandline""ssh -i C:\\Users\\[username]\\.ssh\\xserver-openssh remote-user-name@111.222.0.8
"
        }
    ],

 

Terminal Ekranını Özelleştirme


https://www.hanselman.com/blog/my-ultimate-powershell-prompt-with-oh-my-posh-and-the-windows-terminal


https://ohmyposh.dev/docs/windows
winget install JanDeDobbeleer.OhMyPosh

restart terminal


notepad $PROFILE ile dosya oluştur
Bu satırı ekle
oh-my-posh --init --shell pwsh --config ~\AppData\Local\Programs\oh-my-posh\themes\jandedobbeleer.omp.json | Invoke-Expression
linux: eval "$(oh-my-posh --init --shell bash --config /home/linuxbrew/.linuxbrew/opt/oh-my-posh/themes/jandedobbeleer.omp.json)"
ve
Import-Module -Name Terminal-Icons (Install-Module -Name Terminal-Icons -Repository PSGallery > bunu kurulmalı)

Themeler burda
%AppData%\Local\Programs\oh-my-posh\themes\
Linux:
/home/linuxbrew/.linuxbrew/opt/oh-my-posh/themes


Theme önizleme
https://ohmyposh.dev/docs/themes


Visual Studio Powershell de font değişimi : Options > Environment > Fonts and Colors > Terminal > CaskaydiaCove NF
Visual Stduio Code WSL için: settings.json > "terminal.integrated.fontFamily" : "Cascadia Code PL" + root daki .profile in yüklenmesi gerekiyor
"terminal.integrated.profiles.linux": > args: -l .profile yüklemesi için
    "bash": {
      "path": "bash",
      "args": [
        "-l"
      ],
      "icon": "terminal-bash"
    }









8 Mart 2018 Perşembe

Linux üzerinde Python web uygulaması yayına alma alternatifleri

Digital Ocean (DO) - Ubuntu üzerinde Python web uygulaması kurulumu / yayına alma ve güncelleme ile ilgili notlar.

Ubuntu 16.04
Nginx 1.10.3
Python 3.6.4


Problemler 

-Tüm kurulumlardan sonra çalışan sistemde güncellemelerde.

Bir paket güncellemesinde "pip install -U x" wheel üretilme adımında kurulum killed olarak sonlanıyorsa bellek yetmezliğinden kaynaklanıyor olabilir. örn: https://github.com/explosion/spaCy/issues/1586
Normalde 2GB kurulumlarda yetmişti linux güncellemelerinden yada yeni python package den kaynaklı sıkıntı olabilir.
Bu durumda uygulama başlamaz ve alttaki problem ortaya çıkabilir.
gunicorn connect() to unix:/*.sock failed (2: No such file or directory) while connecting to upstream,

Daha detay bilgi almak için systemd service dosyasında gunicorn için log gile parametreleri belirtilebilir.
ExecStart=/home/app/_env/bin/gunicorn --workers 2 --bind unix:lingoapi.sock -m 007 wsgi:flask_app -e LINGOAPPENV=PROD --error-logfile /home/app/logs/gunierr.txt, --log-file /home/app/logs/guni.log

Normalde yetmesi gereken 2GB yetmediğinde swap dosyası tanımı yapılabilir.
Yapmak için : https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04

Swap tanımı yapıp güncellemeyi (pip install) yaptıktan sonra eğer sunucu reboot edilirse swap dosyası uçacaktır. Dolayısıyla güncelleme de aynı problem tekrar edecektir.

-Artan bellek problemine bir çözüm önerisi
gunicorn apps.wsgi:application -b 127.0.0.1:8080 --workers 8 --max-requests 1000
Her bin istekten sonra app pool recycle benzeri işlem
https://rayed.com/posts/2014/09/django-memory-leak-with-gunicorn/


-Bellek kullanım detaylarını görmek için kullanılabilecek bir script
https://raw.githubusercontent.com/pixelb/ps_mem/master/ps_mem.py
>python3 ps_mem.py

-Memory leak tespiti için:
https://pypi.org/project/Dozer/
Dozer was originally a WSGI middleware version of Robert Brewer’s Dowser CherryPy tool that displays information as collected by the gc module to assist in tracking down memory leaks. It now also has middleware for profiling and for looking at logged messages.


Sistem kurulum adımları


1. Tanımlar / Configler
-non-root kullanıcı oluşturma - putty ile bağlanma
-Uygulama dizinler, dizin yazma hakkı, firewall vs güvenlik tanımları

2. Kurulumlar (nginx, python...)

3. Geliştirilen uygulamanın kurulum : virtual env, ...
Alternatifler: herşey manuel, docker, dokku, captainduckduck, rancher?)
---Deployment/Güncelleme (deploy, config change) / staging, live... > blue/green deployment

4. Diğer Konular
---SSL (Nginx üzerine)
---Güvenlik
---Kayıtlar / Loglar
---Performans
---Coğrafi dağıtık kurulum alternatifleri
----DNS, IP, istemci performans ölçümüne göre



24 Temmuz 2017 Pazartesi

Hyper-V üzerinde Ubuntu kurulumu ve düşündürdükleri



VMWare ya da Virtual Box ile sanal Linux kurulumu genellikle problemsiz olmakta.
Hatta buradan çalıştırılmaya hazır sanal Linux kurulumları indirilebilir: http://www.osboxes.org/


Hyper-v üzerinde dikkat edilmesi gerekenler:

Aşağıdaki adımlar Lubuntu 17.04 64bit üzerinde uygulanmıştır.

Sanal disk oluşturma

Standart tanımlar ile bir Ubuntu kurulumu 9GB olarak yer kaplamakta.
Burada belirtilen yöntem ile önce sanal disk oluşturulmalı. Power shell ile:
PS > New-VHD -Path C:\MyVHDs\test.vhdx -SizeBytes 127GB -Dynamic -BlockSizeBytes 1MB

https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/best-practices-for-running-linux-on-hyper-v

Devamında sanal makinayı oluştururken üstteki yöntem ile oluşturulan sanal disk seçilmeli.

Integration services problemleri

Sanal Linux ancak Hyper-V ile sağlanan "Integration Services" etkinleştirildiğinde performanslı çalışmakta. Bununla birlikte ekran, clipboard, dosya paylaşımı gibi özellikler de aktif olmakta.
Sanal bilgisayar ayarlarından Settings/Management> Integration services adımında aktif olan seçenekler görülebilir. Guest services aktif edilmeli.

https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/supported-ubuntu-virtual-machines-on-hyper-v
Bu dökümandaki tanıma göre gerekli sürücüler zaten Linux kernel ile birlikte gelmekte. Ama malesef beklendiği gibi istenen özellikler çalışmıyor.

Burada 6. adım takip edilmeli.

Düzgün çalışmayan özelliklerden biri ekran ayarları. Düzenlemek için:
https://blogs.msdn.microsoft.com/virtual_pc_guy/2014/09/19/changing-ubuntu-screen-resolution-in-a-hyper-v-vm/

vi kullanımı sıkıntılı olduğu için text dosya düzenlemesinde gedit kullanılabilir:

Dosya paylaşımı

https://www.tectut.com/2015/02/hyper-v-file-sharing-between-and-host-and-guest/
Linux üzerinde yapılan tanımarda gerekli kullanıcı adı şifre bilgileri, windows da oluşturulmalı ve bu kullanıcıya paylaşılan dizin üzerinde yetki tanımlanmalı.