Skip to content

Commit

Permalink
Change of ssh hostname, update ruby docs
Browse files Browse the repository at this point in the history
  • Loading branch information
by-cx committed Nov 25, 2023
1 parent 8a8206e commit de2c9c5
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 30 deletions.
6 changes: 3 additions & 3 deletions docs/cs/apps/golang.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ Naše Runtime prostředí obsahuje různé verze Golang kompilátoru. Používá

Nejbezpečnější způsob nasazení nové verze vašeho kódu je zkopírovat kód přímo do kontejneru a zkompilovat ho tam. Postup je stejný jako u kompilace ve vašem vývojovém prostředí a celý proces může vypadat třeba takto:

rsync -av --delete -e "ssh -p 24509" cesta/ke/golang/kodu/ app@node-16.rosti.cz:/srv/app/
ssh -p 24509 app@node-16.rosti.cz
rsync -av --delete -e "ssh -p 24509" cesta/ke/golang/kodu/ app@ssh.rosti.cz:/srv/app/
ssh -p 24509 app@ssh.rosti.cz
cd app
go build
supervisorctl restart app

Rsync nakopíruje změny. V příkladu výše jsou použity port a adresa nodu, které se neshoduje s tím, co dostala přiděleno vaše aplikace. Obojí tedy změňte podle informací z administrace. To samé platí pro další řádek, kde se připojujeme přes SSH do kontejneru. Pak přejdeme do adresáře app, kam jsme nakopírovali kód a sestavíme ho pomocí *go build*. Nakonec restartujeme běžící proces a máme hotovo.
Rsync nakopíruje změny. V příkladu výše je použit port, který se neshoduje s tím, co dostala přiděleno vaše aplikace. Změňte ho tedy podle informací z administrace. To samé platí pro další řádek, kde se připojujeme přes SSH do kontejneru. Pak přejdeme do adresáře app, kam jsme nakopírovali kód a sestavíme ho pomocí *go build*. Nakonec restartujeme běžící proces a máme hotovo.

Můžete ale zavolat *go build* lokálně a pomocí rsync jen zkopírovat finální binárku a nakonec restartovat proces běžící v kontejneru pomocí *supervisorctl*.

Expand Down
2 changes: 1 addition & 1 deletion docs/cs/mongo.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ A to je vše. Po opětovném přihlášení do SSH by měl fungovat i *mongo* kl

Pokud se chcete připojit k této MongoDB na svém vlastním počítači, pomůže SSH tunel:

ssh -p <PORT> -L 27018:127.0.0.1:27018 app@node-<ID>.rosti.cz
ssh -p <PORT> -L 27018:127.0.0.1:27018 app@ssh.rosti.cz

Tento příkaz zpřístupní port 27018 v kontejneru na lokálním portu stejného čísla.

Expand Down
4 changes: 2 additions & 2 deletions docs/cs/quickstart/databases.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ Kde *quick_st_1894* a *store5.rosti.cz* musíme nahradit za údaje pro naši dat

Databáze nemáme přístupné z internetu, ale pokud potřebujete s databází pracovat na svém lokálním počítači, můžete použít SSH tunel. Pro výše vytvořenou databázi se takový tunel tvoří takto:

ssh -L 127.0.0.1:3306:store5.rosti.cz:3306 -p 24509 app@node-16.rosti.cz
ssh -L 127.0.0.1:3306:store5.rosti.cz:3306 -p 24509 app@ssh.rosti.cz

Použili jsme SSH přístup k aplikaci vytvořené v předchozích částech a protunelovali port databáze 3306 na lokální port 3306. **Nezapomeňte změnit port v parametru -p, node a případně adresu databáze**. Ani jedno nemusí být stejné jako v příkladu výše.
Použili jsme SSH přístup k aplikaci vytvořené v předchozích částech a protunelovali port databáze 3306 na lokální port 3306. **Nezapomeňte změnit port v parametru -p a případně adresu databáze**. Ani jedno nemusí být stejné jako v příkladu výše.

Pokud vše proběhlo správně, máte databázi dostupnou stejně jako kdyby běžela na vašem počítači a můžete k ní přistupovat nástroji na které jste zvyklí.

Expand Down
4 changes: 2 additions & 2 deletions docs/cs/quickstart/first_deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ Všichni uživatelé a jejich aplikace mají společný load balancer, který b

Pojďme se připojit do aplikace, kterou jsme v minulé části vytvořili:

ssh -p 24509 app@node-16.rosti.cz
ssh -p 24509 app@ssh.rosti.cz

Uživatelské jméno *app* je pro všechny aplikace stejné. Port a adresa nodu se ale mění a u vaší aplikace bude obojí jiné. Pro připojení doporučujeme využít SSH klienta v Linuxu či na Mac OS X. Na Windows můžete použít Linux for Windows Subsystem for Linux (WSL) nebo třeba Putty. Nicméně je možné využít libovolného SSH klienta. Přes SSH se připojujete přímo do kontejneru, kde vaše aplikace poběží. Kromě SSH přístupu můžete použít i SCP nebo SFTP na kopírování souborů.
Uživatelské jméno *app* je pro všechny aplikace stejné. Port se ale mění a u vaší aplikace bude obojí jiné. Pro připojení doporučujeme využít SSH klienta v Linuxu či na Mac OS X. Na Windows můžete použít Linux for Windows Subsystem for Linux (WSL) nebo třeba Putty. Nicméně je možné využít libovolného SSH klienta. Přes SSH se připojujete přímo do kontejneru, kde vaše aplikace poběží. Kromě SSH přístupu můžete použít i SCP nebo SFTP na kopírování souborů.

Když se připojíte do kontejneru, co jsme vytvořili v předchozí části, najdete tam ukázkové nastavení, které můžete využít pro nasazení vlastního kódu. S výjimkou PHP je **základní princip předhodit Nginxu, který už v kontejneru je, HTTP server, který poslouchá na portu 8080**. Na ten Nginx ve výchozím nastavení přesměrovává požadavky, které na něj přijdou. PHP je nastavené trochu jinak, protože u něj používáme PHP-FPM a tak komunikace mezi procesem s vaší aplikací nepoužívá HTTP protokol ale variantu na FastCGI protokol.

Expand Down
4 changes: 2 additions & 2 deletions docs/cs/srv.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ Všechno, co je mimo adresář */srv* je smazáno při některých operacích s

Pokud si chcete aplikaci zazálohovat, stačí vám zkopírovat adresář */srv* a budete mít všechno co je k vaší aplikaci relevantní. Zálohovat můžete třeba takovýmto příkazem:

ssh app@node-16.rosti.cz -p 24509 tar cjf -C / - srv > backup.tar.bz2
ssh app@ssh.rosti.cz -p 24509 tar cjf -C / - srv > backup.tar.bz2

Nezapomeňte změnit adresu nodu a SSH port.
Nezapomeňte změnit SSH port.


14 changes: 7 additions & 7 deletions docs/cs/ssh.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@ Přístup k aplikaci přes SSH je alfou a omegou Roští. Málo kde ho dostanete

Najdete je v info kartě aplikace a vypadají takto:

app@node-4.rosti.cz:12360
app@ssh.rosti.cz:12360

Kde:

* **app** je uživatel
* **node-4.rosti.cz** je server
* **ssh.rosti.cz** je server
* **12360** je port

U vaší aplikace budou samozřejmě hodnoty jiné.

!!! important "Důležitá poznámka"
Uživatel *app* je pro všechny aplikace stejný. *Server* i *port* se pak mohou aplikace od aplikace lišit. V info kartě všechny důležité údaje vypisujeme včetně URI a příkazu pro příkazovou řádku.
Uživatel *app* je pro všechny aplikace stejný. V info kartě všechny důležité údaje vypisujeme včetně URI a příkazu pro příkazovou řádku.

## Přístup k plnohodnotnému shellu (BASH)

Expand All @@ -37,7 +37,7 @@ SSH ale není jen o příkazové řádce. Je to univerzální kanál pro bezpeč
SOCK proxy vám umožní dívat se na web z pohledu vaší aplikace. Pokud zavoláte v Linuxu následující:

```bash
ssh app@node-<X>.rosti.cz -p 10xxx -D 1234
ssh app@ssh.rosti.cz -p 10xxx -D 1234
```

Tak se na lokálním portu 1234 otevře SOCK proxy, na kterou můžete nasměrovat svůj prohlížeč. Všechny stránky které budete procházet teď budete procházet skrze vzdálený server stejně jako by to dělala vaše aplikace.
Expand All @@ -48,7 +48,7 @@ Tuto vlastnost umí na Windows zprostředkovat Putty.

SSH tunely jsou mocným nástrojem, který vám na Roští zpřístupní přístup k databázi. Když chcete například zpřístupnit interní port MySQL databáze, zavoláte následující příkaz:

ssh -L 127.0.0.1:3306:storeX.rosti.cz:3306 -p PORT app@node-Y.rosti.cz
ssh -L 127.0.0.1:3306:storeX.rosti.cz:3306 -p PORT app@ssh.rosti.cz

Kde **PORT**, **X** a **Y** nahradíte za SSH port vaší aplikace, číslo databázového serveru kde máte databázi a číslo server kde máte aplikaci samotnou.

Expand All @@ -67,7 +67,7 @@ Po spuštění příkazu se vygeneruje klíč a budete dotázání na umístěn

## Jak dostat klíč na server

ssh-copy-id -i '/home/<LOKÁLNÍ UŽIVATEL>/.ssh/<NÁZEV KLÍČE>' app@node-<X>.rosti.cz -p<PORT>
ssh-copy-id -i '/home/<LOKÁLNÍ UŽIVATEL>/.ssh/<NÁZEV KLÍČE>' app@ssh.rosti.cz -p<PORT>

Toto je nejlepší způsob jak dostat klíč na server. Klient se automaticky připojí na server a vytvoří složku *~/.ssh* s patřičnými oprávněními. V této složce pak vytvoří soubor *authorized_keys* s vaším klíčem. Od této chvíle nebudete dotazování na heslo a připojení bude bezpečnější.

Expand All @@ -76,7 +76,7 @@ Toto je nejlepší způsob jak dostat klíč na server. Klient se automaticky p
Do souboru *~/.ssh/config* vložte následující text.

Host muj-web.cz
Hostname node-<X>.rosti.cz
Hostname ssh.rosti.cz
User app
Port <PORT>
IdentityFile ~/.ssh/rosti
Expand Down
14 changes: 11 additions & 3 deletions docs/old/apps/ruby.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,19 @@ Supervisor je nástroj, který spravuje procesy běžící na pozadí, což vaš

![Ruby aplikace - nastavení parametrů](../../imgs/ruby_app_param.png)

## Nasazení aplikace
## Runtime 2023.12-1 a pozdější

## Před runtime 2023.12-1

V runtime 2023.12-1 jsme Unicorn nahradili [aplikačním serverem Passenger](https://github.com/phusion/passenger), který běží ve standalone režimu, což znamená, že kromě samotného Passengeru automaticky naběhne i Nginx, který je Passengerem spravovaný.

Nasazení kódu je jednoduché - stačí ho nakopírovat do adresáře **/srv/app/public**.

### Nasazení aplikace

Kontejner s Ruby má na Roští stejnou strukturu jako kontejnery pro jiné technologie, takže pokud už u nás něco hostujete, budete to mít jednodušší. Po připojení do vašeho kontejneru přes SSH nebo SFTP nakopírujte svůj kód do adresáře */srv/app*. Sem patří všechen kód, který má být veřejný.

Ukázková aplikace běží pod webovým serverem Unicorn[](http://unicorn.bogomips.org/) na portu 8080. Před Unicorn je ještě navěšený váš vlastní Nginx, který Unicornu dělá reverzní proxy a můžete v něm kromě různých přesměrování řešit také cache a servírování statických souborů. Nginx běží na portu 8000, což je port, na který náš load balancer posílá požadavky na nastavené domény.
Ukázková aplikace běží pod [webovým serverem Unicorn](http://unicorn.bogomips.org/) na portu 8080. Před Unicorn je ještě navěšený váš vlastní Nginx, který Unicornu dělá reverzní proxy a můžete v něm kromě různých přesměrování řešit také cache a servírování statických souborů. Nginx běží na portu 8000, což je port, na který náš load balancer posílá požadavky na nastavené domény.

Pravděpodobně budete chtít trochu poupravit spouštění vašeho kódu a to se dělá v souboru */srv/conf/supervisor.d/ruby.conf*, jehož obsah vypadá podobně jako tento:

Expand Down Expand Up @@ -43,7 +51,7 @@ supervisorctl restart app
Podobnosti jsou vysvětlený v textu o supervisoru odkazovaném výše.


## Nginx
### Nginx

Nginx je již nakonfigurovaný a nejčastěji budete přidávat do konfigurace servírování statických souborů. To je možné vyřešit takto:

Expand Down
18 changes: 9 additions & 9 deletions docs/old/ssh.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ Přístup k aplikaci přes SSH je alfou a omegou Roští. Málo kde ho dostanete

Najdete je v info kartě aplikace a vypadají takto:

app@node-4.rosti.cz:12360
app@ssh.rosti.cz:12360

Kde:

* **app** je uživatel
* **node-4.rosti.cz** je server
* **ssh.rosti.cz** je server
* **12360** je port

U vaší aplikace budou samozřejmě hodnoty jiné.
U vaší aplikace budou hodnoty jiné.

!!! important "Důležitá poznámka"
Uživatel *app* je pro všechny aplikace stejný. *Server* i *port* se pak mohou aplikace od aplikace lišit. V info kartě všechny důležité údaje vypisujeme včetně URI a příkazu pro příkazovou řádku.
Expand All @@ -37,7 +37,7 @@ SSH ale není jen o příkazové řádce. Je to univerzální kanál pro bezpeč
SOCK proxy vám umožní dívat se na web z pohledu vaší aplikace. Pokud zavoláte v Linuxu následující:

```bash
ssh app@node-<X>.rosti.cz -p 10xxx -D 1234
ssh app@ssh.rosti.cz -p 10xxx -D 1234
```

Tak se na lokálním portu 1234 otevře SOCK proxy, na kterou můžete nasměrovat svůj prohlížeč. Všechny stránky které budete procházet teď budete procházet skrze vzdálený server stejně jako by to dělala vaše aplikace.
Expand All @@ -48,9 +48,9 @@ Tuto vlastnost umí na Windows zprostředkovat Putty.

SSH tunely jsou mocným nástrojem, který vám na Roští zpřístupní přístup k databázi. Když chcete například zpřístupnit interní port MySQL databáze, zavoláte následující příkaz:

ssh -L 127.0.0.1:3306:storeX.rosti.cz:3306 -p PORT app@node-Y.rosti.cz
ssh -L 127.0.0.1:3306:storeX.rosti.cz:3306 -p PORT app@ssh.rosti.cz

Kde **PORT**, **X** a **Y** nahradíte za SSH port vaší aplikace, číslo databázového serveru kde máte databázi a číslo server kde máte aplikaci samotnou.
Kde **PORT** a **X** nahradíte za SSH port vaší aplikace a číslo databázového serveru kde máte databázi.


## Omezení
Expand All @@ -67,7 +67,7 @@ Po spuštění příkazu se vygeneruje klíč a budete dotázání na umístěn

## Jak dostat klíč na server

ssh-copy-id -i '/home/<LOKÁLNÍ UŽIVATEL>/.ssh/<NÁZEV KLÍČE>' app@node-<X>.rosti.cz -p<PORT>
ssh-copy-id -i '/home/<LOKÁLNÍ UŽIVATEL>/.ssh/<NÁZEV KLÍČE>' app@ssh.rosti.cz -p<PORT>

Toto je nejlepší způsob jak dostat klíč na server. Klient se automaticky připojí na server a vytvoří složku *~/.ssh* s patřičnými oprávněními. V této složce pak vytvoří soubor *autorized_keys* s vaším klíčem. Od této chvíle nebudete dotazování na heslo a připojení bude bezpečnější.

Expand All @@ -76,9 +76,9 @@ Toto je nejlepší způsob jak dostat klíč na server. Klient se automaticky p
Do souboru *~/.ssh/config* vložte následující text.

Host muj-web.cz
Hostname node-<X>.rosti.cz
Hostname ssh.rosti.cz
User app
Port <PORT>
IdentityFile ~/.ssh/rosti

Díky tomuto nastavení už nebudete muset nikde kopírovat hostname, port a uživatele. Vše proběhne automaticky při použítí příkazu ssh muj-web.cz.
Díky tomuto nastavení už nebudete muset nikde kopírovat hostname, port a uživatele. Vše proběhne automaticky při použití příkazu ssh muj-web.cz.
2 changes: 1 addition & 1 deletion docs/old/storages/mongo.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ A to je vše. Po opětovném přihlášení do SSH by měl fungovat i *mongo* kl

Pokud se chcete připojit k této MongoDB na svém vlastním počítači, pomůže SSH tunel:

ssh -p <PORT> -L 27018:127.0.0.1:27018 app@node-<ID>.rosti.cz
ssh -p <PORT> -L 27018:127.0.0.1:27018 app@ssh.rosti.cz

Tento příkaz zpřístupní port 27018 v kontejneru na lokálním portu stejného čísla.

Expand Down

0 comments on commit de2c9c5

Please sign in to comment.