暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

我干运维那些事儿

雨天做梦 2022-11-25
3298

朋友们,这周即将既波澜壮阔又平平无奇的度过了。波澜壮阔呢是在这个世界范围内啊发生了许多的大事,世界杯爆个冷什么的都习以为常了,平平无奇呢是我干的工作它出的幺蛾子啊,都到了让人哭笑不得,欲罢不能的地步了。

周一一大早,博士问我办公室两台服务器是不是挂了,我说我哪儿知道去啊(问村长啊……)(又不是我拉的闸),我一看,嘿,1080ti上的信仰灯都不亮了嘿,那指定是断电了啊,麻溜儿的开机,进桌面,打开网络安全助手登录获取IP地址,齐活。年轻的我哪里知道,所有命运的馈赠,都暗中标好了价格(此处有伏笔)。

于是时间嗖的一下到了周三,博士问我说,群里说标注服务器登录不上了,让我看看啥情况。我说这我哪儿知道啊,这不是你部署的么,当然话是不能这么说,应该问他:你当时怎么部署的啊——此处quick flash back——

在我来到这个部门之前的时候,博士就已经在这个部门搞神经网络、机器学习了,那搞神经网络、机器学习(我不是水字数啊)不得有数据,有标注嘛,数据咱另说,这标注总不可能自掏腰包找数据公司,拉上几个数据女工加班加点的标数据吧,所以博士找了台旧电脑,装上ubuntu,用docker部署了一个CVAT计算机视觉标注工具,感兴趣的去他们github详情页看看吧。

https://github.com/opencv/cvat

有了这个标注平台,那自然方便了发(bai)挥(piao)同事们的积极性,发动了不少同事标注不同的图片——flash back end——

问清楚博士是通过docker-compose部署的,那还对我来说还是一个好消息,因为要我单独去操作一个容器那我还是很慌的,没有这个能力你知道伐。docker-compose就好解决多了,修改一下docker-compose.yml文件,它们就都起来了。

那首先是确定出了什么问题:

先尝试ssh上去,发现连不上……得勒,得亏都装了桌面……

给那台无头服务器接上屏幕,鼠标键盘,打开终端输入

    sudo docker ps -a

    看看容器都啥情况:(我记得差不多这样……)

      CONTAINER ID   IMAGE                  COMMAND                  CREATED        STATUS        PORTS                                                                                          NAMES
      6918536ffd8b   openvino/cvat_ui       "/docker-entrypoint.…"   10 month ago   Up 2 days     80/tcp                                                                                         cvat_ui
      36a20041500b openvino/cvat_server "/usr/bin/supervisord" 10 month ago Up 2 days     8080/tcp cvat
      9a3c2c0cfa23 redis:4.0-alpine "docker-entrypoint.s…" 10 month ago Up 2 days     6379/tcp cvat_redis
      f5e980d4efc3   traefik:v2.4           "/entrypoint.sh --pr…"   10 month ago   exited 2 days 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp, 80/tcp, 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp   traefik
      a251a6dbd5a2   postgres:10-alpine     "docker-entrypoint.s…"   10 month ago   Up 2 days     5432/tcp                                                                                       cvat_db

      因为现在都搞完了所以大概还原了一下——发现了一个退出的容器——traefik,报错是8080端口已被占用。emmm之前都好好的,这台服务器之前也没谁占着8080端口啊,我倒要看看到底是谁?

        sudo netstat -tanlp | grep 8080

        一看——

          tcp  0  0 0.0.0.0:8080  0.0.0.0:*   LISTEN   1172/dvc-core-exe

          好家伙这个dvc-core-exe挺眼熟啊,我再瞅瞅——

            ps -x | grep dvc

            给我返回的是

               2795 tty1     S+     0:00 /bin/sh /bin/LVUAAgentInstBaseRoot/bin/dvc-gui-h.sh
              2810 tty1 Sl+ 8:13 ./dvc-gui-exe hide
              21709 pts/0    S+     0:00 grep --color=auto dvc

              这家伙大水冲了龙王庙啊,这不就是我梦里常出现的那个人(啊不是),这不就是大名鼎鼎,不安装不让联网,本来只有window版本,最近给整出来的linux版本的网络安全助手嘛!

              行嘞,安全助手大爷您面子大,这下一切都合理了,我逐渐理解了这一切——本来没问题的服务器为何在周一重启后无法访问,是因为本traefik容器运行的好好的,安全助手大爷是后装的,所以本相安无事,但是重启了以后,安全助手大爷把8080端口一占,traefik容器端口冲突启动不了了,这反向代理代理不起来了,所以标注平台就访问不了了……

              惹不起惹不起,赶紧把traefik的端口改成8081,docker-compose.yml里改了下,不行,原来还有一个docker-compose.override.yml。

                sudo docker-compose up -d

                就好了,ssh也通畅了,标注平台也能访问了。

                然后我也为就好了,我大意了,我们有两台服务器啊……

                周四的时候来了个实习生,博士就把vscode+remote-ssh教给人家了,还在另外一台服务器上开了个容器让人家学,这下又出了幺蛾子,ssh连不上了。

                又经历了明明安装了windows可选功能立的openssh客户端,powershell里却提示ssh不是一个可执行的程序,ssh的config文件bad owner or permission,以及多次尝试连接不上以后,我突然意识到,这台服务器它该不会,也有个8080端口冲突吧……

                给那台无头服务器接上屏幕,鼠标键盘,打开终端输入(我这真不是在水字数)好了好了,就是重复一下把冲突的8080端口改掉,或者干脆不用的停用,就好了。

                这下vscode+remote-ssh也ok了。

                那么本周的运维/开发笔记就到这里了,我们下一个新知识再见。

                文章转载自雨天做梦,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论