chouseknecht.cluster-up-role
cluster-up-role
Zainstaluj klienta OpenShift i utwórz lokalną instancję za pomocą oc cluster up
.
Stworzono, aby wspierać potrzeby demonstracyjne i testowe Ansible Container poprzez automatyzację zadań w przewodniku Instalacja i konfiguracja OpenShift.
Konkretnie wykonuje następujące zadania:
- Pobiera i instaluje klienta oc
- Instaluje
socat
, jeśli działa na OSX - Dodaje nazwę hosta powiązaną z twoim publicznym adresem IP do pliku /etc/hosts
- Uruchamia klaster
- Przyznaje uprawnienia administratora klastra dla konta developer
- Tworzy trasę, aby udostępnić lokalny rejestr
- Tworzy trwałą jednostkę
- Używając klienta
oc
, loguje się do klastra jako developer i ustawia projekt na default
Obsługiwane platformy i testowanie
Do tej pory ta rola była testowana głównie na OSX używając Docker dla Mac. Prawie działa również na Travis, który jest platformą Ubuntu. Mając to na uwadze, jeśli próbujesz używać jej poza OSX, prawdopodobnie napotkasz błąd. Jeśli tak, proszę, zgłoś problem lub prześlij PR, abyśmy mogli aktualizować rolę.
Nazwa hosta
Domyślnie do pliku /etc/hosts dodawana jest nazwa hosta local.openshift
, powiązana z twoim aktualnym adresem IP. Użyj parametru openshift_hostname, jeśli wolisz inną nazwę.
Gdy klaster jest tworzony, jest powiązany z twoim lokalnym adresem IP w sieci. Jeśli pracujesz na laptopie lub innym urządzeniu mobilnym, możesz być zmuszony do ponownego utworzenia klastra, gdy przejdziesz do nowej sieci. Utworzenie nazwy hosta powiązanej z twoim rzeczywistym adresem IP ułatwia życie.
Niezabezpieczony rejestr
Jeśli nie dodałeś opcji niezabezpieczonego rejestru do Dockera, rola zgłosi błąd przy pierwszym uruchomieniu. Pojawi się komunikat informujący o podsieci, która musi zostać dodana. Będzie również konieczne dodanie wartości openshift_hostname. Domyślnie wartość to local.openshift. Po dokonaniu zmiany i ponownym uruchomieniu Dockera, uruchom rolę jeszcze raz, a tym razem powinna się wykonać w całości.
Wymagania wstępne
Musisz mieć zainstalowane:
- Docker Engine lub Docker dla Mac
- dostęp sudo, aby zaktualizować /etc/hosts i zainstalować binarkę
oc
do /usr/local/bin.
UWAGA: Jeśli jesteś na platformie Linux, upewnij się, że postępujesz zgodnie z instrukcjami utworzenia grupy docker, aby móc uruchamiać polecenia docker
bez użycia sudo.
Przykładowy playbook
Podczas uruchamiania roli upewnij się, że gather_facts jest ustawione na wartość prawdziwą. Bez faktów, rola nie może ustalić adresu IP hosta ani rodziny systemu operacyjnego.
Poniżej znajduje się przykładowy playbook, który zawiera wszystkie domyślne parametry. Ten sam przykład znajdziesz w files/cluster-up.yml. Skopiuj go i dostosuj do swojego środowiska.
---
- hosts: localhost
remote_user: root
connection: local
gather_facts: yes
roles:
- role: chouseknecht.cluster-up-role
openshift_github_user: openshift
openshift_github_name: origin
openshift_github_url: https://api.github.com/repos
openshift_release_tag_name: ""
openshift_client_dest: /usr/local/bin
openshift_force_client_install: yes
openshift_volume_name: project-data
openshift_volume_path: "{{ lookup('env','HOME') }}/volumes/project/data"
openshift_hostname: local.openshift
openshift_recreate: yes
Po zainstalowaniu roli skopiuj file/cluster-up.yml do swojego katalogu projektu i uruchom go z opcją --ask-sudo-pass
. Oto przykład, jak to może wyglądać:
# Instalacja roli
$ ansible-galaxy install chouseknecht.cluster-up-role
# Skopiowanie playbooka z ścieżki ról do bieżącego katalogu roboczego
$ cp ${ANSIBLE_ROLES_PATH}/chouseknecht.cluster-up-role/files/cluster-up.yml .
# Utworzenie pliku inwentarza localhost
$ echo "localhost">./inventory
# Uruchomienie playbooka
$ ansible-playbook -i inventory --ask-sudo-pass cluster-up.yml
Wdrażanie projektu Ansible Container
W poniższym przykładzie stworzymy nowy projekt, zainstalujemy rolę dla kontenerów jenkins-container i wdrożymy usługę Jenkins do naszego lokalnego klastra OpenShift.
UWAGA: aby uruchomić ten przykład, musisz zainstalować Ansible Container 0.3.0. Zobacz Instalacja z kodu źródłowego, jeśli potrzebujesz pomocy.
# Utworzenie nowego folderu projektu
$ mkdir jenkins
# Ustawienie katalogu roboczego
$ cd jenkins
# Inicjalizacja projektu
$ ansible-container init
# Instalacja roli jenkins-container
$ ansible-container install awasilyev.jenkins-container
# Budowanie obrazów
$ ansible-container build
# Generowanie playbooka wdrożeniowego i roli
$ ansible-container shipit openshift --local-images
# Ustawienie katalogu roboczego na ansible
$ cd ansible
# Uruchomienie playbooka shipit
$ ansible-playbook shipit-openshift.yml
Powyższe działania stworzyły nowy projekt na OpenShift o nazwie jenkins
. Aby zobaczyć projekt, zaloguj się do konsoli OpenShift, otwierając https://local.openshift:8443/console. Nazwa użytkownika to developer
, a hasło to developer
. Kliknij na jenkins
, aby zobaczyć podsumowanie projektu.
Kliknij poniższy obrazek, aby obejrzeć wideo z wdrażania usługi Jenkins:
Zmienne roli
Użyj poniższych zmiennych, aby zmodyfikować zachowanie roli:
openshift_github_user: openshift
Właściciel repozytorium GitHub, z którego można pobrać klienta oc
openshift_github_name: origin
Nazwa repozytorium GitHub
openshift_github_url: https://api.github.com/repos
Punkt końcowy API GitHub, którego należy użyć.
openshift_release_tag_name: ""
Tag dla pożądanej wersji binarki
oc
. Jeśli nie podano, zainstalowana zostanie najnowsza wersja.
openshift_client_dest: /usr/local/bin
Katalog, w którym zostanie zainstalowany
oc
. Musi być w twojej ścieżce PATH.
openshift_force_client_install: yes
Jeśli binarka
oc
już istnieje, czy powinna być nadpisana?
openshift_volume_name: project-data
Nazwa woluminu.
openshift_volume_path: "{{ lookup('env','HOME') }}/volumes/project/data"
Lokalna ścieżka, w której zostanie przydzielona przestrzeń dla nowego woluminu.
openshift_hostname: local.openshift
Nazwa hosta, której użyjesz do odniesienia się do lokalnego rejestru, gdy będziesz gotowy do przesłania obrazów.
openshift_recreate: yes
Jeśli klaster już działa, czy ma być zabity i utworzony ponownie?
openshift_up_options: ''
Dodaj wszelkie opcje, które chcesz przekazać do
oc cluster up
. Oddziel wiele opcji spacją, tak jak na linii poleceń.
Zależności
Brak
Licencja
Apache v2
Autor
Install the latest oc client and create a local OpenShift cluster using `oc cluster up`.
ansible-galaxy install chouseknecht.cluster-up-role