docs: 添加第一版文档.

添加基本文档, 包括 Readme, 安装使用等.
This commit is contained in:
2021-08-16 00:40:19 +08:00
parent e317b07913
commit 712ce9df4a
10 changed files with 122 additions and 0 deletions

19
Readme.md Normal file
View File

@ -0,0 +1,19 @@
# Oracle Sentry #
本项目通过脚本自动管理甲骨文计算实例。
## 介绍 ##
各大云服务商很多都会提供 API让用户能够通过 API或者 Cli快捷的管理服务器甚至通过 API 开发自己的管理工具,甲骨文也不例外。
既然有 API再加上我是个懒癌那么肯定就要让程序帮我做事咯
甲骨文哨兵会通过用户编写的脚本,来通过 API 管理所有甲骨文计算实例,减少需要人工维护的需要。
本程序使用 Java 开发,使用 Groovy 开发脚本模块,并且脚本拥有很大的自由度,
不用担心有什么事脚本做不了(你只需要告诉我什么操作是脚本做起来比较麻烦的就可以了。)
本程序为脚本提供 SSH 客户端(使用 [apache/Mina-sshd](https://github.com/apache/mina-sshd) ),协助脚本通过 SSH 管理服务器。
## Docs ##
[中文(简体)](./docs/cn/Index.md)
## License ##
本项目使用 GPLv3 协议开源,有关该协议的详细内容请查看本项目附带的 [LICENSE](./LICENSE) 文件。

4
docs/cn/Index.md Normal file
View File

@ -0,0 +1,4 @@
## 文档目录 ##
- [安装并使用](安装并使用.md)
- [编写脚本](./script/groovy/入门.md)

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,47 @@
## Groovy 脚本编写
### 基本格式
Groovy 语言的脚本基本格式如下:
```groovy
info {
// 脚本信息, 遵循 Java 的 GAV 规则.
// 脚本英文名
artifact 'demo'
// 所属组(如果有域名, 就是自己的域名的倒序, 例如 tieba.baidu.com 就是 com.baidu.tieba)
// 如果没有, 也可以用 github 的.
group 'org.example'
// 脚本版本号.
version '0.0.1'
}
// 注册触发器.
// 目前触发器有两种选择
// once 单次触发器: 只会运行一次.
// timer 定时器触发器: 根据设定的 cron 表达式定时运行.
trigger("once") {
// once 触发器没有参数.
// 运行代码块, 要执行的东西都在这个代码块里.
run {
// 在这里做些什么, 比如
println "From script."
}
}
// 在外面可以定义一些全局变量.
def formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
// 这里注册定时器触发器.
trigger("timer") {
// time 参数指定 Cron 表达式, 像这样设置表达式字符串后就可以了.
time "0 0/1 * * * ? "
run {
// 在这里做些什么, 比如
println "当前时间: ${formatter.format(LocalDateTime.now())}"
}
}
```
Groovy 语言比较贴近 Java实际开发与 Java 没什么区别(相比于 Java 多了不少语法糖,但还是兼容 Java 的)。

View File

@ -0,0 +1,44 @@
## 安装并使用
### 创建 API 密钥
前往 [Oracle Cloud](https://cloud.oracle.com),登录后左上角打开菜单,选择“身份和安全”组,在右侧找到“身份”,然后找到“用户”。
![从菜单中找到用户](.\images\Find-the-user-from-the-menu.png)
然后找到自己的账号(一般用注册邮箱命名),如果先前有创建过帐号,找不到自己的帐号,可以在“用户类型”选择“本地”,会方便查找,找到自己的帐号后点进去。
![找到并选择主用户](.\images\Locate-and-select-the-primary-user.png)
进去后左下角资源选择“API密钥”右侧列表选添加 API 密钥,在弹出的窗口中点击“下载私有密钥”,将密钥下载下来妥善保管好(可以先根据需要命名),然后点击“添加”。
![创建 API 机密密钥](.\images\Create-api-secret-key.png)
点击后,会显示一个身份配置模板,将模板复制下来,粘贴到一个文件上,将文件命名为`<自定义名字>.oracle.ini`
![复制身份认证配置](.\images\Create-authentication-profile.png)
粘贴到文件之后,将刚刚保存好的密钥路径粘贴到`key_file`项里,如图所示:
![粘贴到文件中并设置密钥路径](.\images\Save-to-file.png)
哨兵支持解析密钥*相对于*配置文件的路径,所以可以填相对路径,方便移动配置文件和密钥文件。
这样一个身份配置就准备好了,如果你有多个甲骨文云帐号,也可以重复以上步骤创建。
## 安装哨兵 ##
从 [Github releases](https://github.com/LamGC/Oracle-Sentry/releases) 页面下载最新的版本,放在一个文件夹中。
使用 Java 16 启动哨兵,哨兵会初始化几个目录和文件:
- `identity`:将所有从官网创建的身份配置文件放入该文件夹,如果你在配置文件中使用了密钥的相对路径,请记得移动密钥文件,或者修正密钥文件路径。
- `scripts`:脚本文件夹,将编写好的脚本放入即可,脚本加载器会将其可以加载的脚本加载到哨兵中,让脚本运行。
- `config`:配置文件夹,如果有修改配置的需要可以在内部创建 `application.yml` 并对具体项做修改,一般情况下不需要修改,具体信息另外写一篇。
文件夹和文件夹里的文件准备好后,就可以启动哨兵,开始工作了。
> 哨兵通过脚本实现对服务器的自动化控制脚本中采用了触发器Trigger当触发器条件满足时将执行脚本注册的方法以自动执行一些操作。
## 安装脚本 ##
将脚本直接放入运行目录下的 `scripts` 文件夹即可, 如果脚本无误,启动哨兵后脚本将会开始工作!
> 注意:脚本暂时不支持动态添加,如果你添加了新的脚本,记得重启哨兵!

8
docs/cn/编译哨兵.md Normal file
View File

@ -0,0 +1,8 @@
## 编译哨兵
### 前提条件
- Java 16+
- 有网络
### 编译方法
直接运行 `./gradlew build` 即可编译完成后会提示“BUILD SUCCESSFUL”即可在“build/libs”文件夹中找到 jar 文件。