AWX Operator 调试¶
常规调试¶
当 Operator 部署 AWX 时,它会在 Operator 容器内运行 `installer` 角色。如果 AWX CR 的状态为 `Failed`,通常需要查看 awx-operator 容器日志,其中显示了 installer 角色的输出。要查看这些日志,请运行
检查 Kubernetes 资源¶
除此之外,通常需要检查 AWX Operator 管理的各种资源,例如
- awx
- awxbackup
- awxrestore
- pod
- deployment
- pvc
- service
- ingress
- route
- secrets
- serviceaccount
如果通过 OperatorHub 和 OLM 安装
- subscription
- csv
- installPlan
- catalogSource
要检查这些资源,可以使用以下命令
# Inspecting k8s resources
kubectl describe -n <namespace> <resource> <resource-name>
kubectl get -n <namespace> <resource> <resource-name> -o yaml
kubectl logs -n <namespace> <resource> <resource-name>
# Inspecting Pods
kubectl exec -it -n <namespace> <pod> <pod-name>
配置无日志¶
可以通过将 AWX CR spec 中的 no_log 设置为 false 来显示任务输出以进行调试。这将在 awx-operator 日志中显示任何 no_log 设置为 true 的失败任务的输出。
例如
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-demo
spec:
service_type: nodeport
no_log: false # <------------
在不部署 Operator 的情况下迭代安装程序¶
按照正常的基本安装步骤操作。
安装一些依赖项
ansible-galaxy collection install -r molecule/requirements.yml
pip install -r molecule/requirements.txt
为了防止我们即将进行的更改被覆盖,请缩减正在运行的任何 Operator 实例。
创建一个调用安装程序角色的 playbook(Operator 使用 ansible-runner 的角色执行功能)。
创建一个变量文件
# vars.yml
---
ansible_operator_meta:
name: awx
namespace: awx
set_self_labels: false
update_status: false
service_type: nodeport
变量文件将替换 awx 资源,因此您希望使用 awx 资源覆盖的任何值,都放在变量文件中。例如,如果您希望使用自己的镜像、版本和拉取策略,可以像下面这样指定:
# vars.yml
---
ansible_operator_meta:
name: awx
namespace: awx
set_self_labels: false
update_status: false
service_type: nodeport
image: $DEV_DOCKER_TAG_BASE/awx_kube_devel
image_pull_policy: Always
image_version: $COMPOSE_TAG
运行安装程序
获取 URL 和管理员密码