Red Hat Ansible Tower 产品的上游版本是 AWX。它是一个容器化解决方案,这意味着您需要一个容器编排器来运行和维护它。一个简洁的本地安装选项是 Minishift,它运行 OKD,Red Hat 版本的 Minikube,这使得在本地运行 Kubernetes 更加容易。
如果您已经在使用 Minishift...
首先,为了确保一切顺利,请清除所有旧的 Minishift 实例。
$ minishift stop && minishift delete
$ rm -rf ~/.minishift ~/.kube
同时删除您可能拥有的任何旧的 minishift-addons。
下载并安装 Minishift
从 Minishift 的 GitHub 仓库下载最新版本。(在本文发布时,最新版本是 v1.25.0,我将其与 MacOS 和 VirtualBox 结合使用。)
$ tar zxfv 下载的文件,并将 minishift-* 二进制文件放在您的路径中的某个位置。我使用了 /usr/local/bin/minishift。
我使用 Minishift 遇到的最大问题是升级,冲突的旧 Minishift 或 oc 二进制文件 可能会导致问题。(oc 是 OKD 的命令行界面。)
AWX 至少需要 4 个核心和 8GB 内存才能安装,因此请设置一些限制(如果可以,请提供更多资源)。
$ minishift config set vm-driver virtualbox
$ minishift config set cpus 4
$ minishift config set memory 8gb
$ minishift config view
确保已安装默认的附加组件,因为我们需要 'admin-user' 以便我们可以进行集群级别的更改
$ minishift addons install --defaults
$ minishift addons enable admin-user
$ minishift addons list
$ minishift start
等待下载和安装。如果您的宽带像我的一样,这可能需要一段时间!
还有几个步骤...
在安装 AWX 之前,还需要设置一些其他事项。
首先,请务必选择正确的 oc 二进制文件——否则可能会出现异常。
$ eval $(minishift docker-env)
普通用户(在本例中为“developer”)需要额外的权限才能在集群级别执行操作。
$ oc login -u admin -p admin --as=system:admin
$ oc adm policy add-cluster-role-to-user cluster-admin developer --as=system:admin
AWX playbook 安装会创建一个项目,但提前创建它并无坏处,这样您就可以为数据库拥有一个持久性存储卷 (PV)。
$ oc new-project awx
创建一个名为 pvc.yml 的文件,内容如下
$ cat > pvc.yml <<EOF
apiVersion: "v1"
kind: "PersistentVolumeClaim"
metadata:
name: "postgresql"
spec:
accessModes:
- "ReadWriteMany"
resources:
requests:
storage: "20Gi"
volumeName: pv0001
EOF
Minishift 在安装过程中创建了许多 PV;只需声明其中一个即可。
$ oc get pv
要查看它们并选择一个空闲的 PV,如果已被占用,请替换卷名称(上面示例中的“pv0001”)。例如,
$ oc create -f pvc.yml
将对 PV 进行声明,被安装程序拾取,并用作 Postgres 数据库的 PV。
$ oc get pvc
检查输出是否显示 PV 为Bound:(已绑定:):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
安装 AWX
最后,是时候安装 AWX 了。输入
$ git clone https://github.com/ansible/awx.git
$ cd awx/installer
更改 inventory 文件,使其适合您的环境。
$ cp inventory inventory.old
以下配置适用于我的 inventory 文件
$ cat > inventory <<EOF
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"
[all:vars]
dockerhub_base=ansible
dockerhub_version=latest
openshift_host=192.168.99.100:8443
openshift_project=awx
openshift_user=developer
openshift_skip_tls_verify=True
openshift_pg_emptydir=False
postgres_data_dir=/tmp/pgdocker
host_port=80
docker_compose_dir=/var/lib/awx
pg_username=awx
pg_password=awxpass
pg_database=awx
pg_port=5432
rabbitmq_password=awxpass
rabbitmq_erlang_cookie=cookiemonster
admin_user=admin
admin_password=password
secret_key=awxsecret
EOF
您可能需要更改 openshift_host IP。通过运行以下命令检查您的 IP
$ minishift ip
现在您已准备就绪!
$ ansible-playbook -i inventory install.yml -e openshift_password=developer -e docker_registry_password=$(oc whoami -t)
playbook 将启动各种任务;有些可能会失败(如果失败,它们将以红色显示)。这通常是正常的。我的安装大约需要 5-6 分钟作为参考。
使用命令登录 Minishift 控制台
$ minishift console
和凭据 developer/developer 查看后台正在发生的事情。
从 GUI 中选择 awx 项目,pod 和容器将开始创建。
请注意,ansible-tower-management pod 将在 Postgres 数据库设置完成后来回移动。TASK [kubernetes: Migrate database] 从 playbook run 执行此操作。
几分钟后,您应该会得到一个摘要,例如
< PLAY RECAP >
------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
localhost : ok=35 changed=17 unreachable=0 failed=0
只要 unreachable=0 和 failed=0,您就应该设置成功。
单击 GUI 中 awx 资源下的 route,您应该能够使用 admin/password(来自上面的 inventory 文件)登录 AWX GUI。
确保 pod 圆圈为蓝色,因此为“就绪”。
两个潜在的陷阱
Minishift 或 oc 二进制文件与使用的版本不同步。即使它似乎可以工作(在某种程度上),但如有疑问,请清除旧配置!
PVC claim 似乎捕获了 pv0001 周围的引号,并且无法绑定,因此我删除了引号,它就可以工作了。这可能是复制和粘贴错误。
本文的原始版本发布在 LinkedIn 上,并经作者许可转载。
评论已关闭。