レッドハットの杉村です。Ansible のテクニカルサポートをしています。
Ansible Automation Platform は旧 Ansible Tower の時代から、OpenShift での動作をサポートしています。これまでも自宅で試してみようという記事をこれまでも何度か書いてきました。
OpenShift が SIngle Node OpenShift (SNO) でインストールできるようになったということで、CRC をインストールして使っていたものを置き換えて使うことにしてみます。このPCに SNO をインストールして、Ansible Automation Platform 2.1 (AAP 2.1) を Operator でインストールするのを今回の記事の目標にします。
- Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz 12core
- 64GB RAM
- 1TB SSD
ネットワークの準備
PC を USB メモリから起動してインストールしていくのですが、起動した後に Red Hat のサイトとやりとりしながらインストールを進めるので、DHCP で適切なIPアドレスが割り当てられてインターネット接続ができるという環境が必要です。DHCP サーバになっている自宅のルータを設定して、MAC アドレスについて IP アドレスを固定で割り当てるようにしました。
DNS についても、あらかじめ準備しておく必要があります。dnsmasq で設定しました。
まとめますと、PC につける IP アドレスやホスト名をこのようにしています。
- IPアドレス: 192.168.0.6 (DHCPで割り当て)
- ホスト名: ocp49.sugimura.home
- DNS (dnsmasq) の sugimura.home ドメイン (下記)
local=/sugimura.home/ domain=sugimura.home server=192.168.0.1 expand-hosts address=/ocp.sugimura.home/192.168.0.6 address=/apps.ocp.sugimura.home/192.168.0.6
最後に、普段使う端末から SSH でログインするための鍵ペアを作っておきます。普段使っているものがあればそのまま使えます。公開鍵を設定するので用意しておいてください。
Assisted Installer の画面にアクセスしてUSBを作る
Create New Cluster のボタンを押して、インストールする構成のための設定をまず作ります。
Assisted Installer を選びます。
- Cluster name: ocp
- Base domain: sugimura.home
- OpenShift version: OpenShift 4.9.9
- Install single node OpenShift (SNO) にチェック
- Edit pull secret にチェックして内容を別ファイルに保存
次の画面で Add hosts を押して公開鍵を設定します。この公開鍵をインストールすることで、後で SSH でアクセスできるようになります。
ISO イメージが作成されるので、ダウンロードします。
USB から起動
Web ブラウザの設定画面はそのままにしておいて別な作業をします。
ダウンロードした ISO イメージを USB メモリに入れて、PC に挿して起動します。ISO を書くのは何を使ってもいいですが、わたしはこれを愛用しています。
USB から起動するための設定は PC ごとに異なるので、あれこれ試してください。わたしの PC の場合だと、SSD に設定されている grub のプロンプトを出して exit で抜けると USB デバイスから起動するようになっていました。
画面で設定しつつ進める
USB から起動してしばらく経つと、起動したことを認識してくれます。
ネットワークを設定して、次に進みます。
最後に全体の確認があります。
Install cluster のボタンを押すと実際のインストール作業が進みます。
しばらく経ったら終わります。kubeadmin ユーザのパスワードが生成されるので、メモっておいてください。Download kubeconfig のボタンも押して、保存しておきましょう。
途中で多くのファイルのダウンロードや再起動があるので、焦らずじっくり待つのがコツです。10〜15分くらいで終わりました。
Web コンソールにログイン
表示されている Web Console URL にアクセスして、kubeadmin ユーザでログインします。
無事ログインできました。
アップデート
CRC とは違って SNO は機能制限がされていない OpenShift なので、アップデートもできます。4.9.9 から 4.9.13 にアップデートしてみました。この Web Console から実行して、1時間くらいで無事更新されました。
ストレージを作る
インストール直後の状態では、ストレージ (Persistent Volume) がありません。SNO では hostPath として作ります。
SSH でログインして、スクリプトを作って実行しました。50GB x 10 の PV を作るものです。
$ ssh -i ~/.ssh/id_ed25519 core@192.168.0.6 ... [core@ocp49 ~]$ cat storage.sh #!/bin/sh for i in $(seq -w 10) do sudo mkdir -p /var/lib/storage/pv$i sudo chmod -R 777 /var/lib/storage/pv$i sudo chcon -R -t container_file_t /var/lib/storage/pv$i cat << HOSTPATHPV > storagepv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: pv$i spec: capacity: storage: 50Gi accessModes: - ReadWriteOnce - ReadWriteMany - ReadOnlyMany persistentVolumeReclaimPolicy: Recycle hostPath: path: /var/lib/storage/pv$i HOSTPATHPV oc create -f storagepv.yaml rm -f storagepv.yaml done [core@ocp49 ~]$
kubeadmin でログインしてからスクリプトを実行します。
[core@ocp49 ~]$ oc login https://api.ocp.sugimura.home:6443 --username=kubeadmin --insecure-skip-tls-verify=true Authentication required for https://api.ocp.sugimura.home:6443 (openshift) Username: kubeadmin Password: XXXXXXXXXXXXXXXXXX Login successful. You have access to 66 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default". [core@ocp49 ~]$ [core@ocp49 ~]$ sh storage.sh persistentvolume/pv01 created persistentvolume/pv02 created persistentvolume/pv03 created persistentvolume/pv04 created persistentvolume/pv05 created persistentvolume/pv06 created persistentvolume/pv07 created persistentvolume/pv08 created persistentvolume/pv09 created persistentvolume/pv10 created [core@ocp49 ~]$ [core@ocp49 ~]$ oc get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pv01 50Gi RWO,ROX,RWX Recycle Available 17s pv02 50Gi RWO,ROX,RWX Recycle Available 17s pv03 50Gi RWO,ROX,RWX Recycle Available 17s pv04 50Gi RWO,ROX,RWX Recycle Available 17s pv05 50Gi RWO,ROX,RWX Recycle Available 17s pv06 50Gi RWO,ROX,RWX Recycle Available 17s pv07 50Gi RWO,ROX,RWX Recycle Available 17s pv08 50Gi RWO,ROX,RWX Recycle Available 17s pv09 50Gi RWO,ROX,RWX Recycle Available 17s pv10 50Gi RWO,ROX,RWX Recycle Available 17s [core@ocp49 ~]$
作った PV は Web Console からも確認できます。あとは PVC の要求に応じて割り当ててくれます。
Ansible Automation Platform 2.1 をインストール
ここからはもう一つのテーマとして、この SNO で AAP 2.1 を Operator でインストールしてみます。
Ansible Tower の時代では独自のインストーラを実行していましたが、AAP 2.1 になって Operator で簡単に入れられるようになりました。左のメニューから OperatorHub をクリックして検索すると、Ansible Automation Platform の Operator が見つかります。
クリックしていくとこの Operator をインストールできます。
Automation Controller の Create instance を押して、作ってみます。ここでは名前を aap21 としてみました。Create を押すだけで終わりです。細かい設定をすることもできます。
しばらく待つとインストールが終わって、Routes に URL が生えてきます。
この Location にある URL にアクセスすると、見慣れたログイン画面が出てきます。
admin ユーザのパスワードは Secret に作られます。
AAP 2.1 にログインできました。
インスタンスは Pod に対応して作られます。OpenShift 側で Deployment から scale up すると、2つに増えたりしますのでお試しください。
まとめ
長くなりましたが、SNO のインストールと、OpenShift のアプリケーションとしての Ansible Automation Platform 2.1 のインストールを紹介してみました。
PC 1台で OpenShift を試すことができますので、ぜひ遊んでみてください。
OpenShift と Ansible Automation Platform の評価ライセンスリクエストはこちらからご利用いただけます。60日間利用できます。
Happy Automation!