授权服务部署

裸机部署

下载可执行程序:grant_deploy.rar

  • 获取完整的安装压缩包 grant_deploy.tar,并解压到当前目录下
       tar -xf grant_deploy.tar
  • 进入grant_deploy文件夹,查看当前的文件,共2个文件:conf 和 grant

      ls
      conf  grant
  • 执行程序会自动建表。直接进入conf 目录,编辑配置文件,填写当前的数据库host等信息,以及用户名和密码

      cd ..
      cd conf
      ls
      config.properties key_pub.pem 
      vim config.properties
    url=jdbc:mysql://192.168.168.176:3306/iidp?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToN    ull&useSSL=false&allowPublicKeyRetrieval=true
    username=root
    password=123456
    serverPort=8080 # 服务监听的端口
  • Oracle数据库与mysql配置类似
    url=jdbc:oracle:thin:@192.168.168.177:1521:HELOWIN
    username=sie_chun
    password=123456
  • 达梦数据库配置

    # --- dm ---
    url=jdbc:dm://192.168.168.176:30236/SYSDBA
    username=SYSDBA
    password=SYSDBA001
  • 回到根目录,执行 nohup ./grant > grant.log 2>&1 & ,grant.log 日志出现Listening and serving HTTP on :8080日志,即表示运行成功。同时需要查看是否grant进程存在。

容器部署

下载镜像:grant-v2.tar

从v3版本开始支持达梦数据库:grant-v3.tar

  • docker部署,在/app/build/conf配置好相关配置文件(参考裸机配置,但docker配置需要自行挂载配置文件,参考下面的 -v 命令,其中/app/build/conf 配置文件目录是固定死的,容器外的路径可自行配置),并执行以下docker命令

    docker stop grant
    docker rm grant
    docker run -itd --name grant -p 8080:8080 -v /app/build/conf:/app/build/conf dockerhub.kubekey.local/release/grant:v2
    如果无法获取 dockerhub.kubekey.local/release/grant:v2 镜像,可以创建一个 Dockerfile,内容如下:
    FROM ubuntu:latest
    
    COPY grant /app/grant
    
    WORKDIR /app
    
    CMD ["./grant"]
    执行命令 docker build . -t grant:latest 构建镜像 grant:latest。然后使用以下命令运行镜像
    docker run -itd --restart=always --name grant -p 8080:8080 -v /app/build/conf:/app/conf grant:v2
  • docker-compose部署,编写docker-compose.yaml文件(如下),执行docker-compose -d up.

    version: '3.6'
    services:
      grant:
        image: 'dockerhub.kubekey.local/release/grant:v2'
        restart: always
        container_name: 'grant'
        ports:
          - '8080:8080'
        volumes:
          - /app/build/conf:/app/build/conf
  • k8s部署。由同目录下的 iidp平台项目部署文档 可知,已经在客户机上安装了一整套k8s平台和镜像仓库harbor, 那么安装和部署grant服务就相对简单,按照上述预置条件,创建好数据库和配置文件,直接执行kubectl -n yournamespace apply -f deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: grant-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: grant
      template:
        metadata:
          annotations:
            dapr.io/enabled: "false" # 是否开启dapr
            dapr.io/app-id: "grant"
            dapr.io/app-port: "8080"
          labels:
            app: grant
        spec:
          containers:
            - name: grant
              image: dockerhub.kubekey.local/release/grant:v2 # 镜像地址
              imagePullPolicy: IfNotPresent
              ports:
                - containerPort: 80
              volumeMounts:
              - name: config-volume
                mountPath: /app/build/conf
          volumes:
            - name: config-volume
              configMap:
                name: grant-cm-db
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        version: v1
        app: grant-svc
      name: grant-svc
    spec:
      selector:
        app: grant
      ports:
        - name: tcp-8080
          protocol: TCP
          port: 8080
          targetPort: 8080
    
    ---
    
    apiVersion: v1
    kind: ConfigMap
    metadata:
      labels:
        app: grant
      name: grant-cm
    data:
      config.properties: |
        url=jdbc:mysql://192.168.168.176:3306/snest?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true  
        username=root
        password=123456
        serverPort=8080
    
      key_pub.pem: |
        -----BEGIN RSA PUBLIC KEY-----
        MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWHxKR0aDQXEKthIMhe7
        L8jNs1Wti0ZNUzDIOqLnO+uL6gaXdvelp9orE5lN+J2NqQTRjAUm8cNIG8w97y+e
        UeG9JaC8Wp1LOjsHzE1GfwlGkCXKo8uy893WKC0kr8LHSUiOgL82q61BJ3gH/od1
        zzeEXT1I7DzK7ZidY7++6/vnPB0C6B5BFN7ZT1a29BZFk3GsRxxuUzK5EKvoYF3n
        P62IKku3CQh211DEy6MWXMfpWbheExvqn54IeaZrAV9NuZoDF5P7CMlksEMUapQh
        CJs2cxypMRi96jaeRc4oLecM6y1Kz3x4ZFoEmAHnyc+2rgHSbif0nYzRkbJAUDD5
        WQIDAQAB
        -----END RSA PUBLIC KEY-----