Udostępnianie, dostęp do portu na zdalnej maszynie za pomocą ssh

Narzędzie, które używasz potrzebuje dostępu do konkretnego portu na zdalnej maszynie.
Zdalny serwer nie udostępnia jednak portu, który potrzebujesz :(
Na szczęscie jest na to obejście :)

Wystarczy przemapować port na taki który Ci odpowiada za pomocą ssh. Potem używasz zdalnego serwera jak lokalnej maszyny.

Oto komenda, która to umożliwia:
ssh twoj.login@wyjsciowa.domena -A -L 8888:docelowa.domena.ktora.jest.widoczna.z.wyjsciowej:9200

9200 jest portem na zdalnej maszynie
8888 to port na, który mapujemy

Opublikowano Bez kategorii, config, inżynieria opogramowania, linux, mac, ubuntu | Otagowano , , , , | Komentowanie nie jest możliwe

Podzielenie, split, projektu git bez utraty historii

Czasami projekt z czasem rośnie do takich rozmiarów, że najlepiej go podzielić na kilka mniejszych.
W takim wypadku dobrze jest jak projekty powstałe w ten sposób będą posiadały oddzielne repozytoria git.
Po podziale chcemy oczywiście aby historia zmian ocalała proces i nie uległa zniszczeniu.

Na szczęście git jest potężny i droga podziału jest dość prosta.

Do rzeczy :)

Założenie
nasz projekt znajdujący się w katalogu wielki-projekt posiada podkatalog, który chcemy przesunąć aby egzystował jako odrębny projekto nazwie do-przesuniecia

Proces
1. uruchom terminal
2. udaj się do katalogu projektu (w nim powinien znajdować się podkatalog do-przesuniecia)
3. utwórz branch wyłącznie z plikami z katalogu do-przesuniecia
git subtree split --prefix=do-przesuniecia/ --branch=do-przesuniecia-branch
4. przejdź poziom wyżej (do katalogu nadrzędnego do twojego projektu)
cd ..
5. utworz nowy projekt (przesuniety) wraz z repozytorium git

mkdir przesuniety
cd przesuniety
git init
git pull ../wieki-projekt do-przesuniecia-branch

6. dodaj zdalne repozytorium do świerzo utworzonego projektu
git remote add origin ssh://git@TWOJ_SERVER_GIT:PORT/TWOJ_PROJEKT_GIT.git
7. wyślij zmiany na serwer
git push -u origin –all

TO WSZYSTKO :)

Opcjonalnie w starym projekcie możesz troche poczyścić.
W terminalu, wielki-projekt

git reflog expire --expire=now --all
git repack -ad
git gc --aggressive --prune=now

Opublikowano git | Otagowano , , , , , , , , , | Komentowanie nie jest możliwe

Udostępnianie portu przez SSH

Jak podłączyć się do zdalnej maszyny i używać jej jak lokalnej? Jak udostępnić lokalnie port, który jest normanie niedostępny lub już zajęty?

Rozwiązanie jest proste:

ssh your.name@es.server.address -L 9500:localhost:9200

W tym wypadku udostępniam port 9200 ze zdalnej maszyny na lokalny port 9500.

Opublikowano Bez kategorii | Komentowanie nie jest możliwe

Simple export and import of ElasticSearch indexes and mappings

In ElasticSearch you can export / import an index using snapshots
This is a convenient way supported natively.

But sometimes you don’t have access to server directories where snapshots are saved or simply you don’t want that overhead.
In this case you should look at elasticsearch-dump tool. This tools allows to export, import or move indexes and mappings on fly!
It’s very nice if you „just” want to copy an index or mapping from one place to another without configuration burden :)

Examples

copy mappings from first-index to the second-index

elasticdump \
--input=http://localhost:9400/first-index \
--output=http://localhost:9200/second-index \
--type=mapping

copy data from first-index to the second-index

elasticdump \
--input=http://localhost:9400/first-index \
--output=http://localhost:9200/second-index \
--type=data

Here is the link to the github project:
https://github.com/taskrabbit/elasticsearch-dump

Do you want to know more about ElasticSearch?
Check the BEST book I ever read … link bellow!

Opublikowano elasticsearch | Otagowano , , , , | Komentowanie nie jest możliwe

Scala Goodness: passing parameter to the typesafe config

If you want to pass a parameter to the typesafe config which overrides config property, you’ve to slightly change config property itself.

So, let’s see how the config property looks like:

param {
input1 = "default value for input 1"
input1 = ${?INPUT1}
port2 = "default value for input 2"
port2 = ${?INPUT2}
}

What you do is:
– you define first default value for the property
– second, you override default value with parameter value, if existing

Now, when you want to run your scala app from sbt simply pass an parameter with new value:

sbt run -Dparam.input1="i'm passed"

In this case input1 will get new value from passed parameter (here „i’m passed”) and the input2 will have default value (here „default value for input 2″).

Opublikowano config, sbt, scala, scala goodness, typesafe | Otagowano , , , , , | Komentowanie nie jest możliwe