WindowsにOpenShift環境を作り、Macから接続する
やりたかったこと
- 自由に触れるOpenshift環境が欲しい(お金はかけたくない)
- 普段Macでごにょごにょ開発してる
- ローカルPCにOpenShift環境を作るには、それなりのPCスペック(特にメモリ)がいる
- たまたまメモリを積んだWindowsを持て余している
→ WindowsにOpenShift Localを立て、Macからocコマンドを実行したい
どこで動かすかの検討
前提として、Windows PCが以下のスペックを満たしている必要があります。
For OpenShift Container Platform
4 physical CPU cores
10.5 GB of free memory
35 GB of storage space
ローカルOpenShift環境には、OpenShift Local(もともとCode Ready Container
という名前で、コマンドはcrc
だったりする)を使います。
また、構築に当たってはちょうどやりたいことをドンピシャ実現してくださっている記事があったので、そちらを参考にしました。(ですので、本記事では細かい手順は割愛します)
参考記事ではWindows本体(Powershell)でOpenShift Localを動かしていますが、わんちゃんLinux版のtar.xzをダウンロードしてWSL2で動かせないかと思いやってみましたが、だめでした。
どうしてもWindows上のlinuxで動作させたいとなると、Vertualboxなどでlinuxをインストールするか、Ubuntuで頑張るしかなさそうです。
それを踏まえると、Windows本体(Powershell)で動かすのが一番てっとり早そうだったので、私もそうしました。
WindowsでOpenShift環境を構築
crc console
で、OpenShiftのダッシュボード表示とサンプルアプリの起動に成功しました。
また、 crc oc-env | Invoke-Expression
でocコマンドが使えるようになり、サンプルアプリも立ち上げることができました。
こんな感じでブラウザからURLを叩いてopenshiftのコンソールや立ち上げたアプリにログインできるのは、crc start
実行時と、アプリ作成時に、hostsファイルに自動で設定を追加してくれてるからです。
ホストファイルを見てみると、確かに追加されていることが分かります。
- PowerShellの管理者権限で実行
notepad C:\Windows\System32\drivers\etc\hosts
- hostsの中身
127.0.0.1 rails-postgresql-example-sample-project.apps-crc.testing api.crc.testing canary-openshift-ingress-canary.apps-crc.testing console-openshift-console.apps-crc.testing default-route-openshift-image-registry.apps-crc.testing downloads-openshift-console.apps-crc.testing host.crc.testing oauth-openshift.apps-crc.testing
127.0.0.1 rails-postgresql-example-sample-project.apps-crc.testing
Macからもアクセスしてみる
- Mac側からもOpenShift Localのコンソールを使ったり、OpenShiftでデプロイしたアプリの動作確認をしたいため、Windowsと同じ設定をMacの
/etc/hosts
に書いてあげます。(Windowsは仕事部屋にあるので、休日リビングでテレビを見ながらMacで作業したいのです)
<WindowsのIPアドレス> rails-postgresql-example...
また、MacからWindowsのPowershellにssh接続してocコマンドを使いたいですが、以下の記事に記載した手順でssh設定をしました。
これで、MacからWindows上のOpenShiftを触っていろいろできそうです。
おまけ(Windows起動時に自動でOpenshitを起動)
毎回手動で起動したりパスを通すのは面倒くさいので、以下のようなバッチファイルを作ってshell:startup
フォルダに入れると、WindowsPCの電源ボタンをぽちっと押すだけですむようになりました。
- crc_startup.batch
timeout /t 120 /nobreak >nul
crc start
crc oc-env | Invoke-Expression
Discussion