ansible 部署基于centos7+docker+nginx+openssl+v2版私有仓库

前端之家收集整理的这篇文章主要介绍了ansible 部署基于centos7+docker+nginx+openssl+v2版私有仓库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

2、ansible-playbook 结构

  1. .
  2. ├──hosts#需要安装服务器IP地址
  3. ├──roles
  4. │├──docker
  5. ││├──defaults
  6. ││├──files
  7. │││└──dockerkey#证书文件
  8. │││├──domain.crt#Nginxkey文件
  9. │││└──ssl.crt#Nginx证书
  10. ││├──handlers
  11. ││├──Meta
  12. ││├──tasks
  13. │││└──main.yml#dockeransible安装文件
  14. ││├──templates
  15. │││├──docker#docker配置文件最新docker没配置文件
  16. │││├──docker.conf.j2#dockerNginx配置
  17. │││├──docker.repo#dockeryum安装源
  18. │││└──docker.service#dockr启动服务最新的会要求必须使用https
  19. ││└──vars
  20. │├──Nginx
  21. ││├──defaults
  22. ││├──files
  23. │││├──Nginx-1.11.5.tar.gz#Nginx源码文件
  24. │││└──Nginx_install.sh#Nginx安装脚本
  25. ││├──handlers
  26. ││├──Meta
  27. ││├──tasks
  28. │││└──main.yml#Nginxansible安装文件
  29. ││├──templates
  30. │││├──default.conf#Nginxweb默认配置
  31. │││├──Nginx#Nginx启动脚本
  32. │││└──Nginx.conf#Nginx默认配置文件
  33. ││└──vars
  34. │└──openssl
  35. │├──defaults
  36. │├──files
  37. ││├──openssl-1.1.0b.tar.gz#opebssl源码文件
  38. ││└──openssl_install.sh#openssl安装脚本
  39. │├──handlers
  40. │├──Meta
  41. │├──tasks
  42. ││└──main.yml#opensslansible安装文件
  43. │├──templates
  44. │└──vars
  45. ├──site.retry
  46. └──site.yml

3、site.yml 说明

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

4、openssl main.yml 说明

  1. -name:yumepel-release
  2. yum:name=epel-releasestate=present
  3. -name:InstallCompileenvironment#yum安装编译环境及依赖包
  4. yum:name={{item}}state=present
  5. with_items:
  6. -git
  7. -patch
  8. -gcc
  9. -gcc-c++
  10. -readline-devel
  11. -zlib-devel
  12. -zlib
  13. -libffi-devel
  14. -pcre-devel
  15. -pcre
  16. -make
  17. -autoconf
  18. -automake
  19. -libtool
  20. -bison
  21. -libxml2-devel
  22. -libxslt-devel
  23. -libyaml-devel
  24. -python
  25. -python-docutils
  26. -cmake
  27. -imake
  28. -expat-devel
  29. -libaio
  30. -libaio-devel
  31. -bzr
  32. -ncurses-devel
  33. -name:copytopcre
  34. copy:src={{item}}dest=/tmp/{{item}}owner=rootgroup=rootmode=755
  35. with_items:
  36. -openssl-{{opensll_ver}}.tar.gz#上传文件到客户机
  37. -openssl_install.sh
  38. -name:installopenssl_install.sh
  39. shell:/bin/bash/tmp/openssl_install.sh"{{opensll_ver}}"#
  40. #客户机安装openssl

5、Nginx main.yml 说明

  1. -stat:path=/usr/sbin/Nginx#获取是否安装Nginx
  2. register:Nginx_path_register
  3. -name:copytoNginx
  4. copy:src={{item}}dest=/tmp/{{item}}owner=rootgroup=rootmode=755
  5. with_items:
  6. -Nginx-{{Nginx_ver}}.tar.gz#上次文件Nginx
  7. -Nginx_install.sh
  8. when:Nginx_path_register.stat.exists==False#判断是否安装Nginx
  9. -name:installNginx_install.sh
  10. shell:/bin/bash/tmp/Nginx_install.sh{{Nginx_ver}}{{opensll_ver}}
  11. when:Nginx_path_register.stat.exists==False
  12. -stat:path=/etc/init.d/Nginx
  13. register:Nginxinit_path_register
  14. -name:Nginxconftocl
  15. template:src=Nginx.confdest=/etc/Nginx/Nginx.conf#上传配置文件到客户机
  16. -name:Nginxmkdir-pconf.d
  17. shell:mkdir-p/etc/Nginx/conf.d
  18. -name:Nginxdefault.conf
  19. template:src=default.confdest=/etc/Nginx/conf.d/default.conf#上传配置文件到客户机
  20. -name:Nginxstartstoptoclient
  21. template:src=Nginxdest=/etc/init.d/Nginxowner=rootgroup=rootmode=755#上传启动文件到客户机
  22. when:Nginxinit_path_register.stat.exists==False
  23. -name:Nginxservice
  24. shell:chkconfigNginxon&&serviceNginxstart#加入开机启动并启动Nginx
  25. when:Nginxinit_path_register.stat.exists==False

6、dockermain.yml 说明

  1. -name:cpdocker.repoclient
  2. template:src=docker.repodest=/etc/yum.repos.d/docker.repo#上传yum源到客户机。
  3. -name:cpdockerto/etc/sysconfig/docker
  4. template:src=dockerdest=/etc/sysconfig/docker#上传配置文件到客户机
  5. -name:yuminstalldocker
  6. yum:name=docker-enginestate=present#安装docker
  7. -name:dockerUsingthespecifiedconfigurationfile
  8. template:src=docker.servicedest=/lib/systemd/system/docker.service#上传启动文件到客户机
  9. -name:enabledservicedocker.service
  10. service:name=docker.serviceenabled=yes#打开docker开机启动
  11. -name:systemctldaemon-reload
  12. shell:systemctldaemon-reload#刷新系统service服务器
  13. -lineinfile:dest=/etc/sysconfig/dockerregexp=^OPTIONS=line=OPTIONS='--selinux-enabled--insecure-registry{{Domain_name}}--log-driver=journald'#修改docker本机能够http访问
  14. -name:systemctldaemon-reload
  15. shell:systemctldaemon-reload#刷新系统service服务器
  16. -name:startservicedocker.service#启动docker服务
  17. service:name=dockerstate=started
  18. -name:create/{{dockerdata}}/registry#创建docker数据文件
  19. shell:mkdir-p/{{dockerdata}}/registry
  20. -name:selinx/{{dockerdata}}/registry#selinx开启docker服务文件读写权限如果关闭selinx会报错可以不理会
  21. shell:chcon-Rtsvirt_sandBox_file_t/{{dockerdata}}
  22. ignore_errors:True
  23. -name:yumepel-release#安装yumepel源如果安装就不会安装
  24. yum:name=epel-releasestate=present
  25. -name:yumpython-pip#安装PIP支持
  26. yum:name=python-pipstate=present
  27. -pip:name=docker-py#安装dockerapi
  28. -name:dockerregistry:2.4.1
  29. docker:
  30. image:registry:2.4.1#dockerimages
  31. state:reloaded
  32. pull:always#每次都pull镜像
  33. volumes:
  34. -"/{{dockerdata}}/registry:/var/lib/registry/"#docker文件加映射
  35. ports:
  36. -"5000:5000"docker#端口映射
  37. -name:mkdir-p/{{dockerkey}}#创建dockerNginx证书存放文件
  38. shell:mkdir-p/{{dockerkey}}
  39. -name:selinux/{{dockerkey}}#selinx放行文件
  40. shell:chcon-Rtsvirt_sandBox_file_t/{{dockerkey}}
  41. ignore_errors:True
  42. -name:upkeyfileclient
  43. copy:src=dockerkey/dest=/{{dockerkey}}/#上传证书文件到客户机
  44. -name:upNginxfileclient
  45. template:src=docker.conf.j2dest=/etc/Nginx/conf.d/docker.conf#上次Nginxdocker代理配置到客户机
  46. -name:/usr/sbin/Nginx-sreload#刷新Nginx配置
  47. shell:/usr/sbin/Nginx-sreload

7、一些其它说明:

  1. 执行ansible-playbook-ihostssite.yml-verbose
  2. 由于附件要求小于2M不能上传源码请根据说2进行存放文件文件名版本号请修改site.yml
  3. openssl源码下载地址:www.openssl.org/source
  4. Nginx源码下载地址:Nginx.org
  5. 数字证书存放到
  6.  
  7. ├──roles
  8. │├──docker
  9. ││├──defaults
  10. ││├──files
  11. │││└──dockerkey#证书文件
  12. │││├──domain.crt#Nginxkey文件
  13. │││└──ssl.crt#Nginx证书
  14. 部署完成可以打开
  15. 如果Nginx证书也配置正确
  16. dockertagcentos:latestdocker.test.com/centos#docker镜像标签
  17. dockerpushdocker.test.com/centos上传镜像到私有仓库
  18. dockerpulldocker.test.com/centos下载镜像到其它服务器
  19. 脚本放到附件

猜你在找的CentOS相关文章