Gravitational Teleport 可以作为堡垒机进行使用,上次写过一个all in one 的,这次参考官方
的配置运行一个proxy node auth 分离的应用
备注: 基于docker-compose 运行

环境准备

  • docker-compose 文件
 
version: '2'
services:
  two-auth:
    mem_limit: 300m
    image: quay.io/gravitational/teleport:3.1.1
    container_name: two-auth
    volumes:
      - ./data/two/auth:/var/lib/teleport
      - ./two-auth.yaml:/etc/teleport/teleport.yaml
    networks:
      teleport:
        ipv4_address: 172.10.1.2
  two-proxy:
    mem_limit: 300m
    image: quay.io/gravitational/teleport:3.1.1
    container_name: two-proxy
    ports:
      - "5080:5080"
      - "5023:5023"
    volumes:
      - ./data/two/proxy:/var/lib/teleport
      - ./two-proxy.yaml:/etc/teleport/teleport.yaml
    networks:
      teleport:
        ipv4_address: 172.10.1.3
  two-node:
    mem_limit: 300m
    image: quay.io/gravitational/teleport:3.1.1
    container_name: two-node
    volumes:
      - ./data/two/node:/var/lib/teleport
      - ./two-node.yaml:/etc/teleport/teleport.yaml
    networks:
      teleport:
        ipv4_address: 172.10.1.4
networks:
  teleport:
    ipam:
      driver: default
      config:
      - subnet: 172.10.1.0/16
        ip_range: 172.10.1.0/24
        gateway: 172.10.1.254
volumes:
  certs:
 
  • auth 配置文件
    two-auth.yaml: 同时运行在node 角色
 
# Auth server for cluster "two". Also runs "node" role
teleport:
  nodename: two-auth
  log:
    output: /var/lib/teleport/teleport.log
    severity: INFO
  data_dir: /var/lib/teleport
  storage:
      path: /var/lib/teleport/backend
      type: dir
auth_service:
  enabled: yes
  authentication:
    type: local
    second_factor: off
  cluster_name: two
  tokens: 
       - "node,auth,proxy:foo"
  listen_addr: 172.10.1.2:3025
ssh_service:
  enabled: yes
  labels:
      cluster: two
      role: auth+node
  commands:
      - name: kernel
        command: [/bin/uname, -r]
        period: 5m
proxy_service:
  enabled: no
  • proxy 配置文件
    two-proxy.yaml 文件:同时运行node 角色,注意指定了auth 服务同时使用静态token 进行
    加入
 
# Proxy server for cluster "two". Also runs "node" role
teleport:
  nodename: two-proxy
  auth_servers: ["two-auth"]
  auth_token: foo
  log:
    output: /var/lib/teleport/teleport.log
    severity: INFO
  data_dir: /var/lib/teleport
  storage:
      path: /var/lib/teleport/backend
      type: dir
auth_service:
  enabled: no
ssh_service:
  enabled: yes
  labels:
      cluster: two
      role: proxy+node
  commands:
      - name: kernel
        command: [/bin/uname, -r]
        period: 5m
proxy_service:
   enabled: yes
   listen_addr: 0.0.0.0:5023
   web_listen_addr: 0.0.0.0:5080
 
 
  • node 配置
    two-node.yaml,同时使用静态token 进行加入
 
# Dumb SSH node for cluster "two"
teleport:
  nodename: node-on-second-cluster
  auth_servers: ["two-auth"]
  auth_token: foo
  advertise_ip: 172.10.1.4
  log:
    output: /var/lib/teleport/teleport.log
    severity: INFO
  data_dir: /var/lib/teleport
  storage:
      path: /var/lib/teleport/backend
      type: dir
ssh_service:
  enabled: yes
  labels:
      cluster: two
      role: dumb_node
proxy_service:
   enabled: no
auth_service:
  enabled: no
 
 

运行&&测试

  • 运行
docker-compose up -d
  • 添加用户
    auth server inside 容器
 
tctl -c /etc/teleport/teleport.yaml users add root
Signup token has been created and is valid for 1 hours. Share this URL with the user:
https://localhost:3080/web/newuser/54ac1593143d9a44a497c1346f9e0fc9
NOTE: Make sure two-proxy:3080 points at a Teleport proxy which users can access.
 
 


  • 访问连接

  • 历史回放功能


参考资料

https://gravitational.com/teleport/docs/quickstart/

Gravitational Teleport docker-compose组件独立部署运行的更多相关文章

  1. Docker Compose 项目打包部署

    Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一 ...

  2. Docker Compose编排工具部署lnmp实践及理论(详细)

    目录 一.理论概述 编排 部署 Compose原理 二.使用docker compose 部署lnmp 三.测试 四.总结 一.理论概述 Docker Compose是一个定义及运行多个Docker容 ...

  3. maven maven-war-plugin 解决java war项目间的依赖(两个war都可独立部署运行,maven 3.2.x亲测)

    最近整理基础框架,有些项目不想分布式,所以基础框架必须同时可独立部署,也可直接被作为依赖和业务工程打到一起,记录下解决war项目依赖的要点,一开始用warpath,结果报找不到,有些帖子还是17年的, ...

  4. surging+CentOS7+docker+rancher2.0 菜鸟部署运行笔记

    https://blog.csdn.net/q5934/article/details/82661250 目录 准备工作 开始干活 1.从github 获取surging源码 2.发布Surging. ...

  5. Docker Compose 部署前后端分离应用

    部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...

  6. 利用 Docker Compose 搭建 SpringBoot 运行环境(超详细步骤和分析)

    0.前言 相信点进来看这篇文章的同学们已经对 Docker Dompose 有一定的了解了,下面,我们拿最简单的例子来介绍如何使用 Docker Compose 来管理项目. 本文例子: 一个应用服务 ...

  7. 基于Docker Compose部署分布式MinIO集群

    一.概述 Minio 是一个基于Go语言的对象存储服务.它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片.视频.日志文件.备份数据和容器 ...

  8. 一文掌握Docker Compose

    目录 Docker Compose介绍 Docker Compose安装 Docker Compose基本示例 1.基本文件及目录设置 2.创建一个Dockerfile 3.通过docker-comp ...

  9. 使用 Docker Compose 快速构建 TiDB 集群

    本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...

随机推荐

  1. spoon 更新数据

    一个小需求,被要求使用spoon 来同步数据 主要流程为: 1.查询A库未同步数据 id 2.根据步骤1查到的id,作为条件更新B库数据 3.更新B库数据成功则更改库A中的数据状态为已同步. 4.添加 ...

  2. IasS,CasS,PasS,SasS的区别

    IasS: (Infrastructure-as-a-Service(基础设施即服务)) 租用的是硬件,服务器,物理机等 CasS: (container as a Service) 容器服务 租用的 ...

  3. NSHashTable NSPointerArray

    NSHashTable和NSMapTable能够对持有的对象做strong或weak存储,弱持有weak引用对象,当weak对象释放后会自动从表中移除     http://blog.csdn.net ...

  4. 使用std::map和std::list存放数据,消耗内存比实际数据大得多

    使用std::map和std::list存放数据,消耗内存比实际数据大得多 场景:项目中需要存储一个结构,如下程序段中TEST_DATA_STRU,结构占24B.但是使用代码中的std::list&l ...

  5. Windows 窗体设计器生成的代码

    namespace 窗体的浮动及隐藏{    partial class Form1    {        /// <summary>        /// 必需的设计器变量.      ...

  6. 5-log4j2.xml配置文件各个节点详解

    具体配置参考官网:http://logging.apache.org/log4j/2.x/manual/configuration.html 一.log.xml文件的大致结构 <?xml ver ...

  7. 推荐内置android控件的开源项目alcinoe

    开源地址:https://github.com/Zeus64/alcinoe 该控件包,含以下几个控件: 1.基于OpenGL实现的视频播放器 ALVideoPlayer. ALVideoPlayer ...

  8. 如何将 gitbook上的开源书转换为mobi

    看更新后的gitbook官网说不支持pdf.mobi导出,还以为用gitbook-cli也没法导出.几轮尝试之后发现还是能导出的,使用gitbook-cli即可实现. 按如下步骤进行操作,未能完成导出 ...

  9. java学习笔记6(面向对象1:概念,private)

    1.思想: 面向过程的思想:遇到问题时想,我该如何做,然后分步骤实现: 面向对象的思想:遇到问题时想,我该派谁去做这件事,至于他怎么做,与我无关,我只要最后的结果. 实际举例:我们要组装一台电脑: 面 ...

  10. maven项目中的pom.xml

    需要配置的内容 1.配置头(自动生成) 2.maven项目的坐标(自动生成) <modelVersion>4.0.0</modelVersion> <groupId> ...