chouseknecht.cluster-up-role

ビルドステータス

cluster-up-role

OpenShiftクライアントをインストールし、oc cluster upを使ってローカルインスタンスを作成します。

これは、Ansible Containerのデモとテストのニーズを支援するために作成され、OpenShiftのインストールと設定ガイドのタスクを自動化します。

具体的には、以下のタスクを実行します:

  • ocクライアントをダウンロードしてインストール
  • OSXで実行している場合、socatをインストール
  • あなたのパブリックIPに関連付けられたホスト名を/etc/hostsに追加
  • クラスターを起動
  • developerアカウントにクラスター管理者の権限を付与
  • ローカルレジストリを公開するためのルートを作成
  • 永続ボリュームを作成
  • ocクライアントを使って、developerとしてクラスターにログインし、プロジェクトをdefaultに設定

対応プラットフォームとテスト

これまで、このロールは主にDocker for Macを使用してOSX上でテストされてきました。また、TravisというUbuntuプラットフォームでもほぼ動作します。したがって、もしOSX以外で使用しようとする場合、バグが見つかる可能性が高いです。もし見つけた場合は、必ず問題を開くか、プルリクエストを提出してください。ロールを最新の状態に保つためです。

ホスト名

デフォルトでは、ホスト名local.openshiftがあなたの*/etc/hostsファイルに追加され、現在のIPアドレスに関連付けられます。別の名前を希望する場合は、openshift_hostname*パラメータを使用してください。

クラスターが作成されると、あなたのローカルネットワークIPアドレスに関連付けられます。ノートパソコンや他のモバイルデバイスで作業している場合、新しいネットワークに移動するたびにクラスターを再作成する必要があることがあります。実際のIPアドレスに関連付けられたホスト名を作成すると、手間が少し軽減されます。

セキュリティなしのレジストリ

Dockerにセキュリティなしのレジストリオプションを追加していない場合、最初に実行するときにエラーが発生します。追加する必要があるサブネットに関するメッセージが表示されます。また、openshift_hostnameの値を追加する必要があります。デフォルトではこの値はlocal.openshiftです。変更を加えた後、Dockerを再起動し、再度ロールを実行すると、全てが正常に進行します。

前提条件

以下がインストールされている必要があります:

  • Docker EngineまたはDocker for Mac
  • sudoアクセス、*/etc/hostsを更新し、ocバイナリを/usr/local/bin*にインストールするため。

注意:Linuxプラットフォームを使用している場合は、dockerコマンドを直接使用できるように、dockerグループを作成する手順に従ってください。

サンプルプレイブック

ロールを実行する際は、gather_factsを真(truthy)な値に設定してください。事実がないと、ロールはホストのIPアドレスやOSファミリーを判断できません。

以下に、すべてのデフォルトパラメータを含むサンプルプレイブックを示します。この正確な例はfiles/cluster-up.ymlにあります。コピーして、環境に合わせて調整してください。

    ---
    - 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

ロールをインストールした後、file/cluster-up.ymlをプロジェクトディレクトリにコピーし、--ask-sudo-passオプションを付けて実行します。以下はその例です:

# ロールをインストール 
$ ansible-galaxy install chouseknecht.cluster-up-role

# ロールのパスからプレイブックを現在の作業ディレクトリにコピー 
$ cp ${ANSIBLE_ROLES_PATH}/chouseknecht.cluster-up-role/files/cluster-up.yml .

# localhostインベントリファイルを作成
$ echo "localhost">./inventory

# プレイブックを実行
$ ansible-playbook -i inventory --ask-sudo-pass cluster-up.yml

Ansible Containerプロジェクトのデプロイ

次の例では、新しいプロジェクトを作成し、Container Enabledロールjenkins-containerをインストールし、JenkinsサービスをローカルのOpenShiftクラスターにデプロイします。

注意:この例を実行するには、Ansible Container 0.3.0をインストールする必要があります。支援が必要な場合は、ソースからのインストールをご覧ください。

# 新しいプロジェクトフォルダを作成
$ mkdir jenkins

# 作業ディレクトリを設定
$ cd jenkins

# プロジェクトを初期化
$ ansible-container init

# jenkins-containerロールをインストール
$ ansible-container install awasilyev.jenkins-container

# 画像を構築
$ ansible-container build

# デプロイメントプレイブックとロールを生成
$ ansible-container shipit openshift --local-images

# 作業ディレクトリをansibleに設定
$ cd ansible

# shipitプレイブックを実行
$ ansible-playbook shipit-openshift.yml

上記により、OpenShift上に新しいプロジェクトjenkinsが作成されました。このプロジェクトを表示するには、https://local.openshift:8443/consoleを開いてOpenShiftコンソールにログインします。ユーザー名はdeveloper、パスワードはdeveloperです。jenkinsをクリックしてプロジェクトの概要を表示します。

以下の画像をクリックすると、Jenkinsサービスデプロイのビデオを見ることができます:

Jenkinsをデプロイ

ロール変数

以下の変数を使用してロールの動作を変更できます:

openshift_github_user: openshift

ocクライアントのダウンロード先が見つかるGitHubリポの所有者

openshift_github_name: origin

GitHubリポの名前

openshift_github_url: https://api.github.com/repos

使用するGitHub APIのエンドポイント。

openshift_release_tag_name: ""

希望するリリースのocバイナリのタグ。指定しない場合、最新のリリースがインストールされます。

openshift_client_dest: /usr/local/bin

ocがインストールされるディレクトリ。PATH内の何かである必要があります。

openshift_force_client_install: yes

ocバイナリがすでに存在する場合、上書きしますか?

openshift_volume_name: project-data

ボリュームの名前。

openshift_volume_path: "{{ lookup('env','HOME') }}/volumes/project/data"

新しいボリュームのために割り当てられるローカルパス。

openshift_hostname: local.openshift

イメージをプッシュする準備ができたときにローカルレジストリを参照するために使用するホスト名。

openshift_recreate: yes

クラスターがすでに実行中の場合、クラスターを停止して再作成しますか?

openshift_up_options: ''

oc cluster upに渡したいオプションを追加。複数のオプションはスペースで区切ります。コマンドラインと同様です。

依存関係

なし

ライセンス

Apache v2

著者

@chouseknecht

プロジェクトについて

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

インストール
ansible-galaxy install chouseknecht.cluster-up-role
ライセンス
apache-2.0
ダウンロード
159
所有者
Ansible Galaxy Engineering Manager