Month: October 2019

備忘:ターミナルのプロンプト変更

ターミナルのプロンプトを変更したい時は 環境変数「PS1」の値を変更する 「\u」はユーザー名 「\h」はホスト名 「\w」は今いるディレクトリ ログインし直すと反映されている 恒久的に変更したい場合は、「/etc/bashrc」とかに書いておく

Jenkins超入門(Vagrant・CentOS7)〜(4)Job作成・後編〜

Jenkins超入門(Vagrant・CentOS7)〜(3)Job作成前編〜 の続き Job作成3〜まとめたrpmを任意のサーバにSCP転送(upload)〜 前回までで (1) Gitからコードを取得して(Checkout) (2) rpmにまとめて(Build-prep、Build) というところまで設定が完了したので、今回は (3) 任意のサーバにSCP転送(upload) というJob設定(Stage)を追加する SCPが少し厄介で、 JenkinsでSCPを使うには、「SSH Agent」というPluginのインストールが必要 なので、流れとしては、 0. 環境準備(SCP先サーバ作成) 1. 「SSH Agent」Pluginをインストール 2. SCPするための鍵設定 3. Job設定 4. いざ実行 という流れ 0. 環境準備(SCP先サーバ作成) SCP先のサーバを作成してこの環境を作る Vagrantで作成する (最初にJenkinsサーバと一緒に作っておいたほうが効率よかった) ※Macのターミナルから操作 起動 ログイン あと、これは必須ではないのだけど 今回、二つのサーバ(Jenkinsサーバ、SCP先のサーバ)を使うので わかりやすいようにターミナル設定を変えておく SCPサーバの方は「[vagrant@jkDst ~]$」と表示されるようにする Jenkinsサーバの方は「[root@jkSv vagrant]#」と表示されるようにする これで準備は完了 1. 「SSH Agent」Pluginをインストール 「SSH Agent」プラグインをインストールする (すでにインストールされていればここの手順は飛ばしてOK) 「Manage Jenkins」をクリック 「Manage Plugins」をクリック 「Available」タブから「SSH …

Jenkins超入門(Vagrant・CentOS7)〜(4)Job作成・後編〜 Read More »

Jenkins超入門(Vagrant・CentOS7)〜(3)Job作成・前編〜

Jenkins超入門(Vagrant・CentOS7)〜(2)Jenkinsサーバ初期設定〜 の続き Job作成1〜gitからコード取得(Checkout)〜 サーバができたのでJobを動かしてみる 前回に引き続き、 こちら を参考に進める Jenkinsを使った自動テスト環境を作る(前編) 今回のJobは (1) Gitからコードを取得して(Checkout) (2) rpmにまとめて(Build-prep、Build) (3) 任意のサーバにSCP転送(upload) という一連のJob この記事では(1)(2)まで作成する 「create new jobs」からjobを作成 (もしこの画面が分からなければ「New Item」 から作成する) item nameは任意の値を入れて、「Pipeline」を選択 「Description」など適宜入力しつつ、下にスクロール 「Pipeline」のセクションにScriptを入れるのだが 今回は自動生成ツールを利用する 「Pipeline Scripts」をクリック 各項目を入力する * Sample Step:checkout: Check out from version control * SCM:Git * Repository URL:https://github.com/hylom/grrreader * Branches to build:*/release Gitに繋がらないというエラーが出る場合は、そもそもgitがjenkinsサーバにインストールされていないのかもしれないのでインストールしてみる 「Failed to connect to repository : …

Jenkins超入門(Vagrant・CentOS7)〜(3)Job作成・前編〜 Read More »

Jenkins超入門(Vagrant・CentOS7)〜(2)Jenkinsサーバ初期設定〜

Jenkins超入門(Vagrant・CentOS7)〜(1)Jenkinsサーバを作成〜 の続き Jenkinsの初期設定 先ほど作成したJenkinsサーバの初期設定をする 「Vagrantfile」で指定したIPアドレスのポート8080番にブラウザからアクセスする 「http://【jenkinsサーバのIP】:8080」 最初に出てくるのは「Unlock Jenkins」の画面 「AdminPassword」はJenkinsサーバの「/var/lib/jenkins/secrets/initialAdminPassword」に記載されているものをコピペする その後は画面のナビ通りに設定 「Customize Jenkins」>『Install suggested plugins』 「Gettin Started」 「Create First Admin User」 「Instance Configuration」 「Jenkins is ready!」 これでセットアップは完了

Jenkins超入門(Vagrant・CentOS7)〜(1)Jenkinsサーバを作成〜

さくらさんのブログを参考にJenkinsをいじってみる Jenkinsを使った自動テスト環境を作る(前編) この記事では、 VagrantでJenkinsサーバonCentOS7を作成するところまで (ホストはMacOS) VagrantでJenkinsサーバonCentOS7を作成する まずはワークディレクトリを作成 VagrantでJenkinsサーバを作成する 「Vagrantfile」を作成 「Vagrantfile」の中身を編集 ※ ご自身の環境に合わせて編集ください 使うbox:centos/7 名前:jenkinsserver ネットワーク:192.168.33.100 ※ 「centos/7」のboxをインストールしていない場合は、インストールの必要があります マシンを起動 起動したらsshでログインする Jenkinsをインストールする wgetとjavaが入っていないので合わせてインストールした javaが入っていないと、jenkinsの起動ができず、以下のようなエラーが発生する 必要バッケージがインストールできたので、jenkinsを起動する 続きは、Jenkins超入門(Vagrant・CentOS7)〜(2)Jenkinsサーバ初期設定〜

Kubernetes超入門(Vagrant・CentOS7)〜(4)Pod作成〜

Podを作る Kubernetes超入門(Vagrant・CentOS7)〜(3)ノード設定〜の続き 作成したkubernetesの環境でhttpサービスを提供するPodを作成してみる PodはvSphere的に言うとクラスタと理解 Podの中にコンテナたちがいるイメージ Podはyamlファイルで作成できる まずはyamlファイルを格納する適当なワークディレクトリ作成 yamlファイル作成 yamlファイルはpodを作るための設計図 今回は、「httpd」と言うイメージ(redhatのサイトから取得)を元にPodを作成する 先ほど作成したyamlファイルを元にPod作成 確認したところ、作成中(「ContainerCreating」)のまま進まない 状況確認 「/etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory」とのこと こちらを参考にエラー対処 http://hylom.net/centos-redhat-registry-certs-error 証明書を入れる必要がある ※「python-rhsm」を入れるという記事もあったがうまくいかなかった ※これをマスターサーバと全てのノードに対して実施しておく 証明書を全てのノードに入れたら、マスターサーバの作業に戻る 先ほど作成したPodを削除して再トライ しばらくすると「Running」のステータスとなった 先ほどのエラーも無くなっている 「Node: kubenodeb/192.168.33.12」からkubenodebで起動していることがわかる kubenodebにログインしてコンテナたちを確認 「kubectl get pod」コマンドでPod情報を拾ってこれる ※kubectlの設定をしている(今回はマスターサーバ)で確認する 「podIP: 172.17.41.2」からPodのIPがわかる Podにhttpアクセスをしてみる httpが無事に起動していることがわかる 以上。

Kubernetes超入門(Vagrant・CentOS7)〜(3)ノード設定〜

ノードの設定 Kubernetes超入門(Vagrant・CentOS7)〜(2)マスターサーバ設定〜の続き ここからはコンテナが稼働するノードの設定 「flannel」と「kubernetes」の設定をして、マスターサーバからノードが見えてくればOK 今回は、コンテナ稼働ノードを2台用意しているので2台それぞれに設定が必要 まずはログイン。kubenodeaの方に入る まずは、hostsの設定をしておく これを設定しておかないと、マスターサーバが、ノードを見つけられない 必要なものをインストール funnel設定 マスターサーバー上のetcdを参照するよう「/etc/sysconfig/flanneld」の「FLANNEL_ETCD_ENDPOINTS」を設定する 「flanneld」と「docker」を起動 kubernetes関連設定 「/etc/kubernetes/config」の「KUBE_MASTER」を設定 「/etc/kubernetes/kubelet」の「KUBELET_ADDRESS」「KUBELET_HOSTNAME」「KUBELET_API_SERVER」を設定 「kube-proxy」と「kubelet」を起動 ログアウト ※「kubenodea」と同様にもう一つのコンテナ稼働ノードの「kubenodeb」にも設定しておく (手順省略) マスターサーバからノードが見えるか確認 マスターサーバからノードが見えるか確認する マスターノードにログイン 2ノードとも見えた これでkubernetesの環境は完成! 続きはKubernetes超入門(Vagrant・CentOS7)〜(4)Pod作成〜

Kubernetes超入門(Vagrant・CentOS7)〜(2)マスターサーバ設定〜

マスターサーバの設定 Kubernetes超入門(Vagrant・CentOS7)〜(1)環境づくり〜の続き 先ほど作成したマスターサーバ「kubemaster」の設定をしていく マスターサーバにログイン 必要なものをインストール ざっくりしか理解していないが etcdは設定情報を複数サーバで共有するもの flannelはサーバ間のネットワーク通信を可能にするもの インストールできているか確認 etcdの設定 etcdの設定をする 設定ファイルは「/etc/etcd/etcd.conf」 「ETCD_LISTEN_CLIENT_URLS」の値を変更する 設定できたので、etcdサービスを起動する flannelの設定 flannelの設定をしていく ノード間のネットワーク設定をするということ 「/etc/sysconfig/flanneld」の「FLANNEL_ETCD_PREFIX」の値を確認しておく 先ほど確認した「/atomic.io/network」のkeyを設定しにいく 設定されたか確認 設定できたのでflannelを起動 kubernetesの設定 一旦「/etc/kubernetes/」配下の設定ファイルを確認する 「apiserver」は、文字通りapiを提供しているサービス。Kubernetesを操作するために必要なサービス 「controller-manager」は、コントローラたちを管理するサービス。コントローラはリソースがうまいこと使われるように管理するもの、とざっくり理解 「kubelet」はpodの状態を管理するサービス。マスターサーバでは使わないので今回は起動しない 「proxy」はノードのルーティングを管理するサービス 「scheduler」は、podをどのノードで起動するかなどを決めるサービス ここでやることは 鍵を作成して「apiserver」「controller-manager」「config」に鍵の場所に付いて設定を追加すること まずは鍵の作成 「/etc/kubernetes/apiserver」の設定変更 「KUBE_API_ADDRESS」「KUBE_API_ARGS」に設定追加 「/etc/kubernetes/controller-manager」の設定変更 「KUBE_CONTROLLER_MANAGER_ARGS」に設定追加 「/etc/kubernetes/config」の設定変更 「KUBE_MASTER」に設定追加 設定ができたので起動していく kubectlの設定 「kubectl」はkubernetesを操作するためのコマンドツール これが先ほど起動した「kube-apiserver」経由でapiを叩きにいく コマンドを打つユーザーや場所で設定をする 必ずしもマスターサーバでなくても良いが、今回はマスターサーバで設定する ユーザーはvagrantユーザーで設定してみる ※環境に合わせて設定ください まずはvagrantユーザーに移動 設定していく kubectlコマンドが打てるか確認 うまくいった SSL/TLS証明書の設定 いまいちなぜ必要か理解していないが、 ここでSSL/TLS証明書の設定が必要らしいので淡々と設定していく 独自証明書作成(「ca.key」「ca.crt」) サーバー鍵作成(「server.key」) KubernetesサービスIPアドレス確認 …

Kubernetes超入門(Vagrant・CentOS7)〜(2)マスターサーバ設定〜 Read More »

Kubernetes超入門(Vagrant・CentOS7)〜(1)環境づくり〜

とうとうvSphereでKubernetesが管理できる時代になるということで、 重い腰を上げてKubernetesを触ってみた 参考にしたのはこちらのページ(ありがとうございます) https://knowledge.sakura.ad.jp/3681/ Vagrant環境でKubernetesを動かしたためVagrantならではの設定も記載しています。 前提条件 Mac OS Vagrant Virtualbox 構成図 Vagrant環境づくり どこでも良いが、作業用のディレクトリを作る Vagrantfileを作成 Kubernetesを管理するマスターサーバとして「kubemaster」 コンテナを動かすノードとして「kubenodea」「kubenodeb」を作成する ※名前とIPは環境に合わせて調整ください ※「centos/7」のboxは入れておいてください VMを起動 VMが起動されているか確認 続きはKubernetes超入門(Vagrant・CentOS7)〜(2)マスターサーバ設定〜