
我们曾经决定对日常工作时间进行自动化。 创建自己的合奏(可发音)或类似的东西。 我爬到该集成的网站,查看了它的工作原理
……它通过ssh连接到远程服务器并在其中运行某种脚本……我想,这真的需要一个集成吗? 没有合奏,我自己……一个人就能做到! 因此,不仅可以,我决定编写一个Web应用程序。 该应用程序称为
Update Server ,缩写为
UpS 。
糟透了! 下切了很多图片和几张gif图像。
我决定使用python和dzhanga制作应用程序。 双方都有足够的专家和“专家”。 因此,我现在不会测量代码行数。 那些
感兴趣的人可以
在这里找到秘密,大多数团队都为我们的项目专门
编码 。 我只会告诉(并显示)它最终在应用程序中实现了什么功能。 所以在这里。 顺便说一句,我捡起了我的蟒蛇,我的蟒蛇不是很大,正常,平均为2.7。 我给他买了一个崭新的(当时)dzhang 1.10,并开始连接它们。 以此类推。 我以各种方式从上面和下面进入。 最终结果如此。

但是首先,首先要从一个如此简单的页面开始,并附上描述。

单击
Projects jumbotron,我们进入项目选择页面。

选择项目后,我们进入带有服务器,脚本等列表的主页。

让我们继续细节。 该应用程序标识了几个实体:服务器(服务器),脚本(脚本),服务包(更新),核心任务(定时作业),历史记录中的事件(事件),项目(项目),而不是转储(dump)的本质。
有点题外话
我们与我的儿子一起玩《泰坦(Titan)》游戏,或者我玩,他看上去)在那儿,有一些人工制品从俄语中掉出来,在俄罗斯版中称为实体。 一天晴朗,那里的阿喀琉斯精华在我身上跌落了。 图片是另外一回,但来自同一部歌剧)
儿子看见并大喊:
-爸爸,看看阿喀琉斯的信誉!)
主要的实质是项目。 服务器,脚本,更新依附于项目。 将创建官方作业和转储。 对象分散在相应的选项卡上。 左侧是带有命令列表的菜单。 让我们浏览一下书签。 第一个书签脚本。

在这里,我们看到了可用的脚本和服务器(服务器在所有选项卡上都可用,因为几乎总是需要它们)。 脚本可以从文件中加载,也可以使用“
添加”按钮在界面中创建。 受SH,PY,YML和SQL脚本支持。

在脚本面板中有一个描述(
description ),一段代码(
Preview ),作者和日期。 对于SH和PY脚本,可以添加选项(
options字段)。 通过单击面板的任何部分(“快速”按钮除外)来选择脚本(和其他对象)。 单击脚本(第二,第三等),单击服务器(第二,第三等),然后单击
运行脚本 。 选定的一个或多个脚本将在选定的一个或多个服务器上执行。 如果您需要“快速”运行一个脚本,可以使用脚本面板上的“快速”按钮,单击服务器(第二,第三等),然后单击所需脚本的
运行 。 在撰写文章时,出现了更改。 将SQL脚本与其余的脚本分开,添加了单独的命令和permichon用于执行后缀。 例如,这允许仅授予执行抵押的权限,因为 SH和PY功能强大得多,它们提供了几乎无限的可能性。 但是我没有重做屏幕截图)我可以将自己限制在脚本范围内,几乎所有操作都可以用脚本来完成,但是已经很难停止了。
继续,服务包。

在此选项卡上,您可以添加新更新,将其复制到服务器,执行更新。

实际上,它可以是任何文件,因为在此示例中,常规txt文件用作测试更新。 您将文件上传到服务器(通常是zip),并通过脚本以某种方式使用它。 更新还显示了描述,作者,日期和大小。
接下来是垃圾场。

它显示“
获取转储”命令接收的文件列表或从此处下载的文件列表。

转储没有描述,只有名称,大小和创建时间。 可能不仅所有食物至少一次(两,三)撞到食物底座了吗? 我将这次机会带到了一个新的高度)
发送转储此命令从选定的转储中部署服务器库。 感觉到机会了吗(您听到了放屁的声音)是的,在
没有能力的手中,该命令只需单击几下即可杀死所有服务器上的所有基础! 这就是该(和类似)命令的按钮被涂成红色的原因,应非常小心地按下它。 对于批量转储,使用当然是有问题的,但是对于小型测试库,这是非常方便的事情。 Cron。

所有这些耻辱都可以贯穿冠冕。 此选项卡显示活动任务。

每个任务都有一个唯一的标识符(
crontab id ),随后对其进行操作是必需的。 描述指示任务将执行的操作。 在示例中,在地址为jboss @ localhost的服务器上运行
test2.sh脚本。 任务的开始时间在
开始日期字段中以YYYY-MM-DD HH格式表示:MM指示作者和创建时间。 您可以取消任务,更改时间,使任务永久化(它将在指定时间每天执行),反之亦然。
运行命令的日志显示在此处。

您无法对日志执行任何操作,所有操作都已完成,请坐下来看看发生了什么。)点击日志面板会在一个单独的窗口中将其打开。 如果正在运行多个进程,则会出现“
所有日志”按钮,并在一个窗口中打开所有日志(我忘了截取此屏幕截图)。
服务器。 如我所说,服务器列表在所有选项卡上均可用。

服务器显示地址(
ssh address ),可以以用户@地址的格式编写,但是最好使用ssh别名(〜/ .ssh / config)并指定一些有意义的名称。 HTTP地址是服务器上部署的应用程序的URL。
工作文件夹 (
服务器 文件夹 )和端口(
服务器绑定端口 ),分别是应用程序所在的文件夹和打开的端口。 说明,作者,日期。 屏幕截图显示了在撰写本文时添加的几个新命令:
Prop和
Full 。 我们有两个主要的配置文件,这些命令使您可以方便地对其进行编辑。

团队的其他成员。 第一个红色:
Maintenance ON \ OFF-启用/禁用O_o计划维护或如果出现问题(例如在
发送转储后)的“计划工作”页面。
重新加载配置 -重新加载jboss配置(我们的项目使用jboss)。
重新启动\开始\停止\杀死jboss-停止,启动,重新启动jboss并进行残酷的杀戮(如果没有其他帮助)
此外,还有各种有用的东西:
系统信息 -显示有关服务器的信息:内存,磁盘,处理器,用户,进程。
检查运行状况 -快速检查应用程序的运行状况,查找应用程序进程,检查端口是否打开,并尝试使用curl敲打该端口。
Check conf-显示应用程序的配置文件。
检查日志 -显示应用程序日志。
检查GC日志 -显示日志垃圾收集器。
获取日\周\月\所有日志 -允许您在一个存档中下载特定时间的日志。
备份基础\系统\完整 -创建数据库,应用程序文件的备份副本,同时执行这两项。
复制工具 -将各种不同的脚本复制到服务器。
窥视密码 -允许您
窥视管理员密码。
检查更新 -显示哪些更新文件上载到服务器。
创建隧道 -将应用程序端口从应用程序服务器转发到
UpS (毕竟我们有ssh)。 您可以直接连接到应用程序端口。 在缺少对主要地址的访问(http \ s)的情况下对验证功能很有用。
系统信息 ,
检查运行状况 ,
检查conf ,
检查日志 ,
窥视密码 ,
检查更新和
创建隧道命令的 “快速”类似物直接出现在每台服务器的面板上。
上部面板中有一个“
历史记录”链接,所有(几乎)命令的执行结果都记录在历史记录中。 要求Permishers查看历史记录并执行命令。 Permichons由标准的Dzhangovsky管理面板挂起。 我在这里添加的唯一一件事是,我拧紧了django-guardian库,该库允许您将permichons附加到对象上,在我看来,这很方便,但是djanga不能直接使用。
当然,我不是无线专家,但我试图使管理变得轻松而不是强迫)单击必要的对象,选择团队
,就是这样。 点击按钮获得结果。 这样的东西。

关于这一切的几句话。 就像我说的,Python和dzhanga是视图,模型,URL,表格,这就是所有这些文件。 可用文件在此文件中进行了描述(到目前为止,所有内容都是合乎逻辑的,对吗?)。 看起来像这样:
class CommandClass: """ """ def __init__( self, permission='run_command', # Permission needed to run this command. position=1, # Position in commands list section='', # Section command will be placed to. style='', # Class assigned to a command button title='', # Pop up help message(via title) short='', # Short name for commands in quick section menu='', # Command name in UI name='', # Command name(an internal command name) run='', # Prevent CRONing his=True, # Command log will be saved to history fst=False, # Add command to quick section dgr='false', # If true will show confirmation window job='false', # Check if some cron jobs selected srv='false', # Check if some servers selected upd='false', # Check if some updates selected scr='false', # Check if some scripts selected dmp='false', # Check if some dumps selected ): self.permission = permission self.position = position self.section = section self.style = style self.title = title self.short = short self.name = name self.menu = menu self.run = run self.his = his self.fst = fst self.srv = srv self.upd = upd self.job = job self.scr = scr self.dmp = dmp self.dgr = dgr
在
Commandick词典中描述了所有现有命令。 字典的名称是一种文字游戏命令(command)和字典(dictionary),英语鉴赏家可能会发现其他一些隐藏的含义。 字典:
commandick = {
每个命令是
modules文件夹中的单独模块。 命令是由一个单独的进程启动的,如果选择了多个服务器,则会为每个服务器创建一个
starter.py脚本,该脚本将导入并执行必要的模块(命令)。 您有新功能吗? 将文件添加到
modules文件夹中,并在字典中进行描述。 这是一个应用程序。 Vangyu关于自行车制造的大量评论。 达到您的高度...故事,我想回答这个问题。 人们为什么不断结交新朋友? 毕竟,人们已经在一定程度上达到了……。 因为我喜欢这个过程,所以我喜欢这个过程,我也希望你能创造,发明,尝试)
其他工艺品最后,我想谈谈我的其他手工艺。 对于最小的
图画书 。 可以简化为其他脚本着色的脚本:
对于年龄较大的孩子,可以在控制台和漂亮的
仪表板上花很多时间。

对于已经在localhost框架之内的人,有一个
脚本可以从
〜/ .ssh / config创建菜单(对话框)。 每个人都知道为什么需要
〜/ .ssh / config ?)如下所示:

当然还有
PIE-PIE!许多人喜欢Piu-Piu(在github上有550多个星星),感谢大家的客气和帮助! 没听说过piu-piu吗?
在这里 ,
这里和
这里阅读。 我想进一步发展情节,使游戏更大,我有一些优化的想法,但时间非常有限。 新年假期非常受欢迎,我希望我能继续努力。 顺便说一句,可以将piu-piu安装为apt'om:
sudo apt install -y piu-piu

新年快乐!)