Эх сурвалжийг харах

实现 初始化时,生成默认的启动作业及其细则,方便用户直接使用

James Iter 8 жил өмнө
parent
commit
6491e37801
3 өөрчлөгдсөн 72 нэмэгдсэн , 36 устгасан
  1. 8 35
      README.md
  2. 5 1
      docs/todo.md
  3. 59 0
      misc/init.sql

+ 8 - 35
README.md

@@ -14,16 +14,7 @@
     - [单机版一键安装](#单机版一键安装)
     - [JimV-C 一键安装](#jimv-c-一键安装)
     - [[JimV-C 手动安装](docs/install.md)](#jimv-c-手动安装)
-- [API](#api)
-    - [[状态码参考列表](docs/state_code.md)](#状态码参考列表)
-    - [[过滤器操作符原语](docs/filter_primitive.md)](#过滤器操作符原语)
-    - [[状态列表](docs/enum.md)](#状态列表)
-    - [[配置](docs/config.md)](#配置)
-    - [[实例初始化操作簇](docs/boot_job.md)](#实例初始化操作簇)
-    - [[系统模板](docs/os_template.md)](#系统模板)
-    - [[Guest](docs/guest.md)](#guest)
-    - [[磁盘](docs/disk.md)](#磁盘)
-- [流程图](#流程图)
+- [架构流程图](#架构流程图)
 - [问题反馈](#问题反馈)
 - [项目成员](#项目成员)
 - [Web端程序截图](#web端程序截图)
@@ -34,8 +25,9 @@
 
 > 计算机硬件越来越白菜价,性能越来越强劲,企业电子信息化方面的业务越来越多,"互联网+"、大数据的浪潮已经掀起,物联网、AI的趋势正在形成。
 > 因为上述的一切,虚拟化技术被处于一个软化硬件,揉和硬件与业务系统这么一个核心角色。
-> 虚拟化技术虽然已经被普及了很久,但多数企业依然仅仅是把它当做独立的虚拟硬件来使用。在资源的科学分配、高效利用、自动化管理方面,还差那么几步。
-> JimV 是一个,结构清晰简单,易于部署、维护、使用的,低门槛企业私有云管理平台。相比于业界知名的 OpenStack、OpenNebula...,JimV 不需要庞大的维护团队。
+> 虚拟化技术虽然已经被普及了很久,但多数企业依然仅仅是把它当做独立的虚拟硬件来使用。在资源的科学分配、高效利用、自动化管理方面,还差些许。
+> JimV 是一个,结构清晰简单,易于部署、维护、使用的,低门槛企业私有云管理平台。
+> 相比于业界知名的 OpenStack、OpenNebula...,JimV 没有很多的零部件,不需要庞大的维护团队。
 
 
 ## 功能指标
@@ -75,6 +67,7 @@
 >* 增加网络流量限额管理功能
 >* 增加 tag 功能
 >* 增加替换 IP 功能
+>* 增加对 Ceph 的支持
 >* 多租户
 >* 用户操作轨迹
 >* 用户管理功能
@@ -105,28 +98,7 @@ curl https://raw.githubusercontent.com/jamesiter/JimV-C/master/INSTALL.sh | bash
 ### [JimV-C 手动安装](docs/install.md)
 
 
-## API
-
-> 默认数据交互格式 Content-Type: application/json
-
-### [状态码参考列表](docs/state_code.md)
-
-### [过滤器操作符原语](docs/filter_primitive.md)
-
-### [状态列表](docs/enum.md)
-
-### [配置](docs/config.md)
-
-### [实例初始化操作簇](docs/boot_job.md)
-
-### [系统模板](docs/os_template.md)
-
-### [Guest](docs/guest.md)
-
-### [磁盘](docs/disk.md)
-
-
-## 流程图
+## 架构流程图
 
 
 ## 问题反馈
@@ -150,4 +122,5 @@ E-Mail: james.iter.cn@gmail.com
 
 ## Demo
 
-[demo.jimv.org](https://demo.jimv.org) <br> 管理员账密 `admin`:`admin`
+[demo.jimv.io](https://demo.jimv.io) <br> 管理员账密 `admin`:`jimv.pswd.com`
+

+ 5 - 1
docs/todo.md

@@ -38,6 +38,9 @@
 - [x] 显示计算节点离线时间
 - [x] 系统模板加入是否为 Windows 类系统的标记
 - [x] 系统模板为 Windows 时,时钟偏移值设定为 localtime,否则为 utc
+- [x] 初始化时,生成默认的启动作业及其细则,方便用户直接使用
+- [ ] 制作适用于 JimV 的 CentOS 7、Windows 2012 模板镜像
+- [ ] 制作模板镜像的 BT 链接,并展现到模板镜像的下载页面
 - [ ] 解决数据库重连隐患(当数据库[MySQL|Redis]重启后)
 - [ ] 去除非 Debug 模式下的调试信息
 - [ ] 实现 CentOS 7 单机版一建安装脚本(包括全新的数据库安装、配置、部署)
@@ -56,6 +59,7 @@
 - [ ] 日志里面加入操作轨迹
 - [ ] 计算节点页面,展现每个计算节点上功能线程的状态
 - [ ] 避免计算节点主机名相同的情况
-- [ ] 考虑用 IP 地址来区别计算节点,而不是用主机名
+- [ ] 考虑用管理接口的 IP 地址来区别计算节点,而不是用主机名
+- [ ] 考虑 vm_network,vm_manage_network 改名为 vm_network_bridge,vm_manage_network_bridge
 
 

+ 59 - 0
misc/init.sql

@@ -303,3 +303,62 @@ ALTER TABLE host_disk_usage_io ADD INDEX (timestamp);
 ALTER TABLE host_disk_usage_io ADD INDEX (node_id, mountpoint, timestamp);
 
 
+INSERT INTO boot_job (name, use_for, remark) VALUES ('Reset password for Linux', 1, '重置 Linux 平台管理员密码。');
+INSERT INTO boot_job (name, use_for, remark) VALUES ('CentOS-Systemd', 0, '用作 Redhat Systemd 系列的系统初始化。初始化操作依据 CentOS 7 来实现。');
+INSERT INTO boot_job (name, use_for, remark) VALUES ('CentOS-SysV', 0, '用作 Redhat SysV 系列的系统初始化。初始化操作依据 CentOS 6.8 来实现。');
+INSERT INTO boot_job (name, use_for, remark) VALUES ('Gentoo-OpenRC', 0, '用作 Gentoo OpenRC 系列的系统初始化。');
+INSERT INTO boot_job (name, use_for, remark) VALUES ('Windows', 0, '用作 MS-Windos 系列的系统初始化。初始化操作依据 Windows 2012 来实现。');
+
+-- For Reset password for Linux
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (1, 0, 0, '', '', 'echo "root:{PASSWORD}" | chpasswd');
+
+-- For CentOS-Systemd
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (2, 1, 0, '/etc/resolv.conf', 'nameserver {DNS1}
+nameserver {DNS2}', '');
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (2, 1, 0, '/etc/sysconfig/network-scripts/ifcfg-eth0', 'DEVICE=eth0
+TYPE=Ethernet
+ONBOOT=yes
+BOOTPROTO="static"
+IPADDR={IP}
+NETMASK={NETMASK}
+GATEWAY={GATEWAY}
+DNS1={DNS1}
+DNS2={DNS2}
+IPV6INIT=no
+NAME=eth0', '');
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (2, 1, 0, '/etc/hostname', '{HOSTNAME}', '');
+
+-- For CentOS-SysV
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (3, 1, 0, '/etc/resolv.conf', 'nameserver {DNS1}
+nameserver {DNS2}', '');
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (3, 1, 0, '/etc/sysconfig/network-scripts/ifcfg-eth0', 'DEVICE=eth0
+TYPE=Ethernet
+ONBOOT=yes
+BOOTPROTO="static"
+IPADDR={IP}
+NETMASK={NETMASK}
+GATEWAY={GATEWAY}
+IPV6INIT=no
+NAME=eth0', '');
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (3, 1, 0, '/etc/sysconfig/network', 'NETWORKING=yes
+HOSTNAME="{HOSTNAME}"', '');
+
+-- For Gentoo-OpenRC
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (4, 1, 0, '/etc/resolv.conf', 'nameserver {DNS1}
+nameserver {DNS2}', '');
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (4, 1, 0, '/etc/conf.d/net', 'config_eth0="{IP}/{NETMASK}"
+routes_eth0="default via {GATEWAY}"', '');
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (4, 1, 0, '/etc/conf.d/hostname', 'hostname="{HOSTNAME}"', '');
+
+-- For Windows
+INSERT INTO operate_rule (boot_job_id, kind, sequence, path, content, command) VALUES (5, 1, 1, '/Windows/jimv_init.bat', 'netsh interface ip set address name="Ethernet" source=static {IP} {NETMASK} {GATEWAY}
+netsh interface ip set dns "Ethernet" static {DNS1} primary
+netsh interface ip add dns "Ethernet" {DNS2}
+wmic computersystem where name="%COMPUTERNAME%" call rename name="{HOSTNAME}"
+net user Administrator {PASSWORD}
+timeout 3 > NUL
+sc delete JimVInit
+del C:\\Windows\\jimv_init.bat
+timeout 2 > NUL
+shutdown -r -t 0', '');
+