update.sql 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. CREATE TABLE IF NOT EXISTS ssh_key(
  2. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  3. label VARCHAR(255) NOT NULL,
  4. public_key TEXT,
  5. create_time BIGINT UNSIGNED NOT NULL,
  6. PRIMARY KEY (id))
  7. ENGINE=Innodb
  8. DEFAULT CHARSET=utf8;
  9. ALTER TABLE ssh_key ADD INDEX (label);
  10. CREATE TABLE IF NOT EXISTS ssh_key_guest_mapping(
  11. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  12. ssh_key_id BIGINT UNSIGNED NOT NULL,
  13. guest_uuid CHAR(36) NOT NULL,
  14. PRIMARY KEY (id))
  15. ENGINE=Innodb
  16. DEFAULT CHARSET=utf8;
  17. ALTER TABLE ssh_key_guest_mapping ADD UNIQUE INDEX (ssh_key_id, guest_uuid);
  18. ALTER TABLE ssh_key_guest_mapping ADD INDEX (guest_uuid);
  19. -- 操作系统模板镜像
  20. CREATE TABLE IF NOT EXISTS os_template_image(
  21. label VARCHAR(255) NOT NULL,
  22. description TEXT,
  23. path VARCHAR(255) NOT NULL,
  24. active BOOLEAN NOT NULL DEFAULT TRUE,
  25. logo VARCHAR(255) NOT NULL,
  26. os_template_profile_id BIGINT UNSIGNED NOT NULL,
  27. PRIMARY KEY (id))
  28. ENGINE=InnoDB
  29. DEFAULT CHARSET=utf8;
  30. -- 操作系统模板描述文件
  31. CREATE TABLE IF NOT EXISTS os_template_profile(
  32. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  33. label VARCHAR(255) NOT NULL,
  34. description TEXT,
  35. -- http://libguestfs.org/guestfish.1.html#inspect-get-type
  36. os_type VARCHAR(10) NOT NULL,
  37. -- http://libguestfs.org/guestfish.1.html#inspect-get-distro
  38. os_distro VARCHAR(20) NOT NULL,
  39. os_major TINYINT UNSIGNED NOT NULL,
  40. os_minor TINYINT UNSIGNED NOT NULL,
  41. -- http://libguestfs.org/guestfish.1.html#inspect-get-arch http://libguestfs.org/guestfish.1.html#file-architecture
  42. os_arch VARCHAR(10) NOT NULL,
  43. os_product_name VARCHAR(255) NOT NULL,
  44. active BOOLEAN NOT NULL DEFAULT TRUE,
  45. icon VARCHAR(255) NOT NULL,
  46. os_template_initialize_operate_set_id BIGINT UNSIGNED NOT NULL,
  47. PRIMARY KEY (id))
  48. ENGINE=InnoDB
  49. DEFAULT CHARSET=utf8;
  50. ALTER TABLE os_template_profile ADD INDEX (label);
  51. ALTER TABLE os_template_profile ADD INDEX (os_type);
  52. ALTER TABLE os_template_profile ADD INDEX (os_distro);
  53. ALTER TABLE os_template_profile ADD INDEX (os_product_name);
  54. -- 操作系统模板初始化操作集
  55. CREATE TABLE IF NOT EXISTS os_template_initialize_operate_set(
  56. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  57. label VARCHAR(255) NOT NULL,
  58. description TEXT,
  59. active BOOLEAN NOT NULL DEFAULT TRUE,
  60. PRIMARY KEY (id))
  61. ENGINE=InnoDB
  62. DEFAULT CHARSET=utf8;
  63. ALTER TABLE os_template_initialize_operate_set ADD INDEX (label);
  64. -- 操作系统模板初始化操作细则
  65. CREATE TABLE IF NOT EXISTS os_template_initialize_operate(
  66. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  67. os_template_initialize_operate_set_id BIGINT UNSIGNED NOT NULL,
  68. kind TINYINT UNSIGNED NOT NULL DEFAULT 0,
  69. sequence TINYINT UNSIGNED NOT NULL DEFAULT 0,
  70. path VARCHAR(255) NOT NULL,
  71. content TEXT,
  72. command TEXT,
  73. PRIMARY KEY (id))
  74. ENGINE=InnoDB
  75. DEFAULT CHARSET=utf8;
  76. ALTER TABLE os_template_initialize_operate ADD INDEX (os_template_initialize_operate_set_id);
  77. INSERT INTO os_template_initialize_operate_set (label, description, active) VALUES ('CentOS-Systemd', '用作 Redhat Systemd 系列的系统初始化。初始化操作依据 CentOS 7 来实现。', 1);
  78. INSERT INTO os_template_initialize_operate_set (label, description, active) VALUES ('CentOS-SysV', '用作 Redhat SysV 系列的系统初始化。初始化操作依据 CentOS 6.8 来实现。', 1);
  79. INSERT INTO os_template_initialize_operate_set (label, description, active) VALUES ('Gentoo-OpenRC', '用作 Gentoo OpenRC 系列的系统初始化。', 1);
  80. INSERT INTO os_template_initialize_operate_set (label, description, active) VALUES ('Windows', '用作 MS-Windows 系列的系统初始化。初始化操作依据 Windows 2012 来实现。', 1);
  81. -- For CentOS-Systemd
  82. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (1, 1, 0, '/etc/resolv.conf', 'nameserver {DNS1}
  83. nameserver {DNS2}', '');
  84. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (1, 1, 1, '/etc/sysconfig/network-scripts/ifcfg-eth0', 'DEVICE=eth0
  85. TYPE=Ethernet
  86. ONBOOT=yes
  87. BOOTPROTO="static"
  88. IPADDR={IP}
  89. NETMASK={NETMASK}
  90. GATEWAY={GATEWAY}
  91. DNS1={DNS1}
  92. DNS2={DNS2}
  93. IPV6INIT=no
  94. NAME=eth0', '');
  95. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (1, 1, 2, '/etc/hostname', '{HOSTNAME}', '');
  96. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (1, 0, 3, '', '', 'echo "root:{PASSWORD}" | chpasswd');
  97. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (1, 0, 4, '', '', 'mkdir -p /root/.ssh');
  98. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (1, 1, 5, '/root/.ssh/authorized_keys', '{SSH-KEY}', '');
  99. -- For CentOS-SysV
  100. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (2, 1, 0, '/etc/resolv.conf', 'nameserver {DNS1}
  101. nameserver {DNS2}', '');
  102. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (2, 1, 1, '/etc/sysconfig/network-scripts/ifcfg-eth0', 'DEVICE=eth0
  103. TYPE=Ethernet
  104. ONBOOT=yes
  105. BOOTPROTO="static"
  106. IPADDR={IP}
  107. NETMASK={NETMASK}
  108. GATEWAY={GATEWAY}
  109. IPV6INIT=no
  110. NAME=eth0', '');
  111. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (2, 1, 2, '/etc/sysconfig/network', 'NETWORKING=yes
  112. HOSTNAME="{HOSTNAME}"', '');
  113. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (2, 0, 3, '', '', 'echo "root:{PASSWORD}" | chpasswd');
  114. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (2, 0, 4, '', '', 'mkdir -p /root/.ssh');
  115. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (2, 1, 5, '/root/.ssh/authorized_keys', '{SSH-KEY}', '');
  116. -- For Gentoo-OpenRC
  117. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (3, 1, 0, '/etc/resolv.conf', 'nameserver {DNS1}
  118. nameserver {DNS2}', '');
  119. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (3, 1, 1, '/etc/conf.d/net', 'config_eth0="{IP}/{NETMASK}"
  120. routes_eth0="default via {GATEWAY}"', '');
  121. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (3, 1, 2, '/etc/conf.d/hostname', 'hostname="{HOSTNAME}"', '');
  122. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (3, 0, 3, '', '', 'echo "root:{PASSWORD}" | chpasswd');
  123. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (3, 0, 4, '', '', 'mkdir -p /root/.ssh');
  124. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (3, 1, 5, '/root/.ssh/authorized_keys', '{SSH-KEY}', '');
  125. -- For Windows
  126. INSERT INTO os_template_initialize_operate (os_template_initialize_operate_set_id, kind, sequence, path, content, command) VALUES (4, 1, 0, '/Windows/jimv_init.bat', 'netsh interface ip set address name="Ethernet" source=static {IP} {NETMASK} {GATEWAY}
  127. netsh interface ip set dns "Ethernet" static {DNS1} primary
  128. netsh interface ip add dns "Ethernet" {DNS2}
  129. wmic computersystem where name="%COMPUTERNAME%" call rename name="{HOSTNAME}"
  130. net user Administrator {PASSWORD}
  131. timeout 3 > NUL
  132. sc delete JimVInit
  133. del C:\\Windows\\jimv_init.bat
  134. timeout 2 > NUL
  135. shutdown -r -t 0', '');
  136. INSERT INTO os_template_profile (label, description, os_type, os_distro, os_major, os_minor, os_arch, os_product_name, active, icon, os_template_initialize_operate_set_id)
  137. VALUES ('CentOS-7.4', 'CentOS 7.4。', 'linux', 'centos', 7, 4, 'x86_64', 'CentOS Linux release 7.4.1708 (Core)', 1, 'icon-os icon-os-centos', 1);
  138. INSERT INTO os_template_profile (label, description, os_type, os_distro, os_major, os_minor, os_arch, os_product_name, active, icon, os_template_initialize_operate_set_id)
  139. VALUES ('CentOS-6.8', 'CentOS 6.8。', 'linux', 'centos', 6, 8, 'x86_64', 'CentOS release 6.8 (Final)', 1, 'icon-os icon-os-centos', 2);
  140. INSERT INTO os_template_profile (label, description, os_type, os_distro, os_major, os_minor, os_arch, os_product_name, active, icon, os_template_initialize_operate_set_id)
  141. VALUES ('Gentoo-2.2', 'Gentoo 2.2。', 'linux', 'gentoo', 2, 2, 'x86_64', 'Gentoo Base System release 2.2', 1, 'icon-os icon-os-gentoo', 3);
  142. INSERT INTO os_template_profile (label, description, os_type, os_distro, os_major, os_minor, os_arch, os_product_name, active, icon, os_template_initialize_operate_set_id)
  143. VALUES ('Windows-2012-R2-Standard', 'Windows 2012 R2 Standard。', 'windows', 'windows', 6, 3, 'x86_64', 'Windows Server 2012 R2 Standard', 1, 'icon-os icon-os-windows', 4);