前言
官方给了一个视频:https://www.youtube.com/watch?v=Ulrr9knCc_w,感兴趣的可以参考一下,但是我跟着视频的配置改不行……。看了下installer\roles\image_build\templates目录下的nginx.conf.j2配置文件,照着nginx.conf.j2文件修改了下容器里的nginx.conf就可以了。
在kubernetes上安装AWX可以参考我的https://www.jianshu.com/p/e5318502f517。
官方git:https://github.com/ansible/awx
应该可以在容器部署之前取消inventory里面ssl_certificate的注释并设置证书,但是我不想把环境弄倒重新弄所以直接在跑好的AWX上进行修改的。我也是小白,以后有时间的话会试下在部署阶段就弄好的。
上传证书到awx-web容器
由kubectl get pods -n awx -owide
可以看到awx-0所在的节点,进到该节点,通过docker ps | grep awx-web
可以看到awx的web容器的容器id。
~ # docker ps | grep awx-web
9922f74683cf ansible/awx_web "/tini -- /bin/sh -c…" 24 hours ago Up 27 minutes k8s_awx-web_awx-0_awx_5251460e-ceb7-49b6-a435-97114262c652_0
nginx.conf.j2中使用的是pem,我使用的是crt和key。自签证书的生成可以去网上找找,官方给的视频中也有提到怎么生成自签证书。创建一个certs目录,将crt和key文件放到下面,并使用docker cp命令将certs目录放在awx-web的/etc/nginx目录下
~ # ls certs
awx.crt awx.csr awx.key
~# docker cp certs/ 9922f74683cf:/etc/nginx
修改nginx.conf
将容器里的nginx.conf导出方便修改,再传回容器,最后重启即可。nginx.conf修改的内容如下:server_name请修改为自己对应的。
server {
listen 8052 default_server;
server_name ***;
# Redirect all HTTP links to the matching HTTPS page
return 301 https://$host$request_uri;
}
server {
listen 8053 ssl;
ssl_certificate /etc/nginx/certs/awx.crt;
ssl_certificate_key /etc/nginx/certs/awx.key;
server_name ***;
keepalive_timeout 65;
docker cp nginx.conf 9922f74683cf:/etc/nginx/nginx.conf
docker restart 9922f74683cf
修改kubernetes配置
由kubectl edit svc -n awx awx-web-svc
进入awx-web的svc并编辑,修改ports信息如下。编辑完信息保存并退出。
ports:
- name: http
nodePort: 30017
port: 443
protocol: TCP
targetPort: 8053
https
未配置https时:

配置https之后:
访问https://域名:30017,配置成功。
网友评论