Skip to content

zhangxinhui02/Redrock-SRE-2022-Ops-Winter-Assessment

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

红岩网校工作站运维安全部 2021 寒假考核 - 运维方向

以下题目任选其一完成。

第一题有问题联系 @李祖栋,第二题第三题联系 @黄凯升。

更多信息请拉到底看说明。

Q1. 祖栋 giegie 的跳板机

祖栋 giegie 十分重视服务器的安全,他想要一个跳板机。

设计一个跳板机的终端程序完成用户的登陆后台服务器的功能。

  • level-0: 完成基本的功能

    用户登录到跳板机后可以继续 ssh 登陆后台主机IP并能够继续输入命令进行控制。

  • level-1: 容器化

    编写 Dockerfile 将你的跳板机程序容器化,并编写 docker-compose.yml 部署配置

  • level-2

    将跳板机用户密码信息与可访问的服务器等信息存入数据库中,并且实现关联。然后通过 SQL 语句来查询相关内容。

  • level-3

    完成用户操作日志的记录(命令,参数,时间),存储在数据库中

  • level-4

    学习配置使用公私钥的方式完成上述登陆

  • level-5

    学习 FTP 的基本功能,模仿实现跳板机和后台主机的文件上传和下载功能

Q2. Victor 的 DDNS 脚本

Victor 日常被你邮不能固定 IP 的内网折磨。 他今天又连不上寝室的机了,他很难受,你快来帮帮他。

设计一个 DDNS 脚本,可以调用云服务商的 SDK,支持获取本机 IP 并定时更新域名解析记录。

  • level-0: 完成基本的功能

    执行该脚本时能够自动根据预设信息获取到本机 IP 并更新解析记录。 况且没有人想自己写定时执行脚本,你快来加个定时器。 可以十分简单,只要写一个 systemd 的 timer 配置文件即可。当然你有其它想法也可以

  • level-1: 多种获取 IP 的方式

    没有人知道你默认用什么方式获取 IP,但我们希望你有多种方式获取 IP,例如:

    • 请求 IP 公开 API (例如 ip.sb) 来获取公网 IP
    • 读取预设的网卡信息来获取本地内网 IP
    • 通过 socket 获取本机 IP
    • 允许用户自行配置获取 IP 的命令,从命令中提取输出
    • …… 办法有点多,都可以狠狠地写
  • level-2: 支持 IPv6

    你邮都有 IPv6 了,怎么能不资瓷一下呢? 你问我资瓷不资瓷,我说资瓷,我就明确地告诉你

  • level-3: 不调用云厂商提供的 SDK,自行实现 API

    造轮子是一种艺术。

Q3. Nginx 懒狗福音

Nginx 刷版本号刷的好快,Victor 是懒狗,他想偷懒。他的 nginx 魔改过,所以还是一键升级得好。

设计一个脚本实现一键以编译安装的方式升级 nginx

  • level-0: 实现基本功能

    自动化下载指定版本 nginx 源码并根据用户提供的编译参数编译安装

  • level-1: 真·一键升级

    从本机的 nginx 读取版本号信息,并和 nginx 官网上的最新版版本号比较,如果版本较低就下载安装否则就问问神奇海螺什么都不做。

  • level-2: 自动从当前已安装的 nginx 中提取编译参数

    先前编译参数是用户提供的,Victor 有时候会犯蠢弄丢,建议支持从本地 nginx 中提取捏。

  • level-3: 安装完自动重启 nginx 并且支持回滚

    升级就要看到效果,就要灵就要灵,但是如果炸了就好玩了,所以需要支持检测一下如果升级导致 nginx 起不来了得把原来的版本换回去。

Q4. 自选

你太强了。

如果你觉得上面的题目都小菜一碟,你可以自己选定题目,并于 2022 年 1 月 1 日之前联系 @李祖栋 或 @黄凯升。

说明

  • 截止时间:2022 年 2 月 25 日 23:59
  • 提交方式:Fork 此项目,在对应题目的文件夹下放入你的工程文件夹,工程文件夹以你的学号命名,然后提出 Pull Request
  • 基础要求:Level 0 ~ Level 1
  • 尽量完成基础要求吧,给大家的时间足够长了。截止的时候即使没做出来,也要尽量交,做到多少算多少。
  • 语言不限,鼓励在寒假自学语言。
  • 非代码核心部分,允许调库。但严禁核心部分调库(例如 DDNS,禁止直接调用实现 ddns 的库)。
  • 不要照抄代码,至少你得把变量名给我改一下吧?我说的是,提交的内容不要照抄网上的,学的时候,多抄几遍然后自己理思路了自己重写,就是学习了~
  • 不要抄代码!!!不要抄代码!!!不要抄代码!!!后果自负~
  • 不要拖不要拖,当鸽子要有能当的了鸽子的觉悟。尽最大努力去做,实在不会的知识线上来问我们,我们都比较乐意。
  • 提交的时候应当带有一个 README.md,详细地说明你的程序能够做哪些工作,有哪些功能还没有实现,有哪些 bug。
    README.md 的编写和程序组织结构可以参考去年寒假考核中我们的做法。

About

2022 年红岩网校工作站运维安全部运维方向寒假考核

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 85.3%
  • Shell 14.7%