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. 2.2 BIOS中断

    BIOS中断 BIOS中断简介 计算机刚启动时,进入实模式下,此时操作系统跟硬件(例如键盘鼠标显卡等)交互通过BIOS进行的.通过调用中BIOS中断的方式来访问硬件设备. BIOS中断就不详细介绍了. ...

  2. Vuejs2.0学习(Render函数,createElement,vm.$slots)

    直接来到进阶部分, Render函数 直接来到Render,本来也想跳过,发现后面的路由貌似跟它还有点关联.先来看看Render 1.1 官网一开始就看的挺懵的,不知道讲的是啥,动手试了一下,一开头讲 ...

  3. jmeter中操作数据库

    jmeter是如何操作数据库的? 步骤一:导入jdbc的jar包,jmeter本身不能直接连接mysql,所以需要导入第三方的jar包来连接mysql 点击测试计划,添加classpath,选择mys ...

  4. 『转』VC++ webbrowser函数使用范例

    /*============================说明部分================================= 实现一下函数需包含头文件 #include <Winine ...

  5. 关于“用VS2010的C++导入ADO导入不了,提示无法打开源文件msado15.tlh”的问题

    vc++2010中,要使用ado操作数据库,所以在stdafx.h中引入了ado的dll库,引入代码如下: #import "C:/Program Files/Common Files/Sy ...

  6. 使用pyspider爬取巨量淘宝MM图片

    具体搭建步骤不再赘述,这里主要使用到了fakeagent,phantomjs和proxy pyspider的爬取相当智能,在不能获取图片的时候会适当的暂停一段时间再试探性的爬取,配合fakeagent ...

  7. python pygame实现简单的网游

    此示例为简单的实现游戏服务器端和客户端的消息同步,使用自定定义协议,引入了twisted网络框架,还有诸多不足(其实就是半成品). 资源下载地址: http://download.csdn.net/d ...

  8. L2-002. 链表去重(数组模拟)

    L2-002. 链表去重 因为数值比较小,所以直接用数组来模拟 #include<cstdio> #include<cstring> #include<iostream& ...

  9. POJ 2001 Shortest Prefixes(字典树)

    Description A prefix of a string is a substring starting at the beginning of the given string. The p ...

  10. Python基础3切片,字符串的方法,for 循环

    切片:截取序列(字符串,列表,元组等)中某一段字符,并不改变原数据和数据类型.结构:[起始位置:终止位置:步长]  但不包括终止位置.所谓:顾头不顾尾. 索引:序列中每个元素都是有编号的,都是从0开始 ...