瀏覽代碼

实现 避免计算节点主机名相同的情况

James Iter 8 年之前
父節點
當前提交
6e99edae53
共有 4 個文件被更改,包括 19 次插入3 次删除
  1. 14 2
      INSTALL.sh
  2. 2 0
      api/host.py
  3. 2 1
      docs/todo.md
  4. 1 0
      models/initialize.py

+ 14 - 2
INSTALL.sh

@@ -111,6 +111,17 @@ function prepare() {
     pip install virtualenv -i ${PYPI}
     pip install virtualenv -i ${PYPI}
 }
 }
 
 
+function clear_up_environment() {
+    systemctl stop firewalld
+    systemctl disable firewalld
+    systemctl stop NetworkManager
+    systemctl disable NetworkManager
+
+    sed -i 's@SELINUX=enforcing@SELINUX=disabled@g' /etc/sysconfig/selinux
+    sed -i 's@SELINUX=enforcing@SELINUX=disabled@g' /etc/selinux/config
+    setenforce 0
+}
+
 function install_MariaDB() {
 function install_MariaDB() {
     # 安装 MariaDB
     # 安装 MariaDB
     yum install mariadb mariadb-server -y
     yum install mariadb mariadb-server -y
@@ -188,7 +199,7 @@ function create_web_sites_directory() {
     su - www -c "mkdir ~/sites"
     su - www -c "mkdir ~/sites"
 }
 }
 
 
-function clone_and_checkout_JimV-C() {
+function clone_and_checkout_JimVC() {
     su - www -c "git clone https://github.com/jamesiter/JimV-C.git ~/sites/JimV-C"
     su - www -c "git clone https://github.com/jamesiter/JimV-C.git ~/sites/JimV-C"
 }
 }
 
 
@@ -249,10 +260,11 @@ function display_summary_information() {
 
 
 function deploy() {
 function deploy() {
     check_precondition
     check_precondition
+    clear_up_environment
     prepare
     prepare
     create_web_user
     create_web_user
     create_web_sites_directory
     create_web_sites_directory
-    clone_and_checkout_JimV-C
+    clone_and_checkout_JimVC
     fit_www_user_permission
     fit_www_user_permission
     install_MariaDB
     install_MariaDB
     install_Redis
     install_Redis

+ 2 - 0
api/host.py

@@ -143,6 +143,7 @@ def r_delete(nodes_id):
                 v['node_id'] = node_id
                 v['node_id'] = node_id
                 ret['data'] = v
                 ret['data'] = v
                 db.r.hdel(app.config['hosts_info'], node_id)
                 db.r.hdel(app.config['hosts_info'], node_id)
+                db.r.srem(app.config['compute_nodes_hostname_key'], v['hostname'])
 
 
         else:
         else:
             for node_id in nodes_id.split(','):
             for node_id in nodes_id.split(','):
@@ -151,6 +152,7 @@ def r_delete(nodes_id):
                     v['node_id'] = node_id
                     v['node_id'] = node_id
                     ret['data'].append(v)
                     ret['data'].append(v)
                     db.r.hdel(app.config['hosts_info'], node_id)
                     db.r.hdel(app.config['hosts_info'], node_id)
+                    db.r.srem(app.config['compute_nodes_hostname_key'], v['hostname'])
 
 
             if ret['data'].__len__() > 1:
             if ret['data'].__len__() > 1:
                 ret['data'].sort(key=lambda _k: _k['boot_time'])
                 ret['data'].sort(key=lambda _k: _k['boot_time'])

+ 2 - 1
docs/todo.md

@@ -62,11 +62,12 @@
 - [ ] 初始化页面检测 redis、mysql 是否准备好
 - [ ] 初始化页面检测 redis、mysql 是否准备好
 - [ ] 日志里面加入操作轨迹
 - [ ] 日志里面加入操作轨迹
 - [ ] 计算节点页面,展现每个计算节点上功能线程的状态
 - [ ] 计算节点页面,展现每个计算节点上功能线程的状态
-- [ ] 避免计算节点主机名相同的情况
+- [x] 避免计算节点主机名相同的情况
 - [ ] 考虑用管理接口的 IP 地址来区别计算节点,而不是用主机名
 - [ ] 考虑用管理接口的 IP 地址来区别计算节点,而不是用主机名
 - [ ] 考虑 vm_network,vm_manage_network 改名为 vm_network_bridge,vm_manage_network_bridge
 - [ ] 考虑 vm_network,vm_manage_network 改名为 vm_network_bridge,vm_manage_network_bridge
 - [ ] 通过 sysctl 隔离出 vnc 使用的端口,避免被冲突。参见 net.ipv4.ip_local_reserved_ports
 - [ ] 通过 sysctl 隔离出 vnc 使用的端口,避免被冲突。参见 net.ipv4.ip_local_reserved_ports
 - [ ] 考虑热更新、升级的问题
 - [ ] 考虑热更新、升级的问题
 - [ ] 加入清除老旧日志的功能
 - [ ] 加入清除老旧日志的功能
+- [ ] 忽略 guestfs- 为首的日志
 
 
 
 

+ 1 - 0
models/initialize.py

@@ -46,6 +46,7 @@ class Init(object):
         'downstream_queue': 'Q:Downstream',
         'downstream_queue': 'Q:Downstream',
         'upstream_queue': 'Q:Upstream',
         'upstream_queue': 'Q:Upstream',
         'hosts_info': 'H:HostsInfo',
         'hosts_info': 'H:HostsInfo',
+        'compute_nodes_hostname_key': 'S:ComputeNodesHostname',
         'guest_boot_jobs': 'S:GuestBootJobs',
         'guest_boot_jobs': 'S:GuestBootJobs',
         'guest_boot_jobs_wait_time': 600,
         'guest_boot_jobs_wait_time': 600,
         'db_charset': 'utf8',
         'db_charset': 'utf8',