ansible-playbook 独立二进制编译实录
ansible-playbook 独立二进制编译实录 背景/起因 内部产品涉及到很多 docker 镜像,分布式安装涉及很多主机,所以采用了 ansible 来编写部署脚本,但是有时候会因为部署机器的系统或安装的 ansible 版本不同,总是会有各种各样的问题。 ...
ansible-playbook 独立二进制编译实录 背景/起因 内部产品涉及到很多 docker 镜像,分布式安装涉及很多主机,所以采用了 ansible 来编写部署脚本,但是有时候会因为部署机器的系统或安装的 ansible 版本不同,总是会有各种各样的问题。 ...
Dagger 使用札记 工具介绍 用于构建 DevOps 工作流的开源平台,旨在简化和标准化复杂的 CI/CD 管道。 Dagger 提供了 Go/Python/TypeScript 等语言的 sdk,使你能使用这些语言来操作 BuildKit 来生成或推送你想要的文件或镜像 ...
一般如果使用带桌面环境的 docker,比如 dorowu/ubuntu-desktop-lxde-vnc,然后安装 wps 后,使用 https://github.com/timxx/pywpsrpc 是没啥问题的,需要注意的是 wps 第一次打开后,需要同意 EULA,然后按照 https://github.com/timxx/pywpsrpc/issues/44#issuecomment-1032304847 中提到的改为 multi-module mode,然后就可以愉快使用了,但是对于无图形环境的 docker,似乎是连 wps 都无法启动 解决WPS无法启动的问题 wps安装之前需要安装一些依赖环境,这个后文给出完整的安装流程,此处主要解决 wps 安装完成后,启动无输出,直接闪退的问题 此处安装 https://github.com/timxx/pywpsrpc/wiki/Run-on-Server 配置了环境,但是wps依旧闪退 首先执行 whereis wps ,我们找到 wps 的执行文件路径,一般位于 /usr/bin/wps 然后我们编辑该文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 function run() { oldPwd="${PWD}" if [ -e "${gInstallPath}/office6/${gApp}" ] ; then if [ 1 -eq ${gDaemon} ]; then nohup ${gInstallPath}/office6/${gApp} ${gOpt} > /dev/null 2>&1 & elif [ 1 -eq ${gIsUrl} ]; then { ${gInstallPath}/office6/${gApp} ${gOptExt} ${gOpt} "${gFilePaths[@]}"; } > /dev/null 2>&1 elif [ 1 -eq ${gIsFushion} ] && [ "$1" != "/prometheus" ]; then { unset GIO_LAUNCHED_DESKTOP_FILE && ${gInstallPath}/office6/${gApp} /prometheus ${gOptExt} ${gOpt} "$@"; } > /dev/null 2>&1 else { ${gInstallPath}/office6/${gApp} ${gOptExt} ${gOpt} "$@"; } fi else echo "${gApp} does not exist!" fi } 将最后一个 else 的输出重定向去除,此时我们再运行 wps 就有报错输出了 ...
vps空间小,所以使用onedrive为例作为存储来搭建 photoprism 主要分为以下几步: 使用rclone挂载onedrive 部署photoprism 获得rclone.conf 首先在本地电脑上安装rclone 然后运行 rclone config 参照 https://rclone.org/onedrive/ 进行远程配置 然后配置完成后,~/.config/rclone/rclone.conf 内容类似 1 2 3 4 5 [onedrive] type = myonedrive token = {"access_token":"EwCAA8l6BA1","token_type":"Bearer","refresh_token":"M.C106eExJ7edYrxNdb3","expiry":"2023-06-03T16:20:11.7705715+08:00"} drive_id = 19fe142286d457 drive_type = personal docker plugin rclone配置 可按照下面,或者参见 https://rclone.org/docker/ 首先创建两个文件夹 1 2 sudo mkdir -p /var/lib/docker-plugins/rclone/config sudo mkdir -p /var/lib/docker-plugins/rclone/cache 然后安装 docker 插件 rclone ...
更新 20230221 现在抓包已经抓不到这个链接了,不过在打开回放时会有一个请求 /group-live-share/index.htm?liveUuid=xxx 把这个请求拼接上去到下面的链接依旧可以打开网页版 不过获取到的 m3u8 链接依旧是无法直接下载的 写了个脚本来自动化该流程,可在 https://github.com/akkuman/ding_playback_downloader 获取 原始记录 20220907 想下载钉钉直播回放,管理员设置了禁止下载 找到了这篇文章 [[原创]钉钉如何下载管理员禁止的直播回放(抓包分析)-软件逆向-看雪论坛-安全社区|安全招聘|bbs.pediy.com](https://bbs.pediy.com/thread-274002.htm) 打开burp,配置好burp证书,然后使用proxifier将钉钉主程序 DingTalk.exe 的流量全部转发到 burp 代理端口。打开直播回放,点开直播 按照文章中的寻找,只找到了下面这个链接 解码出来获取到了 其中有个 publicLandingUrl https://h5.dingtalk.com/group-live-share/index.htm?type=2&liveFromType=6&liveUuid=xxxx&bizType=dingtalk&dd_nav_bgcolor=FF2C2D2F#/union 浏览器打开这个链接,可以看到直播回放 播放视频,打开f12进行抓包,可以看到一个链接 https://dtliving-sh.dingtalk.com/live_hp/xxxx_merge.m3u8?auth_key=xxxxxx 这个链接中,xxxx是上面liveUuid,然后会看到一个m3u8,然后使用其他的工具下载并合并m3u8即可 其实上面的json中的 liveUrlHls ****中的auth_key可以用在拼接m3u8链接上,但是发现下载 liveUrlHls 需要单点登录(不知道这是不是我们公司的配置),而下载上面m3u8链接需要网页登录后cookie中PC_SESSION值 所以还是直接打开网页后使用idm之类的软件进行下载吧。 给出一份mitmproxy的脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 from mitmproxy import http from mitmproxy import ctx import re import json pattern = re.compile(r'\[live\-playback\-room\].+?\[response\](\{.+\})') def request(flow: http.HTTPFlow) -> None: # if flow.request.pretty_host != 'retcode.taobao.com': # return if not flow.request.path.startswith('/r.png'): return msg = flow.request.query.get('msg') if not msg: return if not pattern.match(msg): return data = pattern.search(msg)[1] try: data = json.loads(data) except Exception: return live_info = data.get('liveInfo') if not live_info: return live_uuid = live_info.get('liveUuid') ctx.log.info(f'获取到 liveUuid {live_uuid}') live_url_hls = live_info.get('liveUrlHls') ctx.log.info(f'获取到 liveUrlHls {live_url_hls}') ctx.log.inof(f"请打开网页使用IDM进行下载: {live_info.get('publicLandingUrl')}") 自动化的方案,之后再花时间研究 ...