0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWX を AWX Operator で macOS にインストールする

Last updated at Posted at 2021-10-07

AWX 19.4.0 を macOS Big Sur 11.6 にインストールした手順の記録。

環境

  • macOS Big Sur 11.6
  • Docker Desktop 4.1.0
  • Docker Engine 20.10.8
  • minikube 1.23.2
  • AWX Operator 0.14.0
  • AWX 19.4.0

INSTALL.md によれば、AWX 18.0 以降は AWX Operator を使ったインストールが推奨される。 1 2

準備

Docker Desktop のインストール

brew install --cask docker

Docker の使用メモリがデフォルトで 2GB (2.5GB?) なので 4.25GB に増やす。
Docker > Settings > Resources > ADVANCED > Memory > 4.25GB > Apply & Restart

Minikube のインストール

brew install minikube

INSTALL.md では Minikube を使ってインストールしているので踏襲。

AWX のインストール

Kubernates クラスタの起動

minikube start --cpus=2 --memory=4g --addons=ingress
😄  Darwin 11.6 上の minikube v1.23.2
✨  dockerドライバーが自動的に選択されました。他の選択肢:  vmware, virtualbox, ssh
👍  コントロールプレーンのノード minikube を minikube 上で起動しています
🚜  イメージを Pull しています...
💾  Kubernetes v1.22.2 のダウンロードの準備をしています
    > gcr.io/k8s-minikube/kicbase: 355.40 MiB / 355.40 MiB  100.00% 1.77 MiB p/
    > preloaded-images-k8s-v13-v1...: 511.84 MiB / 511.84 MiB  100.00% 2.31 MiB
🔥  docker container (CPUs=4, Memory=6144MB) を作成しています...
🐳  Docker 20.10.8 で Kubernetes v1.22.2 を準備しています...
    ▪ 証明書と鍵を作成しています...
    ▪ Control Plane を起動しています...
    ▪ RBAC のルールを設定中です...
🔎  Kubernetes コンポーネントを検証しています...
💡  After the addon is enabled, please run "minikube tunnel" and your ingress resources would be available at "127.0.0.1"
    ▪ イメージ gcr.io/k8s-minikube/storage-provisioner:v5 を使用しています
    ▪ イメージ k8s.gcr.io/ingress-nginx/controller:v1.0.0-beta.3 を使用しています
    ▪ イメージ k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0 を使用しています
    ▪ イメージ k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0 を使用しています
🔎  ingress アドオンを検証中です...
🌟  有効なアドオン: storage-provisioner, default-storageclass, ingress
🏄  完了しました! kubectl が「"minikube"」クラスタと「"default"」ネームスペースを使用するよう構成されました

INSTALL.md では 4CPU 6GB を指定しているが、Ansible Tower の Requirements によれば 2CPU 4GB が下限。 3 4

ノードの確認

minikube kubectl -- get nodes
    > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubectl: 50.63 MiB / 50.63 MiB [---------------] 100.00% 3.20 MiB p/s 16s
NAME       STATUS   ROLES                  AGE   VERSION
minikube   Ready    control-plane,master   16m   v1.22.2

kube-apiserver 通信の確認

minikube kubectl -- get pods -A
NAMESPACE       NAME                                        READY   STATUS      RESTARTS      AGE
ingress-nginx   ingress-nginx-admission-create--1-j8vd6     0/1     Completed   0             17m
ingress-nginx   ingress-nginx-admission-patch--1-tz4bn      0/1     Completed   1             17m
ingress-nginx   ingress-nginx-controller-69bdbc4d57-b8qsz   1/1     Running     0             17m
kube-system     coredns-78fcd69978-5qzg2                    1/1     Running     0             17m
kube-system     etcd-minikube                               1/1     Running     0             17m
kube-system     kube-apiserver-minikube                     1/1     Running     0             17m
kube-system     kube-controller-manager-minikube            1/1     Running     0             17m
kube-system     kube-proxy-7kb98                            1/1     Running     0             17m
kube-system     kube-scheduler-minikube                     1/1     Running     0             17m
kube-system     storage-provisioner                         1/1     Running     1 (17m ago)   17m

AWX Operator リポジトリのクローン

git clone https://github.com/ansible/awx-operator.git
Cloning into 'awx-operator'...
remote: Enumerating objects: 5651, done.
remote: Counting objects: 100% (2749/2749), done.
remote: Compressing objects: 100% (986/986), done.
remote: Total 5651 (delta 1856), reused 2389 (delta 1664), pack-reused 2902
Receiving objects: 100% (5651/5651), 1.39 MiB | 2.87 MiB/s, done.
Resolving deltas: 100% (3212/3212), done.

チェックアウト

cd awx-operator
git checkout 0.14.0
Note: switching to '0.14.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 9e9457c Fix release workflow

デプロイ

export NAMESPACE=awx
make deploy
cd config/manager && /Users/bezeklik/Workspace/awx-operator/bin/kustomize edit set image controller=quay.io/ansible/awx-operator:0.14.0
cd config/default && /Users/bezeklik/Workspace/awx-operator/bin/kustomize edit set namespace awx
/Users/bezeklik/Workspace/awx-operator/bin/kustomize build config/default | kubectl apply -f -
namespace/awx created
customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.com created
serviceaccount/awx-operator-controller-manager created
role.rbac.authorization.k8s.io/awx-operator-leader-election-role created
role.rbac.authorization.k8s.io/awx-operator-manager-role created
clusterrole.rbac.authorization.k8s.io/awx-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/awx-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding created
rolebinding.rbac.authorization.k8s.io/awx-operator-manager-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding created
configmap/awx-operator-manager-config created
service/awx-operator-controller-manager-metrics-service created
deployment.apps/awx-operator-controller-manager created

確認

alias kubectl="minikube kubectl --"
kubectl get pods -n $NAMESPACE
NAME                                              READY   STATUS              RESTARTS   AGE
awx-operator-controller-manager-6f68ddbf4-s7ztr   2/2     Running             0          79s

STATUS が ImagePullBackOff となって先に進まない場合は 0.14.0 などバージョンを指定する。

設定

kubectl config set-context --current --namespace=$NAMESPACE
Context "minikube" modified.

設定

kubectl apply -f awx-demo.yml
awx.awx.ansible.com/awx-demo created

ログの確認

kubectl logs -f deployments/awx-operator-controller-manager -c manager

確認

kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator"
NAME                    READY   STATUS    RESTARTS   AGE
awx-demo-d46576-9wdzq   4/4     Running   0          7m2s
awx-demo-postgres-0     1/1     Running   0          7m10s

確認

kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator"
NAME                TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
awx-demo-postgres   ClusterIP   None           <none>        5432/TCP       7m24s
awx-demo-service    NodePort    10.98.118.93   <none>        80:32080/TCP   7m18s

サービスの起動

minikube service awx-demo-service --url -n $NAMESPACE
🏃  Starting tunnel for service awx-demo-service.
|-----------|------------------|-------------|------------------------|
| NAMESPACE |       NAME       | TARGET PORT |          URL           |
|-----------|------------------|-------------|------------------------|
| awx       | awx-demo-service |             | http://127.0.0.1:61197 |
|-----------|------------------|-------------|------------------------|
http://127.0.0.1:61197
❗  Dockerドライバーをdarwin上で動かしているため、実行するにはターミナルを開く必要があります。

admin パスワードの確認

kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" | base64 --decode
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%

アンインストール

AWX インスタンスの削除

kubectl delete awx awx-demo
awx.awx.ansible.com "awx-demo" deleted

クラスタの削除

minikube delete
🔥  docker の「minikube」を削除しています...
🔥  コンテナ "minikube" を削除しています...
🔥  /Users/bezeklik/.minikube/machines/minikube を削除しています...
💀  クラスタ "minikube" の全てのトレースを削除しました。
  1. Starting in version 18.0, the AWX Operator is the preferred way to install AWX. awx/INSTALL.md at 19.4.0 · ansible/awx

  2. AWX can also alternatively be installed and run in Docker, but this install path is only recommended for development/test-oriented deployments, and has no official published release. awx/INSTALL.md at 19.4.0 · ansible/awx

  3. 2 CPUs minimum for Automation Platform installations. 5. Requirements — Ansible Tower Installation and Reference Guide v3.8.4

  4. 4 GB RAM minimum for Automation Platform installations 5. Requirements — Ansible Tower Installation and Reference Guide v3.8.4

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?