AWX部署

简介: AWX部署

目录

awx

awx是红帽Ansible Tower的开源版本,他的功能是可以使用web界面来操作ansible

操作系统使用openEuler 22.03

这里是在k8s上部署的,需要使用动态制备pvc,因为他有一个数据库需要使用存储

1. 部署awx

1.1 克隆仓库

[root@master ~]# git clone https://gitee.com/yftyxa/awx-operator.git
[root@master ~]# cd awx-operator/config/default/
[root@master default]# ls
awx-demo.yaml  kustomization.yaml  manager_auth_proxy_patch.yaml  manager_config_patch.yaml

在这里会有4个yaml文件,但是你如果打开看的话,是跟我们日常编写的yaml格式是不一样的,我们现在需要通过这些文件来生成原始的yaml

1.2 生成yaml

我们可以使用kubectl kustomize这个命令来生成yaml

但是有一点需要注意,这里需要指定的是一个目录,而不是一个文件

# 我们可以创建一个目录来存放生成过后的yaml,别都放在这搞混了
[root@master default]# mkdir deploy
[root@master default]# cd deploy/
[root@master default]# kubectl kustomize ../
[root@master deploy]# kubectl kustomize ../ > awx-operator.yaml

1.3 部署operator

[root@master deploy]# kubectl apply -f awx-operator.yaml 
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-awx-manager-role created
role.rbac.authorization.k8s.io/awx-operator-leader-election-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-awx-manager-rolebinding created
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding created
configmap/awx-operator-awx-manager-config created
service/awx-operator-controller-manager-metrics-service created
deployment.apps/awx-operator-controller-manager created
error: unable to recognize "awx-operator.yaml": no matches for kind "AWX" in version "awx.ansible.com/v1beta1"

这里会有一个报错,如果你也遇到了不用管他,再执行一遍这个文件

[root@master deploy]# kubectl apply -f awx-operator.yaml 
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-awx-manager-role created
role.rbac.authorization.k8s.io/awx-operator-leader-election-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-awx-manager-rolebinding created
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding created
configmap/awx-operator-awx-manager-config created
service/awx-operator-controller-manager-metrics-service created
deployment.apps/awx-operator-controller-manager created
awx.awx.ansible.com/awx-operator-awx-demo created

再执行一遍就没有报错了

1.4 查看pod

[root@master deploy]# kubectl get pods -n awx
NAME                                               READY   STATUS    RESTARTS   AGE
awx-operator-awx-demo-postgres-13-0                1/1     Running   0          6m11s
awx-operator-awx-demo-task-6d4ff878ff-txb78        4/4     Running   0          5m21s
awx-operator-awx-demo-web-cb9cc8f9c-lkphd          3/3     Running   0          3m30s
awx-operator-controller-manager-85d95854c9-vqf4s   2/2     Running   0          6m27s

如果你在这个过程中出现了pending,一下pending的原因,很大可能是因为pvc的缘故

1.5 修改镜像地址

注意!!!

回到上一级目录,也就是default目录,这里面如果存在awx-demo.yaml这个文件的话就直接修改,不存在的话就创建

因为dockerhub现在国内访问不了,所以他的数据库镜像包括redis的镜像都是拉不到的,我们需要对镜像进行修改

[root@master deploy]# vim awx-demo.yaml
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx-demo
  namespace: awx
spec:
  service_type: nodeport
  postgres_image: swr.cn-east-3.myhuaweicloud.com/hcie_openeuler/postgres
  postgres_version: "13"
  redis_image: swr.cn-east-3.myhuaweicloud.com/hcie_openeuler/redis
  redis_version: "7"

然后apply这个文件

[root@master deploy]# kubectl apply -f awx-demo.yaml

执行这个文件之后,等待一会然后去查看pod

[root@master deploy]# kubectl get pods -n awx
NAME                                               READY   STATUS    RESTARTS   AGE
awx-demo-postgres-13-0                             1/1     Running   0          7m28s
awx-demo-task-6fc456bbbd-9jcv9                     4/4     Running   0          7m2s
awx-demo-web-7f78447cd-74hkw                       3/3     Running   0          6m55s
awx-operator-awx-demo-postgres-13-0                1/1     Running   0          17m
awx-operator-awx-demo-task-6d4ff878ff-txb78        4/4     Running   0          16m
awx-operator-awx-demo-web-cb9cc8f9c-lkphd          3/3     Running   0          14m
awx-operator-controller-manager-85d95854c9-vqf4s   2/2     Running   0          17m

这里就会有这么多的pod全都是running了,那么部署就完成了

2. 登录awx

2.1 查看端口

[root@master default]# kubectl get svc -n awx
NAME                                              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
awx-operator-awx-demo-postgres-13                 ClusterIP   None             <none>        5432/TCP       34m
awx-operator-awx-demo-service                     NodePort    10.109.223.144   <none>        80:30080/TCP   34m
awx-operator-controller-manager-metrics-service   ClusterIP   10.108.166.93    <none>        8443/TCP       35m

  • 默认账号是admin

2.2 查看默认密码

默认密码是在awx命名空间下有一个secret

[root@master deploy]# kubectl get secrets -n awx |grep admin
awx-operator-awx-demo-admin-password           Opaque

会有一个这个secret,我们将数据拿出来就好了

[root@master deploy]# kubectl get secrets -n awx awx-operator-awx-demo-admin-password -o yaml |head -5
apiVersion: v1
data:
  password: YlhMR3VtSkxHYkN6d1ZiUHhVZkVpVEp1TmJaa2N6OHc=
kind: Secret
metadata:

这里有一个password,注意这个password是base64加密过后的,我们还需要解密

[root@master deploy]# echo YlhMR3VtSkxHYkN6d1ZiUHhVZkVpVEp1TmJaa2N6OHc= |base64 -d
bXLGumJLGbCzwVbPxUfEiTJuNbZkcz8w

他输出的这一段就是密码了

登录进来之后就是这样的了

本文来自博客园,作者:FuShudi,转载请注明原文链接:https://www.cnblogs.com/fsdstudy/p/18261190

分类: Ansible

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
966 3
|
Kubernetes 应用服务中间件 API
kubernetes HPA-超详细中文官方文档
kubernetes HPA-超详细中文官方文档
|
Prometheus 监控 Kubernetes
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档(上)
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档
|
存储 Kubernetes 应用服务中间件
Ingress-Nginx使用指南上篇
关于Ingress-Nginx在Kubernetes中的使用指南,涵盖了从基础安装到高级特性配置的详细步骤和实战案例。
5705 3
Ingress-Nginx使用指南上篇
|
安全 Linux 算法框架/工具
open Euler安全加固
open Euler安全加固
1729 11
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
1287 0
|
运维 Kubernetes 负载均衡
# 阿里云ACK产品评测
阿里云 ACK (Alibaba Cloud Container Service for Kubernetes) 是一站式容器管理服务,简化容器应用部署、管理及运维。具备友好Web界面与CLI工具;无缝集成阿里云RDS、SLB、OSS等服务;提供RBAC、网络策略及镜像安全扫描等功能确保安全;基于阿里云基础设施,支持自动伸缩与负载均衡保证高性能。通过部署WordPress案例演示具体流程,包括集群创建、kubectl配置及WordPress+MySQL部署。ACK适合各类用户,高效便捷。注意:官方镜像可能拉取失败,建议使用阿里云ECS拉取或上传至容器镜像服务。
508 3
|
存储 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的协同实践
【5月更文挑战第2天】随着云计算和微服务架构的兴起,自动化运维成为保障系统稳定性与效率的关键。本文将深入探讨如何利用Ansible作为配置管理工具,结合Kubernetes容器编排能力,共同打造一个高效、可靠的自动化运维体系。通过剖析二者的整合策略及具体操作步骤,为读者提供一套提升运维效率、降低人为错误的实用解决方案。
|
数据安全/隐私保护 Docker 容器
快速搭建最新版ansible-AWX
本文主要内容为简单搭建ansible-AWX的流程,AWX是社区版、商业版叫TOWER
|
Kubernetes API 调度
Pod无法调度到可用的节点上(K8s)
完成k8s单节点部署后,创建了一个pod进行测试,后续该pod出现以下报错: Warning FailedScheduling 3h7m (x3 over 3h18m) default-scheduler 0/1 nodes are available: 1 node(s) had untolerated taint {node-role.kubernetes.io/control-plane: }. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling..
1579 0

热门文章

最新文章