Wiele rzeczy da się zrobić przez openshift’owego klienta webowego jednak gdzie jest w tym fun 🙂
Aby cieszyć się apką na Openshift należy posiadać zainstalowanego Git, dodatkowo warto zauważyć, że wszystkie przykłady robione są za pomocą terminalu Git Bash na Windows’ie
Wspomnę krótko o konfiguracji a następnie przejdę do konkretnych rzeczy.
Aby zacząć imprezę trzeba założyć konto na Openshift.
Robimy signup, potwierdzamy założenie konta. akceptujemy warunki i do dzieła:
- W pierwszej kolejności warto zdefiniować namespace pod adresem
https://openshift.redhat.com/app/console/settings
załóżmy, że wybrałem przemekb więc link do aplikacji np: my_app którą stworze na Openshift będzie wyglądał tak:
my_app-przemekb.rhcloud.com
Warto zaznaczyć, że namespace musi być unikalny więc trzeba się pogodzić z tym, że wiele nazw może być odrzuconych
Oczywiście miało być o konsolce więc jak już mamy zainstalowany rch tool (punkt3) wtedy wystarczyrhc domain create przemekb
namespace można usunąć poleceniem delete przemekb lub zmienić poleceniem update staraNazwa nowaNazwa – ale warto pamiętać, że jak już mamy zdeployowane aplikacje to mogą się pojawić problemy z linkami
- Należy dodać na Openshift’cie public key więc połączenia SSH będą możliwe
(ops! kolejny spory temat)
https://www.openshift.com/developers/remote-access
W skrócie jeśli na kompie w lokacji naszego użytkownika znajduje się już folder .ssh a w nim plik z rozszerzeniem .pub należy skopiować jego zawartość i wkleić na stronie z ustawieniami. Jeśli nie mamy klucza trzeba go wygenerować. - Następnie trzeba zainstalować ichniego toola konsolowego rch.
Aby tego dokonać należy posiadać Ruby – instalacja Ruby to temat na osobnego posta więc tu tylko wspomnę, że moja wersja to:ruby --version ruby 2.0.0p0 (2013-02-24) [i386-mingw32]
Jak już mamy zainstalowanego toola rhc to można startować z robieniem fajnych rzeczy.
- Na początek zmiana userów – dostajemy tylko trzy cardrige do wykorzystania więc często tworzy się kolejne konto do testów. Korzystając z rhc pozostajemy domyślnie zalogowani na danym koncie – ale nie ma problemu aby przełączyć się na nowe konto:
rhc setup -l user@gmail.com
Zostaniemy grzecznie poproszeni o hasło. Po zalogowaniu możliwe jest pytanie o token dzięki któremu nie trzeba będzie używać hasła.
- Aplikacje można stworzyć przez web klienta lub konsolke. Oto przykład z konsolki – javowa apka na jboss’ie :
rhc app create myapp jbossas-7
Tworząc apke przez konsolke automatycznine tworzone jest repo z nazwą apki w bieżącym katalogu konsolki.
- Usunięcie jest równie proste
rhc app delete myapp --confirm
- Do projektu maven’owego dodajemy profil openshift gdyż z tym profilem będzie budowana nasza apka po wrzuceniu kodziku na openshift’owe repo (przed tagiem </projects> koniecznie w tagu <profiles></profiles>)
<profile> <!-- When built in OpenShift the 'openshift' profile will be used when invoking mvn. --> <!-- Use this profile for any OpenShift specific customization your app will need. --> <!-- By default that is to put the resulting archive into the 'deployments' folder. --> <!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html --> <id>openshift</id> <build> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <outputDirectory>deployments</outputDirectory> <warName>ROOT</warName> </configuration> </plugin> </plugins> </build> </profile>
- Dodanie projektu z Github do repo (musimy znajdować się w katalogu repo) :
#usunięcie default'owego poma git rm -rf src/ pom.xml git commit -am "removed default files"; #dodanie repo z Github i skopiowanie kodu git remote add myapp -m master git://github.com/shekhargulati/notebook-part1.git git pull -s recursive -X theirs notebook master #po pushu apka zostanie automatycznie zdeployowana git push
- Dodanie poprzez wrzucenie pliku .war – tu należy pamiętać, że wrzucając plik do repo naszej aplikacji należy zmienić jego nazwe na ROOT.war
#katalog z projektem maven'owym cd c:/Work/Projects/my_app #zbudowanie apki mvn clean install -Dspring.profile.active="testing" #kopia do katalogu z ROOT.war projektu openshift'owego cp c:/Work/Projects/my_app/target/my_app.war c:/Workspace/Projects/my_openshift_app/webaps # W katalogu openshift'owym usuwamy ROOT.war cd c:/Work/Projects/my_openshift_app/webapps/ rm ROOT.war # zmieniamy nazwę naszej warki mv my_app.war ROOT.war # dodajemy, commitujemy i puszujemy git add -A git commit -m "ROOT.war added" git push
W następnym poście bliżej przyjrzę się wrzuceniu konkretnego repo z GitHub na Openshift oraz podpięciu budowania apki na Jenkins CI http://przemek.yum.pl/openshift-2-buduj-w-chmurze-z-jenkins/
No i zapraszam do lektury dokumentacji Openshift bo jest tam całkiem sporo ciekawych rzeczy https://access.redhat.com/site/documentation/en-US/OpenShift/2.0/html-single/User_Guide/index.html