chouseknecht.cluster-up-role

Status budowy

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:

Wdrażanie Jenkinsa

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

@chouseknecht

O projekcie

Install the latest oc client and create a local OpenShift cluster using `oc cluster up`.

Zainstaluj
ansible-galaxy install chouseknecht.cluster-up-role
Licencja
apache-2.0
Pobrania
159
Właściciel
Ansible Galaxy Engineering Manager