CentOS   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ansible 部署基于centos7+docker+nginx+openssl+v2版私有仓库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

ansible 部署基于centos7+docker.1.12+nginx+openssl+v2版私有仓库 1、申请域名证书不做详细教程网络上很多 2、ansible-playbook 结构 . ├── hosts # 需要安装服务器IP地址 ├── roles │   ├── docker │   │   ├── defaults │   │   ├── files │   │   │   └─

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版本号变量作为文件@L_772_31@后缀安装用到
Nginx_ver:1.11.5#Nginx版本号变量作为文件@L_772_31@后缀安装用到
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:@L_715_0@mkdir-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版私有仓库全部内容,希望文章能够帮你解决ansible 部署基于centos7+docker+nginx+openssl+v2版私有仓库所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。