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日 |
#649 在 HTTP服务器
74KB
288 代码行
randrust
目录
描述
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.sh
和helm_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应用进行测试,但这可能很快就会改变。
贡献者/参考
如果其他开源包、仓库或工作帮助编写了此包的源代码,我会列出它们以及原始许可证。
- 图标由ibrandify (https://thenounproject.com/ibrandify/)创建。
- CCPL.
- Ubuntu 18.04的rsyslogd包被用作控制和初始化脚本的参考,尽管其中一些已经简化。
- 来自
helm create
命令的Helm脚手架。
其余内容由Ryan Gerstenkorn编写,并许可在BSD-2下。
依赖项
~5.5MB
~98K SLoC