使用docker部署一个直接可用的puppet服务端
思路: 在一个docker环境,直接拉下来笔者的镜像,直接启动一个可用的容器即可. 此镜像提供一个直接可用的 puppet服务端(foreman/activemq/mcollective-client);
说明: 此镜像笔者已经上传的灵雀云上,详细文档可参考 本文 和 笔者github 以及 灵雀云镜像 地址.
文件直接由笔者github的markdown直接复制如下:
######################################################
docker-foreman
Table of Contents
简介
功能说明
使用说明
参数说明
其它说明
简介
此镜像目前主要用于提供一个可以直接拿来使用的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服务,要求如下:
证书名/主机名配置为: puppet.bw-y.com
配置Mcollective和ActiveMQ的密码为: StlJT1Qk6cO6D2Aq
配置Mcollective的psk密码为: lqtQ8Ci38HRSAXvY5fRVy7PZ
启动ActiveMQ/apache2/foreman-proxy提供服务
将容器内的puppet配置目录(
/etc/puppet
)映射到本地目录:/opt/docker/puppet_conf
将容器内的puppet证书目录(
/var/lib/puppet/ssl
)映射到本地目录:/opt/docker/puppet_ssl
将容器内的foreman数据库目录(
/var/lib/postgresql/9.3/main
)映射到本地目录:/opt/docker/foreman_db
将容器内的下列端口(
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
转载于:https://blog.51cto.com/mos1989/1699517
使用docker部署一个直接可用的puppet服务端相关推荐
- 3.10 docker---概念介绍,安装和初识docker,docker的一些基本命令,使用docker部署一个nginx,
一.docker介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...
- java服务器向客户端发消息_java一个简单的客户端向服务端发送消息
java一个简单的客户端向服务端发送消息 客户端代码: package com.chenghu.tcpip; import java.io.IOException; import java.io.Ou ...
- 一个简单的完成端口(服务端/客户端)类
一个简单的完成端口(服务端/客户端)类 作者:spinoza 翻译:麦子芽儿, POWERCPP(后面部分内容) 下载源代码 原文网址:http://www.codeproject.com/KB/IP ...
- python批量下载文件只有1kb_详解如何用python实现一个简单下载器的服务端和客户端...
话不多说,先看代码: 客户端: import socket def main(): #creat: download_client=socket.socket(socket.AF_INET,socke ...
- 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?
2019独角兽企业重金招聘Python工程师标准>>> 本文作者 Jacek Laskowski 拥有近20年的应用程序开发经验,现 CodiLime 的软件开发团队 Leader, ...
- Redis practise(二)使用Docker部署Redis高可用,分布式集群
思路 鉴于之间学习过的Docker一些基础知识,这次准备部署一个简单的分布式,高可用的redis集群,如下的拓扑 tuopu.png 下面介绍下,对于这张拓扑图而言,需要了解的一些基础概念. Redi ...
- 如何使用 Docker 部署一个私有化的为知笔记
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 为知笔记: 私有部署 Docker 镜像,我们来了! 1. 为知笔记功能简介 您可以直接使用docker运行为知笔 ...
- puppet开源的软件自动化配置和部署工具——本质就是CS,服务端统一管理配置...
1. 概述 puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署,如google利用p ...
- un直连服务器教程,unRAID下使用Docker部署iCloud直连相片备份服务
作者:高丽肠 鉴于有很多朋友不喜欢看一堆叨逼叨的文字 , 伸手党和时间管理大师们可以直接从 " 部署步骤 " 开始看 . 碎碎念 自从 2018 年左右上车买了一台星际蜗牛之后 , ...
最新文章
- word中使用MathType能做什么
- 【深度学习】这千层transformer让我目瞪口呆
- python search函数 中文_python使用正则表达式的search()函数实现指定位置搜索功能...
- oracle磁盘提取工具,实战:巧用磁盘管理工具给oracle提速
- 贝叶斯统计(Bayesian statistics) vs 频率统计(Frequentist statistics):marginal likelihood(边缘似然)
- CSS中给表格的第一列及最后一列设置不同的样式
- windowsxp中linq 指定的转换无效_.NET Core 3.0 中的新变化
- 拼音模糊搜索 php,精确搜索加拼音搜索加模糊搜索
- IP地址和物理地址的区别和联系
- linux下做笔记的软件下载,Write一款梦幻般的Linux手机笔记应用程序
- java计算机毕业设计ssm奥博羽毛球俱乐部管理系统
- kdj超卖_为什么在KDJ指标的超卖区间不能卖出股票
- 取消和卸载Office 2010默认安装的微软拼音输入法的方法
- React ,Redux 教程汇总
- 麦克风声源定位原理_使用麦克风阵列对声源定位的方法
- FQ队列throttled流管理
- Linux驱动基础开发
- 2012 Esri 中国开发者大会
- 基金交易常识之买与卖的专业名词?
- Qt:中文注释导致编译不通过
热门文章
- C++ 引用 Demo - Win32 版
- JAVA基础整理-100.Java 多线编程
- [视频]youku与56客户端DLL却持
- 简单搜索(多位自幂数)+数列网站
- JavaScript中split() 使用方法
- freemark 时间比较
- 高效5步走,高速搭建Hadoop2伪分布环境
- (笔记)Mysql命令grant on:增加新用户并控制其权限
- [No000053]我25岁了,是应该继续挣钱,还是选择自己的爱好?--正好庆祝自己25岁生日...
- WTL 出现的SetMsgHandled和IsMsgHandled 错误