IT技术学习之开发(十)

一 丑话说前头

Jumpserver是一款开源的堡垒机。底层框架是用Django写的,学习它的源代码会对自身的能力提高有一定帮助,但对我来说这么一套复杂的系统,也只是浅浅地看看,娱乐为主。

二 走起

1 安装部署

官网上安装使用的文档很详尽,照着装就没问题,能明白它每步是做什么的就更棒了。

2 开机自启

虽然官方文档很详尽,但我重启系统后,堡垒机并没有启动。它起服务是靠脚本,并且有两个用docker部署的组件——koko和guacamole,应该是远程连接和文件传输用的——也是没启动的。

对于堡垒机的服务,写个启动脚本放在系统开机自启里就行了,如下:

[root@jumpserver ~]# cat jumpserver_start.sh 
source /opt/py3/bin/activate   #先要进python虚拟环境
cd /opt/jumpserver
./jms start all -d   #执行堡垒机启停脚本

对于两个组件,在部署时docker run命令中加上参数--restart=always就行。

3 尝试改变

大的部分一时半会还没能力改,也就先改改描述、logo什么的找找框架逻辑。

图片

就拿登陆界面的copyright来说,学了Django后就知道从url中可以看出这个登陆页去哪找。我找到了logo.html的网页,但典型的Django语句把线索转移到另一个页面上。

图片

当我用find命令找到这个文件后,发现它就两行。

图片

线索断了,没关系,因为原版的copyright的署名唯一,所以我就写了个脚本,搜索文件里的文字。

# -*- coding: utf-8 -*- 
import os,sys
var = sys.argv[1]
path = r"/opt/jumpserver/"
cmd = "grep %s"%var
for root,dirs,files in os.walk(path):
    for file in files:        #获取文件路径
        a = os.path.join(root,file)
        b = os.system("%s %s"%(cmd,a))
        if b != 256:
            print(a)
            print('')

我已经改过了,所以我搜的自己的网名。

图片

先不看别的,就看中间那个py文件。

图片

原作者或团队把logo、标题、版权什么信息的都放一起,彰显了开源的大家风范。再回来说刚才搜到的django.po文件。

图片

里面都是一对对msgid和msdstr,并且列出了所有出现的文件位置。这个可以看成是语言转换翻译,代码里用的都是msgid,而页面上显示的是对应的中文。如果别的国家想用自己的语言,写一套对应的msdstr就行了,然后用msgfmt将.po文件转换成二进制的.mo文件。这也是刚才搜索出django.mo并显示二进制文件的原因。

4 上logo

即使作为一个冒牌的全栈工程师,UI设计也是不能少的。我用PS做了个logo,我自己都觉得像那么回事。

图片

我又给主页左侧的条目加了图标,但条目分大小,当点开小条目时,大条目的图标就没了。

图片

原版的图标是font-awesome库提供的,它有一套CSS样式,我觉得当点击二级条目时,样式变了,而我加的图标是固定的,所以样式一变我的图标就丢失了。CSS虽然看过教程,但还是不会,所以样式先不搞了,整体效果如图:

图片

5 量身定做

图片

从head加载的模块来看,bootstrap、jquery、echarts我都学过,再加上本身是django框架,简直就是让我练手的,虽然每项我学的连十分之一都不到。

三 浅尝辄止

大概的框架有点印象了,至于后面还搞不搞我也不敢说死,有时间有兴趣就搞搞,没时间就算了。

不过现在很多大学的计算机公共课教的都是Python了,这大学一毕业就自带Python技能,我学的又快被后浪淹没了。

你可能感兴趣的:(IT技术学习之开发(十))