ansible 部署基于centos7+docker.1.12+Nginx+openssl+v2版私有仓库

1、申请域名证书不做详细教程网络上很多

2、ansible-playbook 结构

.
├──hosts#需要安装服务器IP地址
├──roles
│├──docker
││├──defaults
││├──files
│││└──dockerkey#证书文件加
│││├──domain.crt#Nginxkey文件
│││└──ssl.crt#Nginx证书
││├──handlers
││├──Meta
││├──tasks
│││└──main.yml#dockeransible安装文件
││├──templates
│││├──docker#docker配置文件最新docker没配置文件
│││├──docker.conf.j2#dockerNginx配置
│││├──docker.repo#dockeryum安装源
│││└──docker.service#dockr启动服务最新的会要求必须使用https
││└──vars
│├──Nginx
││├──defaults
││├──files
│││├──Nginx-1.11.5.tar.gz#Nginx源码文件
│││└──Nginx_install.sh#Nginx安装脚本
││├──handlers
││├──Meta
││├──tasks
│││└──main.yml#Nginxansible安装文件
││├──templates
│││├──default.conf#Nginxweb默认配置
│││├──Nginx#Nginx启动脚本
│││└──Nginx.conf#Nginx默认配置文件
││└──vars
│└──openssl
│├──defaults
│├──files
││├──openssl-1.1.0b.tar.gz#opebssl源码文件
││└──openssl_install.sh#openssl安装脚本
│├──handlers
│├──Meta
│├──tasks
││└──main.yml#opensslansible安装文件
│├──templates
│└──vars
├──site.retry
└──site.yml

3、site.yml 说明

-hosts:all
user:root
vars:
opensll_ver:1.1.0b#openssl版本号变量作为文件名称后缀安装用到
Nginx_ver:1.11.5#Nginx版本号变量作为文件名称后缀安装用到
Domain_name:docker.test.net:5000#docker访问私有镜像用到必须能访问
dockerdata:mydata#docker仓库宿主机存放地址
dockerkey:mykey#Nginxhhtps证书存放位置
Fullchain:ssl.crt#Nginx证书名字
Privkey:domain.crt#Nginxkey文件名字
roles:
-openssl#安装openssl
-Nginx#安装Nginx
-docker#安装docker及私有仓库
#roles不要搞混了,安装Nginx会去寻找openssl解压路径的

4、openssl main.yml 说明

-name:yumepel-release
yum:name=epel-releasestate=present
-name:InstallCompileenvironment#yum安装编译环境及依赖包
yum:name={{item}}state=present
with_items:
-git
-patch
-gcc
-gcc-c++
-readline-devel
-zlib-devel
-zlib
-libffi-devel
-pcre-devel
-pcre
-make
-autoconf
-automake
-libtool
-bison
-libxml2-devel
-libxslt-devel
-libyaml-devel
-python
-python-docutils
-cmake
-imake
-expat-devel
-libaio
-libaio-devel
-bzr
-ncurses-devel
-name:copytopcre
copy:src={{item}}dest=/tmp/{{item}}owner=rootgroup=rootmode=755
with_items:
-openssl-{{opensll_ver}}.tar.gz#上传文件到客户机
-openssl_install.sh
-name:installopenssl_install.sh
shell:/bin/bash/tmp/openssl_install.sh"{{opensll_ver}}"#
#客户机安装openssl

5、Nginx main.yml 说明

-stat:path=/usr/sbin/Nginx#获取是否安装Nginx
register:Nginx_path_register
-name:copytoNginx
copy:src={{item}}dest=/tmp/{{item}}owner=rootgroup=rootmode=755
with_items:
-Nginx-{{Nginx_ver}}.tar.gz#上次文件到Nginx
-Nginx_install.sh
when:Nginx_path_register.stat.exists==False#判断是否安装Nginx
-name:installNginx_install.sh
shell:/bin/bash/tmp/Nginx_install.sh{{Nginx_ver}}{{opensll_ver}}
when:Nginx_path_register.stat.exists==False
-stat:path=/etc/init.d/Nginx
register:Nginxinit_path_register
-name:Nginxconftocl
template:src=Nginx.confdest=/etc/Nginx/Nginx.conf#上传配置文件到客户机
-name:Nginxmkdir-pconf.d
shell:mkdir-p/etc/Nginx/conf.d
-name:Nginxdefault.conf
template:src=default.confdest=/etc/Nginx/conf.d/default.conf#上传配置文件到客户机
-name:Nginxstartstoptoclient
template:src=Nginxdest=/etc/init.d/Nginxowner=rootgroup=rootmode=755#上传启动文件到客户机
when:Nginxinit_path_register.stat.exists==False
-name:Nginxservice
shell:chkconfigNginxon&&serviceNginxstart#加入开机启动并启动Nginx
when:Nginxinit_path_register.stat.exists==False

6、dockermain.yml 说明

-name:cpdocker.repoclient
template:src=docker.repodest=/etc/yum.repos.d/docker.repo#上传yum源到客户机。
-name:cpdockerto/etc/sysconfig/docker
template:src=dockerdest=/etc/sysconfig/docker#上传配置文件到客户机
-name:yuminstalldocker
yum:name=docker-enginestate=present#安装docker
-name:dockerUsingthespecifiedconfigurationfile
template:src=docker.servicedest=/lib/systemd/system/docker.service#上传启动文件到客户机
-name:enabledservicedocker.service
service:name=docker.serviceenabled=yes#打开docker开机启动
-name:systemctldaemon-reload
shell:systemctldaemon-reload#刷新系统service服务器
-lineinfile:dest=/etc/sysconfig/dockerregexp=^OPTIONS=line=OPTIONS='--selinux-enabled--insecure-registry{{Domain_name}}--log-driver=journald'#修改docker本机能够http访问
-name:systemctldaemon-reload
shell:systemctldaemon-reload#刷新系统service服务器
-name:startservicedocker.service#启动docker服务
service:name=dockerstate=started
-name:create/{{dockerdata}}/registry#创建docker数据文件夹
shell:mkdir-p/{{dockerdata}}/registry
-name:selinx/{{dockerdata}}/registry#selinx开启docker服务文件读写权限如果关闭selinx会报错可以不理会
shell:chcon-Rtsvirt_sandBox_file_t/{{dockerdata}}
ignore_errors:True
-name:yumepel-release#安装yumepel源如果安装就不会安装
yum:name=epel-releasestate=present
-name:yumpython-pip#安装PIP支持
yum:name=python-pipstate=present
-pip:name=docker-py#安装dockerapi
-name:dockerregistry:2.4.1
docker:
image:registry:2.4.1#dockerimages
state:reloaded
pull:always#每次都pull镜像
volumes:
-"/{{dockerdata}}/registry:/var/lib/registry/"#docker文件加映射
ports:
-"5000:5000"docker#端口映射
-name:mkdir-p/{{dockerkey}}#创建dockerNginx证书存放文件夹
shell:mkdir-p/{{dockerkey}}
-name:selinux/{{dockerkey}}#selinx放行文件夹
shell:chcon-Rtsvirt_sandBox_file_t/{{dockerkey}}
ignore_errors:True
-name:upkeyfileclient
copy:src=dockerkey/dest=/{{dockerkey}}/#上传证书文件到客户机
-name:upNginxfileclient
template:src=docker.conf.j2dest=/etc/Nginx/conf.d/docker.conf#上次Nginxdocker代理配置到客户机
-name:/usr/sbin/Nginx-sreload#刷新Nginx配置
shell:/usr/sbin/Nginx-sreload

7、一些其它说明:

执行ansible-playbook-ihostssite.yml-verbose
由于附件要求小于2M不能上传源码请根据说2进行存放文件、文件名版本号请修改site.yml
openssl源码下载地址:www.openssl.org/source
Nginx源码下载地址:Nginx.org
数字证书存放到

├──roles
│├──docker
││├──defaults
││├──files
│││└──dockerkey#证书文件加
│││├──domain.crt#Nginxkey文件
│││└──ssl.crt#Nginx证书
部署完成可以打开
如果Nginx证书也配置正确
dockertagcentos:latestdocker.test.com/centos#docker镜像标签
dockerpushdocker.test.com/centos上传镜像到私有仓库
dockerpulldocker.test.com/centos下载镜像到其它服务器
脚本放到附件

ansible 部署基于centos7+docker+nginx+openssl+v2版私有仓库的更多相关文章

  1. ios – 找不到lcrypto的库

    我正在尝试构建iOSAllJoyn项目,但我遇到了OpenSSL集成的问题.我一直在看这些方向:https://allseenalliance.org/docs-and-downloads/documentation/configuring-build-environment-ios-and-osx#unique_16我已经按照指示一直到XcodeIDEBuild,但现在我收到一个错误,上面写着:

  2. iOS – 友好的NSDate格式

    我需要在我的应用程序中显示帖子的日期给用户,现在我用这种格式:“5月25日星期五”.如何格式化NSDate以阅读“2小时前”的内容?使其更加用户友好.解决方法NSDateFormatter不能做这样的事情;你将需要建立自己的规则.我想像:所以这是打印’x分钟前’或’x小时前’从日期起24小时,通常是一天.

  3. 记一次云计算测试实验-openstack-icehouse-安装swift

    -----------------------controller:---------------------------------sourceadmin-openrc.shkeystoneuser-create--name=swift--pass=000000--email=swift@localhostkeystoneuser-role-add--user=swift--tenant=ser

  4. Swift 后端开发

    作为一门新兴的现代化语言,Swift可以说是苹果在开发语言上的一次集大成之作,吸收了很多语言的优点。而且苹果还期望Swift能在服务端开发上能发挥作用。Perfect框架Perfect框架是Swift开发的Web应用服务器,它支持包括Redis、sqlite、Postgresql、MysqL、MongoDB、FileMaker这样的数据库,并且能以fastcgi或者Web服务器的形式提供服务。具体内容得到Swift源代码中可以找到。

  5. Swift构建总是在Docker中构建整个包

    使用像这样的Dockerfile时:当第3步运行时,swiftbuild将只编译应用程序一次,因为第二次执行将只使用已构建的对象,输出将是单个CompileSwiftModule’foo'然而,在运行第4步时,它似乎忽略了已经构建的任何东西,并重新重建整个事物,尽管没有任何改变且没有干净.我试过运行RUNls/foo/.build&&ls/tmp,一切似乎都到位了.我想要在现实中实现的是设置我的图像所以我首先从git克隆项目,构建它,然后copY在本地机器的任何变化中构建新的更新,但最终建立整个项目2次.

  6. 我的Android项目的FIPS合规性

    我正在开发一个与安全相关的项目,并且必须确保它符合FIPS标准.根据我的理解,FIPS合规性是硬件和软件级别的合规性.目前有2款三星Android设备符合FIPS标准,即它们在硬件和软件级别都具有合规性.我的问题如下:–1)如果我想让我的Android应用程序符合FIPS标准,如果我在我的项目FIPS兼容中使用了唯一的加密模块,这就够了吗?

  7. 在Android上使用Docker

    是否可以在Android上构建Docker应用程序?我注意到现在没有,但内核毕竟是基于Linux内核的.如果有办法在没有生根的情况下做到这一点,那就更好了!是否有可能为Android创建Docker应用程序?如果是这样,有没有人知道任何进展?

  8. 在Android上移植C lib / app

    我想将几个C/C++库移植到Android,它的可行性如何例如OpenSSL可以移植或者假设一个依赖于OpenSSL的应用程序,当我认为自己拥有libssl.so时,将它移植到Android的最佳方式是什么?什么是可用的工具,例如ScratchBox,还有其他选择吗?

  9. 如何使用Android中的Keytool为W7 32bit生成Keyhash(Facebook)

    name=openssl-0.9.8k_WIN32.zip.然后解压缩文件并运行以下命令:DON是我的系统名称,应替换为您的系统名称.

  10. android – 模拟器中hosts文件中的Url映射被忽略

    我正在使用genymotion仿真器,并使用它从主机文件中提取adbremountadbpull/system/etc/hostsC:\Users\Rkn09\Desktop\hosts我添加了新的映射192.168.0.115xxx.mydomain.com,我把它推回到模拟器使用adbpushC:\Users\Rkn09\Desktop\hosts/system/etc/hosts但是当我向x

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部