Rancher API使用总结——自动化部属

目的 :

  1. 根据 LDAP 中的用户,在 APP 创建一个团队。(此处的APP指的是基于java的控制中心,目的是为了管理团队和LADP中用户的关联关系)
  2. 在harbor中创建镜像仓库
  3. 在rancher中创建与团队对应的两个环境(在APP中记录rancher环境相关的name,id)
  4. 环境初始化 :
    1. 使对应环境生成注册口令 “ RegistrationToken ”,产生相应的Command
    2. 连接目标主机,并输入获得的 Command
    3. 通过Rancher部属KubernetesKubernetes
  5. 通过Rancher部属Kubernetes

步骤 :

// rancher
// https://mvnrepository.com/artifact/br.com.basis/rancher-java-sdk
compile group: 'br.com.basis', name: 'rancher-java-sdk', version: '1.0.0'

通过ProjectService来创建环境(UI中的environment = API中的project)
环境初始化:

  1. 获得对应的注册口令
    rancher-java-sdk 中创建对应环境的注册口令的方法提示“method not allow” 所以我们自己写了一个方法。
  • 发送post 指令至 http://:/v2-beta/projects//registrationtokens
  • 相应的在 http://:/v2-beta/registrationtokens 会产生一个 accountId 等于 projectId 的 RegistrationToken
  • 通过RegistrationTokenService 得到相应的Command
//为了方便采用了与 rancher-java-sdk 一致的写法,通过rancher.type实现接口。package com.dawnpro.devops.util;
import io.rancher.base.Filters;
import io.rancher.base.TypeCollection;
import io.rancher.type.Account;
import io.rancher.type.Project;
import io.rancher.type.SetProjectMembersInput;
import retrofit2.Call;
import retrofit2.Response;
import retrofit2.http.*;
/** * @Author: Dante
 * @Desciption:
 *@Date: Created in 2018/4/12 0012 15:23
 * @Nodified By: in 2018/4/12 0012 15:23
 */
public interface RancherCustomService {
 @POST("projects/{id}/registrationtoken")
 Call<Project> createRegistrationToken(@Path("id") String id);
}
  1. 连接相应主机,并运行得到的command。
    Kubernetes需要一段由rancher生成的kubeconfig来完成配置。




posted @ 2018-04-13 22:54  Dante丶  阅读(...)  评论(... 编辑 收藏