diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 8176564..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -version: "3.2" -services: - flask-consul: - image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest - container_name: flask-consul - hostname: flask-consul - restart: always - volumes: - - /usr/share/zoneinfo/PRC:/etc/localtime - environment: - consul_token: xxxxx-xxxxx-xxxxx - consul_url: http://x.x.x.x:8500/v1 - admin_passwd: xxxxxxxx - log_level: INFO - nginx-consul: - image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest - container_name: nginx-consul - hostname: nginx-consul - restart: always - ports: - - "1026:1026" - volumes: - - /usr/share/zoneinfo/PRC:/etc/localtime diff --git a/install/docker-compose/.all_install.sh.swp b/install/docker-compose/.all_install.sh.swp new file mode 100644 index 0000000..795ba36 Binary files /dev/null and b/install/docker-compose/.all_install.sh.swp differ diff --git a/install/docker-compose/all_install.sh b/install/docker-compose/all_install.sh new file mode 100755 index 0000000..25a56be --- /dev/null +++ b/install/docker-compose/all_install.sh @@ -0,0 +1,98 @@ +#!/bin/bash +tsspath="/opt/tensuns" +uuid=`uuidgen` +adminpwd=`uuidgen|awk -F- '{print $1}'` +mkdir -p $tsspath/consul/config +cat < $tsspath/consul/config/consul.hcl +log_level = "error" +data_dir = "/consul/data" +client_addr = "0.0.0.0" +ui_config{ + enabled = true +} +ports = { + grpc = -1 + https = -1 + dns = -1 + grpc_tls = -1 + serf_wan = -1 +} +peering { + enabled = false +} +connect { + enabled = false +} +server = true +bootstrap_expect=1 +acl = { + enabled = true + default_policy = "deny" + enable_token_persistence = true + tokens { + initial_management = "$uuid" + agent = "$uuid" + } +} +EOF + +cat < $tsspath/docker-compose.yaml +version: '3.6' +services: + consul: + image: hashicorp/consul:1.16 + container_name: consul + hostname: consul + restart: always + volumes: + - $tsspath/consul/data:/consul/data + - $tsspath/consul/config:/consul/config + - /usr/share/zoneinfo/PRC:/etc/localtime + command: "agent" + networks: + - TenSunS + + flask-consul: + image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest + container_name: flask-consul + hostname: flask-consul + restart: always + volumes: + - /usr/share/zoneinfo/PRC:/etc/localtime + environment: + consul_token: $uuid + consul_url: http://consul:8500/v1 + admin_passwd: $adminpwd + log_level: INFO + depends_on: + - consul + networks: + - TenSunS + + nginx-consul: + image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest + container_name: nginx-consul + hostname: nginx-consul + restart: always + ports: + - "1026:1026" + volumes: + - /usr/share/zoneinfo/PRC:/etc/localtime + depends_on: + - flask-consul + networks: + - TenSunS + +networks: + TenSunS: + name: TenSunS + driver: bridge + ipam: + driver: default +EOF + +echo -e "\n后羿运维平台默认的admin密码是:\033[31;1m$adminpwd\033[0m\n修改密码请编辑 $tsspath/docker-compose.yaml 查找并修改变量 admin_passwd 的值\n" +echo "正在启动后羿运维平台..." +cd $tsspath && docker-compose up -d +echo -e "\n请使用浏览器访问 http://{你的IP}:1026 并登录使用\n" +echo -e "\033[31;1mhttp://`ip route get 1.2.3.4 | awk '{print $NF}'|head -1`:1026\033[0m\n" diff --git a/install/docker-compose/consul_install_only.sh b/install/docker-compose/consul_install_only.sh new file mode 100755 index 0000000..e6ae719 --- /dev/null +++ b/install/docker-compose/consul_install_only.sh @@ -0,0 +1,64 @@ +#!/bin/bash +uuid=`uuidgen` +mkdir -p /opt/consul/config +cat < /opt/consul/config/consul.hcl +log_level = "error" +data_dir = "/consul/data" +client_addr = "0.0.0.0" +ui_config{ + enabled = true +} +ports = { + grpc = -1 + https = -1 + dns = -1 + grpc_tls = -1 + serf_wan = -1 +} +peering { + enabled = false +} +connect { + enabled = false +} +server = true +bootstrap_expect=1 +acl = { + enabled = true + default_policy = "deny" + enable_token_persistence = true + tokens { + initial_management = "$uuid" + agent = "$uuid" + } +} +EOF + +cat < /opt/consul/docker-compose.yaml +version: '3.6' +services: + consul: + image: hashicorp/consul:1.16 + hostname: consul + container_name: consul + restart: always + volumes: + - /opt/consul/data:/consul/data + - /opt/consul/config:/consul/config + - /usr/share/zoneinfo/PRC:/etc/localtime + ports: + - "8500:8500" + command: "agent" + networks: + - TenSunS + +networks: + TenSunS: + name: TenSunS + driver: bridge + ipam: + driver: default +EOF + +echo "请进入/opt/consul目录执行 docker-compose up -d 启动consul" +echo "consul的管理员token是: $uuid" diff --git a/install/docker-compose/tensuns_install_only.sh b/install/docker-compose/tensuns_install_only.sh new file mode 100755 index 0000000..69aba65 --- /dev/null +++ b/install/docker-compose/tensuns_install_only.sh @@ -0,0 +1,49 @@ +#!/bin/bash +tsspath="/opt/tensuns" +mkdir -p $tsspath + +cat < $tsspath/docker-compose.yaml +version: '3.6' +services: + flask-consul: + image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest + container_name: flask-consul + hostname: flask-consul + restart: always + volumes: + - /usr/share/zoneinfo/PRC:/etc/localtime + environment: + consul_token: xxxxx-xxxxx-xxxxx + consul_url: http://x.x.x.x:8500/v1 + admin_passwd: xxxxxxxx + log_level: INFO + networks: + - TenSunS + + nginx-consul: + image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest + container_name: nginx-consul + hostname: nginx-consul + restart: always + ports: + - "1026:1026" + volumes: + - /usr/share/zoneinfo/PRC:/etc/localtime + depends_on: + - flask-consul + networks: + - TenSunS + +networks: + TenSunS: + name: TenSunS + driver: bridge + ipam: + driver: default +EOF + + +echo -e "\n编辑:$tsspath/docker-compose.yaml,修改3个环境变量:\n\033[31;1mconsul_token\033[0m:consul的登录token(安装consul时生成的UUID)\n\033[31;1mconsul_url\033[0m:consul的URL(http开头,/v1要保留)\n\033[31;1madmin_passwd\033[0m:登录后羿运维平台admin用户的密码\n" +echo "启动:cd $tsspath && docker-compose up -d" +echo -e "\n请使用浏览器访问 http://{你的IP}:1026 并登录使用\n" +echo -e "\033[31;1mhttp://`ip route get 1.2.3.4 | awk '{print $NF}'|head -1`:1026\033[0m\n" diff --git a/install/k8s/install.sh b/install/k8s/install.sh new file mode 100755 index 0000000..d982fd8 --- /dev/null +++ b/install/k8s/install.sh @@ -0,0 +1,247 @@ +#!/bin/bash +uuid=`uuidgen` +passwd="tensuns" +read -p "请设置登录后羿运维平台的admin密码:" passwd + +cat < 1.consul-deploy.yaml +apiVersion: v1 +kind: Namespace +metadata: + name: tensuns +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: consul-config + namespace: tensuns + labels: + app: consul +data: + consul.hcl: |+ + log_level = "error" + data_dir = "/consul/data" + client_addr = "0.0.0.0" + ui_config { + enabled = true + } + ports = { + grpc = -1 + https = -1 + dns = -1 + grpc_tls = -1 + serf_wan = -1 + } + peering { + enabled = false + } + connect { + enabled = false + } + acl = { + enabled = true + default_policy = "deny" + enable_token_persistence = true + tokens { + initial_management = "$uuid" + agent = "$uuid" + } + } + server = true + bootstrap_expect = 1 +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: consul + namespace: tensuns + labels: + app: consul +spec: + replicas: 1 + selector: + matchLabels: + app: consul + template: + metadata: + labels: + app: consul + spec: + volumes: + - name: consul-config + configMap: + name: consul-config + containers: + - name: consul + image: hashicorp/consul:1.16 + ports: + - name: http + containerPort: 8500 + protocol: TCP + env: + - name: TZ + value: Asia/Shanghai + volumeMounts: + - name: consul-data + mountPath: /consul/data + - name: consul-config + mountPath: /consul/config/consul.hcl + subPath: consul.hcl + imagePullPolicy: IfNotPresent + restartPolicy: Always + volumeClaimTemplates: + - kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: consul-data + namespace: tensuns + annotations: + everest.io/disk-volume-type: SAS + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + storageClassName: csi-disk + volumeMode: Filesystem + serviceName: consul + +--- +apiVersion: v1 +kind: Service +metadata: + name: consul + namespace: tensuns + labels: + app: consul +spec: + ports: + - name: http + protocol: TCP + port: 8500 + targetPort: 8500 + selector: + app: consul + type: ClusterIP +EOF + +cat < 2.tensuns-deploy.yaml +apiVersion: v1 +kind: Namespace +metadata: + name: tensuns +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: flask-consul + namespace: tensuns + labels: + app: flask-consul +spec: + replicas: 1 + selector: + matchLabels: + app: flask-consul + template: + metadata: + labels: + app: flask-consul + spec: + initContainers: + - name: wait-for-consul + image: busybox + command: + - sh + - '-c' + - >- + for i in \$(seq 1 60); do nc -z -w3 consul 8500 && exit 0 || + sleep 5; done; exit 1 + imagePullPolicy: IfNotPresent + containers: + - name: flask-consul + image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest' + ports: + - name: http-2026 + containerPort: 2026 + protocol: TCP + env: + - name: admin_passwd + value: '$passwd' + - name: consul_token + value: '$uuid' + - name: consul_url + value: 'http://consul:8500/v1' + - name: log_level + value: INFO + - name: TZ + value: Asia/Shanghai + imagePullPolicy: Always + restartPolicy: Always +--- +kind: Service +apiVersion: v1 +metadata: + name: flask-consul + namespace: tensuns + labels: + app: flask-consul +spec: + ports: + - name: http-2026 + protocol: TCP + port: 2026 + targetPort: 2026 + selector: + app: flask-consul + type: ClusterIP +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: nginx-consul + namespace: tensuns + labels: + app: nginx-consul +spec: + replicas: 1 + selector: + matchLabels: + app: nginx-consul + template: + metadata: + labels: + app: nginx-consul + spec: + containers: + - name: nginx-consul + image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest' + ports: + - name: http-1026 + containerPort: 1026 + protocol: TCP + env: + - name: TZ + value: Asia/Shanghai + imagePullPolicy: Always + restartPolicy: Always +--- +kind: Service +apiVersion: v1 +metadata: + name: tensuns + namespace: tensuns + labels: + app: tensuns +spec: + ports: + - name: nginx-consul + protocol: TCP + port: 1026 + targetPort: 1026 + nodePort: 31026 + selector: + app: nginx-consul + type: NodePort + externalTrafficPolicy: Cluster +EOF diff --git a/k8s-deploy.yaml b/k8s-deploy.yaml deleted file mode 100644 index 843db5e..0000000 --- a/k8s-deploy.yaml +++ /dev/null @@ -1,108 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: flask-consul - labels: - app: flask-consul -spec: - replicas: 1 - selector: - matchLabels: - app: flask-consul - template: - metadata: - labels: - app: flask-consul - spec: - initContainers: - - name: wait-for-consul - image: busybox - command: - - sh - - '-c' - - >- - for i in $(seq 1 60); do nc -z -w3 x.x.x.x 8500 && exit 0 || - sleep 5; done; exit 1 - imagePullPolicy: IfNotPresent - containers: - - name: flask-consul - image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest' - ports: - - name: http-2026 - containerPort: 2026 - protocol: TCP - env: - - name: admin_passwd - value: 'xxxxxxxx' - - name: consul_token - value: xxxx-xxxx-xxxx-xxxx - - name: consul_url - value: 'http://x.x.x.x:8500/v1' - - name: log_level - value: INFO - - name: TZ - value: Asia/Shanghai - imagePullPolicy: Always - restartPolicy: Always ---- -kind: Service -apiVersion: v1 -metadata: - name: flask-consul - labels: - app: flask-consul -spec: - ports: - - name: http-2026 - protocol: TCP - port: 2026 - targetPort: 2026 - selector: - app: flask-consul - type: ClusterIP ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: nginx-consul - labels: - app: nginx-consul -spec: - replicas: 1 - selector: - matchLabels: - app: nginx-consul - template: - metadata: - labels: - app: nginx-consul - spec: - containers: - - name: nginx-consul - image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest' - ports: - - name: http-1026 - containerPort: 1026 - protocol: TCP - env: - - name: TZ - value: Asia/Shanghai - imagePullPolicy: Always - restartPolicy: Always ---- -kind: Service -apiVersion: v1 -metadata: - name: consulmanager - labels: - service: consulmanager -spec: - ports: - - name: nginx-consul - protocol: TCP - port: 1026 - targetPort: 1026 - nodePort: 31026 - selector: - app: nginx-consul - type: NodePort \ No newline at end of file