部署新的 vRealize Automation 8.0.0 或 8.0.1 失败
vRLCM 查看的状态:
Error Code: LCMVRAVACONFIG590003
Request Details中Stage 4:vravainitializecluster中VraVaInitialize 时间比较久
原因:vRealize Automation 8.0和8.0.1 GA发布的root 账号密码过期(默认:90天),该密码作为Kubernetes容器对于Postgres和Orchestrator服务来说很重要:
当然该问题在 vRealize Automation 8.1 内已解决。
SSH进入vRA节点,
kubectl get pods -n prelude //查看namespace中的services 名称
执行
vracli cluster exec — bash -c ‘echo -e “FROM vco_private:latest\nRUN sed -i s/root:.*/root:x:18135:0:99999:7:::/g /etc/shadow\nRUN sed -i s/vco:.*/vco:x:18135:0:99999:7:::/g /etc/shadow” | docker build – -t vco_private:latest’
执行
vracli cluster exec — bash -c ‘echo -e “FROM db-image_private:latest\nRUN sed -i s/root:.*/root:x:18135:0:99999:7:::/g /etc/shadow\nRUN sed -i s/postgres:.*/postgres:x:18135:0:99999:7:::/g /etc/shadow” | docker build – -t db-image_private:latest’
执行 以通过重新引导保留新更改。
/opt/scripts/backup_docker_images.sh //通过重新引导保留新更改
通过持续运行和执行kubectl get pods -n prelude检查pods的状态。
kubectl get pods -n prelude //检查pods的状态
如果仅安装一台设备,并且查看到vco-app pod的状态为CrashLoopBackOff
需要删除pod
#kubectl delete pods -n prelude vco-app-pod-name //需要删除pod
通过执行以下命令,生成的新更新的docker构建中配置一个pod
#vracli cluster exec — bash -c ‘echo -e “FROM vco_private:latest\nRUN sed -i s/root:.*/root:x:18135:0:99999:7:::/g /etc/shadow\nRUN sed -i s/vco:.*/vco:x:18135:0:99999:7:::/g /etc/shadow” | docker build – -t vco_private:latest’
vracli cluster exec — bash -c ‘echo -e “FROM db-image_private:latest\nRUN sed -i s/root:.*/root:x:18135:0:99999:7:::/g /etc/shadow\nRUN sed -i s/postgres:.*/postgres:x:18135:0:99999:7:::/g /etc/shadow” | docker build – -t db-image_private:latest’
/opt/scripts/backup_docker_images.sh //通过重新引导保留新更改
如果部署为一个集群,那么就不能简单地删除postgres pod来修复它,因为多节点上postgres实例需要复制数据,如果数据不同步,依赖于postgres的其他服务也将失败,因此最好关闭每个节点上的所有服务,然后执行以下操作:
SSH进入vRA节点(需在每个节点内支持)
执行
kubectl get pods -n prelude //查看namespace中的services 名称
/opt/scripts/deploy.sh –onlyClean //在每个节点上执行 以停止服务。
执行
vracli cluster exec — bash -c ‘echo -e “FROM vco_private:latest\nRUN sed -i s/root:.*/root:x:18135:0:99999:7:::/g /etc/shadow\nRUN sed -i s/vco:.*/vco:x:18135:0:99999:7:::/g /etc/shadow” | docker build – -t vco_private:latest’
执行
vracli cluster exec — bash -c ‘echo -e “FROM db-image_private:latest\nRUN sed -i s/root:.*/root:x:18135:0:99999:7:::/g /etc/shadow\nRUN sed -i s/postgres:.*/postgres:x:18135:0:99999:7:::/g /etc/shadow” | docker build – -t db-image_private:latest’
/opt/scripts/deploy.sh在每个节点上运行以启动服务。
vi /opt/charts/vco/templates/deployment.yaml
找到:init_run.sh
command:
– “/bin/bash”
– “-c”
– “/init_run.sh”
将其修改为如下:
command:
– “/bin/bash”
– “-c”
– “sed -i ‘s/root:.*/root:x:18135:0:99999:7:::/g’ /etc/shadow && sed -i ‘s/vco:.*/vco:x:18135:0:99999:7:::/g’
/etc/shadow && /init_run.sh”
创建 restart-service 的脚本
vi /root/rs.sh
//编辑内容
/opt/scripts/svc-stop.sh
sleep 120
/opt/scripts/deploy.sh –onlyClean
sleep 60
/opt/scripts/deploy.sh
设置 root密码不过期
passwd -x 99999 root