使用docker部署一个直接可用的puppet服务端

思路: 在一个docker环境,直接拉下来笔者的镜像,直接启动一个可用的容器即可. 此镜像提供一个直接可用的 puppet服务端(foreman/activemq/mcollective-client);

说明: 此镜像笔者已经上传的灵雀云上,详细文档可参考 本文笔者github 以及 灵雀云镜像 地址.

文件直接由笔者github的markdown直接复制如下:

######################################################

docker-foreman

Table of Contents

  1. 简介
  2. 功能说明
  3. 使用说明
  4. 参数说明
  5. 其它说明

简介

此镜像目前主要用于提供一个可以直接拿来使用的foreman/puppet

功能说明

  • 此镜像软件包安装部分,已经直接在基础镜像安装完成(基于library/ubuntu:14.04.3手工安装后commit)
  • 此镜像仅在基础镜像之上做部分配置修改,使其可以方便的被复用
  • 此镜像包含直接可用的foreman(目前作者主要用以管理puppet)
  • 此镜像包含直接可用的puppet server(由foreman-installer依赖安装)
  • 此镜像包含直接可用的mcollective client,已经配置foreman开启puppet run使用mcollecive
  • 此镜像包含直接可用的activemq,配置直接puppetlab的activemq的模板文档
  • 此镜像版本号1.9.2.1中的1.9.2为foreman官方版本,末位.1为笔者构建的docker镜像版本

使用说明

启动一个容器提供puppet server服务,要求如下:

  1. 证书名/主机名配置为: puppet.bw-y.com
  2. 配置Mcollective和ActiveMQ的密码为: StlJT1Qk6cO6D2Aq
  3. 配置Mcollective的psk密码为: lqtQ8Ci38HRSAXvY5fRVy7PZ
  4. 启动ActiveMQ/apache2/foreman-proxy提供服务
  5. 将容器内的puppet配置目录(/etc/puppet)映射到本地目录: /opt/docker/puppet_conf
  6. 将容器内的puppet证书目录(/var/lib/puppet/ssl)映射到本地目录: /opt/docker/puppet_ssl
  7. 将容器内的foreman数据库目录(/var/lib/postgresql/9.3/main)映射到本地目录:/opt/docker/foreman_db
  8. 将容器内的下列端口(80/443/8140/8443/61613)映射到宿主机的对应端口: 80/443/8140/8443/61613

根据上述要求,命令如下

docker run -itd --name=puppet --hostname=puppet.bw-y.com -e MCO_PASS=StlJT1Qk6cO6D2Aq -e PSK_PASS=lqtQ8Ci38HRSAXvY5fRVy7PZ -v /opt/docker/puppet_conf:/etc/puppet -v /opt/docker/puppet_ssl:/var/lib/puppet/ssl -v /opt/docker/foreman_db:/var/lib/postgresql/9.3/main -p 80:80 -p 443:443 -p 8140:8140 -p 8443:8443 -p 61613:61613 index.alauda.cn/hypersroot/foreman:1.9.2.1

参数说明

--hostname

[必选项] 由于puppet/foreman需要依赖一个可以解析的主机名用以配置证书相关,因此,在启动docker时,此参数务必加上,此参数会将配置的域名自动解析到容器对应的ip. 默认值: 空

MCO_HOST

[可选项] 用于在Mcollective的(/etc/mcollective/client.cfg)中设置MQ的地址. 当此地址不等于127.0.0.1或localhost时,容器不启动ActiveMQ. 默认值: 127.0.0.1

MCO_PORT

[可选项] 用于在Mcollective的(/etc/mcollective/client.cfg)中设置MQ的端口. 默认值: 61613

MCO_PASS

[可选项] 用于在Mcollective的客户配置(/etc/mcollective/client.cfg)和ActiveMQ的Server端配置(/etc/activemq/activemq.xml)所配置的密码. 默认值: mcopassword

PSK_PASS

[可选项] 用于在Mcollective的(/etc/mcollective/client.cfg)中设置plugin.psk的密码字段. 默认值: mcopskstr

其它说明

  • foreman页面的默认登陆信息: admin/bw-y.com
  • 首次启动时,由于主机名的关系,证书和相关配置需要重新生成,此时,容器虽已经启动,但相关服务并未配置完成; 主要时间开销在于首次启动容器时,根据参数重置配置的操作,笔者使用了脚本修改了部分配置后,重新执行foreman-installer导致,因此,首次完全启动成功,可能需要2分钟左右,具体的执行进度,可直接使用命令进入容器docker exec -it [container_name] bash后使用ps aux或top命令,查看foreman-installer在内存中是否已经执行完成即可. 再次使用时,由于puppet配置和foreman的数据库配置文件均已存在,则会非常迅速. 脚本见: entrypoint.sh
时间: 2024-12-22 14:06:50

使用docker部署一个直接可用的puppet服务端的相关文章

(六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)

参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https://blog.csdn.net/qq_28804275/article/details/80938659 下载redis镜像(不带tag标签则表示下载latest版本) docker pull redis 从github 下载最新的redis.conf,注意重要参数 # 端口 port 6379 #

手把手教你用Docker部署一个MongoDB集群

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的.支持类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.本文介绍了如何使用Docker搭建MongoDB集群. 本文我会向大家介绍如何使用Docker部署一个MongoDB集群,具体如下: 2.6.5版本的MongoDB 有3个节点的副本集(Replica set) 身份验证 持久化数据到本地文件系统 首先要准备三个运行的Docker服务器,这意味着你

如何使用Docker部署一个Go Web应用程序

熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版和配置文件.而当一个项目中有很多文件的时候,由于很多文件没有同步就会导致错误的发生并且产生很多的问题. 在本教程中,你将学习如何使用Docker部署一个Go web应用程序,并且认识到Docker将如何改进你的开发工作流及部署流程.各种规模的团队都会从这里所介绍的设置中受益. 目标 在本文结束后,你

如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?

本文作者 Jacek Laskowski 拥有近20年的应用程序开发经验,现 CodiLime 的软件开发团队 Leader,曾从 IBM 取得多种资格认证.在这篇博文中,Jacek 分享了 Warsaw Scala Enthusiasts Meetup 上 Rafal Krzewski 介绍的一个 Docker sbt 插件.本文系 OneAPM 工程师编译整理: 虽然在 DeepSense.io 项目中,Docker 已得到了非常深入的应用,但是如果没有接触到 Rafal Krzewski

python---》客户端与服务端的基础(做一个简单的客户端与服务端)

今天我们分享的内容是python简单的客户端与服务端,此处仅介绍一些简单的函数,并作出来一个玩儿玩儿. 在开始之前呢,先用一张图表示他们之间的关系 我们来按照这个步伐依次介绍: 服务端: import socketserver=socket.socket()#此处是为了创建出来一个服务端,第一步server.bind(('localhost',9999))#将套接字绑定到地址,loclhost是当地地址的的意思,如果要想查看当地地址的话,打开控制台(运行-->cmd) 按ipconfig即可查到

[自动化]Puppet服务安装和部署

puppet简介 puppet是一种基于ruby语言开发的Lnux.Unix.windows平台的集中配置管理系统.它使用自有的puppet描述语言,可管理配置文件file.用户user.cron任务.软件包.系统服务等系统实体. puppet依赖于C/S(客户端/服务器)的部署架构.它需要在puppet服务器上安装puppet-server软件包(以下简称master),在需要管理的目标主机上安装puppet客户端软件(以下简称client). 为了保证安全,master和client之间是基

零基础用Docker部署微服务

1. docker架构 这里的Client和DOCKER_HOST(docker server)都是在本地的,docker仓库Registry是在远程的: Client的docker命令通过Docker daemon与docker server镜像交互: images镜像是由应用已经被docker打包好的镜像,如java.nginx的镜像,这些镜像可以运行在容器containers里: 每一个container容器都是运行在docker server(宿主机)上的,每一个container容器都

如何设计一个完善可用的服务框架

上一篇博客整理了一些关于服务框架基础知识的内容,这篇博客,从实际的生产需要出发,谈谈一个完善可用的服务框架,需要包含哪些功能... PS:部分内容参考自<京东基础架构建设之路> 一个完善可用的RPC服务框架,需要包含以下几点: 框架组成 具体功能说明 服务注册中心 服务框架基础知识 管理端 接口管理+配置中心 统一的RPC框架 监控中心+分布式追踪+服务治理+网关 管理端 1.接口管理 提供统一的接口管理和查询入口,比如公共wiki或者类似swagger之类的系统. 功能:定义接口,包括接口描

docker服务端与客户端通信方式

docker的服务端与客户端间可以通过unix.tcp方式进行通信.但默认情况下,服务端只监听本地unix接口/var/run/docker.sock,所以客户端只能在服务端所在的机器上使用该unix接口控制服务端. 客户端若想在与服务端进行跨机器通信,就得将服务端监听方式改成tcp,监听的端口为2375(非安全).2376(安全). 1.服务端(172.25.11.191:2375) dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0