Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

软件包上传/处理的自动化 #71

Open
hosiet opened this issue Feb 25, 2017 · 9 comments
Open

软件包上传/处理的自动化 #71

hosiet opened this issue Feb 25, 2017 · 9 comments

Comments

@hosiet
Copy link
Member

hosiet commented Feb 25, 2017

尽管使用 Git 自动化打包是最理想的方案,但是当前社区源有许多软件不宜使用 Git 管理,通常只推送 .deb 文件,偶尔使用 .changes 文件。因此,希望能够对软件包的上传、处理、发布进行自动化。

自动化的前提

  • 上传者拥有服务器本地帐号(SSH 帐号)
  • 服务器上有守护进程或系统服务或 cron 定时机制支持处理;

预期工作流程

  1. 上传人员使用 scp 或基于 SSH 的 rsync 或基于 SSH 的 dput 工具进行上传;
  2. 服务器守护进程使用 inotify 机制接获上传内容并进行自动处理,或者定时运行脚本检查上传内容;
  3. 脚本对上传内容进行检查,并在检查通过后调用 aptly 加入社区源中;
  4. 对处理结果进行记录,使用电子邮件或者网页的形式输出结果;

服务器要求

  • 添加一个系统服务,或者添加一个 docker 运行守护进程,或者在主系统添加 crontab;
  • 守护进程对 /data/repo/ 目录的完整权限;
  • 对 MX、SPF 等 DNS 记录的完善,和/或服务器运行可用的 MTA(使用电子邮件的前提);

@YanhaoMo 总之是现有权限基础上不够完成工作(repo 这个 docker 的入口进程是 /bin/bash,无法达到启动守护进程的要求),所以提出这个问题。考虑一下?

@Yanhao
Copy link
Member

Yanhao commented May 15, 2017

这个目前有现成的守护程序可以用吗?

@hosiet
Copy link
Member Author

hosiet commented May 15, 2017

没有现成的东西,操作都可以半自动化远程进行(SSH)所以没有进一步写脚本

@Yanhao
Copy link
Member

Yanhao commented May 15, 2017

那么目前需要的是一个服务器端的守护进程,客户端用scp就好,这个有计划吗

@hosiet
Copy link
Member Author

hosiet commented May 15, 2017

这个写起来会比较费事,自己写的话可能到七月才会开坑

@Yanhao
Copy link
Member

Yanhao commented May 15, 2017

另外关于旧版本的包的处理怎么做呢,是要保留还是直接删除,aptly貌似不会直接删除

@hosiet
Copy link
Member Author

hosiet commented May 15, 2017

暂时是手动的,这个工作未来就需要守护进程自动完成了

@Yanhao
Copy link
Member

Yanhao commented May 15, 2017

或许换reprepro? 这个可以直接删除旧版本的包,貌似现阶段保存旧版本的包也没有太大必要

@hosiet
Copy link
Member Author

hosiet commented May 15, 2017

这些方案当然都可以,不过注意无论哪个都需要投入人力,reprepro 相当于推倒重来

@Yanhao
Copy link
Member

Yanhao commented May 15, 2017

嗯, 服务器程序那个,或许我最近会开一个坑写一些看看。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants