#base64 #length #byte #encoded #random #web

app randrust

轻量级HTTP服务器,返回指定长度的base64编码的字节

5个版本

0.1.17 2019年9月30日
0.1.16 2019年9月30日
0.1.14 2019年9月30日
0.1.3 2019年9月22日
0.1.1 2019年9月22日

#649HTTP服务器

Apache-2.0

74KB
288 代码行

randrust

Build Status

目录

  1. 描述
  2. 使用 - 配置选项和附加功能
  3. Nagios检查
  4. 开发 - 模块贡献指南
  5. 贡献者/参考

描述

A rust web app that returns a random base64 encoded string of a given length.

使用方法

Kubernetes与Helm

这假设你已经设置了一个带有Helm的Kubernetes集群。

在OSx上,你可以使用docker-for-mac的Edge安装版来通过在运行中的Docker图标下启用它来设置Kubernetes -> 首选项 -> Kubernetes。

有关在Kubernetes上设置Helm的说明,请参阅Helm安装指南

设置完成后,你可以通过克隆此存储库并运行部署脚本来部署。

git clone https://github.com/RyanJarv/randrust.git
cd randrust
 ./scripts/helm_deploy.sh

这使用Let's Encrypt来设置SSL,但如果不使用有效的域名等更改,它将生成自签名证书。

从软件包安装

  • Ubuntu 18.04
  • Ubuntu 16.04
  • Debian 9
curl -s https://packagecloud.io/install/repositories/jarv/test/script.deb.sh | sudo bash
apt install randrust

它监听在/etc/default/randrust中配置的端口。默认情况下为31531

Puppet

Puppet支持与软件包安装相同的系统。

有关更多信息,请参阅puppet-randrust存储库。

本地从源代码

# Install rust
curl https://sh.rustup.rs -sSf | sh

# Clone and build
git clone https://github.com/RyanJarv/randrust.git
cd randrust
./scripts/build.sh

# Run and test
./target/release/randrust 3413 &
curl localhost:3413/key/5

Docker Compose

这使用nginx作为前端,并使用自签名SSL证书。

有关安装Docker Compose的说明,请参阅参考文档

git clone https://github.com/RyanJarv/randrust.git
cd randrust
bash ./scripts/generate_test_certs.sh
docker-compose up
curl -k https://127.0.0.1/key/4

注意:此使用自签名的测试密钥在ssl/test中。如果用于除测试之外的其他用途,则应更新。

Dockerhub

docker run -p 127.0.0.1:8080:80 ryanjarv/randrust &
curl http://localhost:8080/key/5

Nagios检查

此存储库包括check_randrust.py脚本,您可以使用它作为nagios的检查。

安装

requirements.txt中的依赖项需要安装。

python3 -m venv .venv
. .venv/bin/activate
./check_randrust.py 

注意:目前没有禁用SSL验证的选项,因此在使用自签名证书时将不起作用。

使用方法

usage: check_randrust.py [-h] [-wt RANGE] [-ct RANGE] -u URL [-wl RANGE]
                         [-cl RANGE] [-v]

Randrust Nagios check.

optional arguments:
  -h, --help            show this help message and exit
  -wt RANGE, --twarning RANGE
                        return warning if response time is greater out of
                        RANGE in seconds
  -ct RANGE, --tcritical RANGE
                        return critical if response time is longer out of
                        RANGE in seconds)
  -u URL, --url URL     URL to check
  -wl RANGE, --wlength RANGE
                        return warning if decoded string length is outside of
                        RANGE
  -cl RANGE, --clength RANGE
                        return critical if decoded string length is outside of
                        RANGE
  -v, --verbose         increase output verbosity (use up to 3 times)

示例

./check_randrust.py --url https://127.0.0.1:8000/key/4 --twarning .1 --tcritical .2 --clength 4:4
RANDRUST OK - Decoded returned string length is 4 | length=4;1:;4:4;0 rtime=0.00957179069519043;0.1;0.2;0

开发

Kubernetes/Helm

有关设置信息,请参阅使用方法

要检查和测试部署,可以使用helm_lint.shhelm_deploy.sh

./scripts/helm_lint.sh
./scripts/helm_deploy.sh

Helm CI

此仓库曾一度使用Circle CI的helm orb进行AWS EKS测试,但运行时间较长,且不做改动的话成本较高。可能会考虑在此处探索其他选项。

我尝试了其他几种方法,比如Kubernetes in Docker,但在设置ingress路由时遇到了问题(如果你最终尝试了,可以查看这篇文章,我在这方面运气有些不一致)。

目前,我只是在构建Rust包的同时,使用Travis CI设置来检查脚本和图表。

Rust/Deb CI

Travis CI构建了Rust应用和Debian包,使用cargo-deb,并部署到crates.io

目前没有对Rust应用进行测试,但这可能很快就会改变。

贡献者/参考

如果其他开源包、仓库或工作帮助编写了此包的源代码,我会列出它们以及原始许可证。

其余内容由Ryan Gerstenkorn编写,并许可在BSD-2下。

依赖项

~5.5MB
~98K SLoC