管理概述

管理环境
环境准备概述
ansible管理docker集群,需要使用比较新的版本的ansible+python3环境
步骤如下
管理机
安装python3,python3-pip(软件包管理器)
pip3安装ansible
pip3安装docker(python的docker依赖)
被管理
安装python3,python3-pip
pip3安装docker(python的docker依赖)
环境部署

1)ansible管理端
1. python3及python3-pip yum install -y python3-pip rust 注: rust是语言环境,pip3安装ansible会要求安装.2. 升级pip与配置pip源 (pypi)pip3 install -i https:pypi.tuna.tsinghua.edu.cn/simple upgrade pip pip3 config set global.index-url https:pypi.tuna.tsinghua.edu.cn/simple#生成个pip.conf配置文件家目录下./root/.config/pip/pip.conf3. 安装ansible与docker pip3 install setuptools_rust pip3 install ansible pip3 install docker2.6.1
检查
pip3 list |egrep 'docker|ansible'[root@devops ~]# python3 versionPython 3.6.8
检查

检查python依赖安装情况

没有docker-compose的请安装下docker-compose,管理端与被管理端都要安装的。
2)ansible被管理端
docker01 docker02(reg)yum install -y python3-pip pip3 install -i https:pypi.tuna.tsinghua.edu.cn/simple upgrade pip pip3 config set global.index-url https:pypi.tuna.tsinghua.edu.cn/simple pip3 install docker2.6.1
3)批量管理的配置

配置密钥认证
ssh-keygen ssh-copy-id -i /root/.ssh/id_rsa.pub 10.0.0.81 ssh-copy-id -i /root/.ssh/id_rsa.pub 10.0.0.82
书写hosts文件
[root@devops /server/ans-docker]# cat hosts[dk]10.0.0.8110.0.0.82
测试ansible环境

4)批量管理Docker前最后的配置


5)ansible管理docker
安装 nginx:1.22.0-alpine ansible dk -m docker_image -a'name="nginx:1.22.0-alpine" source=pull' ansible dk -m shell -a 'docker images|grep1.22.0'
管理实战
Ansible管理docker模块

1)docker_image选项

2)docker_container

docker run -d name "kodexp_nginx" -p 80:80-v `pwd`/conf/nginx.conf:/etc/nginx/nginx.conf -v `pwd`/conf/kod.oldboylinux.cn.conf:/etc/nginx/co nf.d/kod.oldboylinux.cn.conf -v `pwd`/code:/app/code/kod/ nginx:1.20.2-alpine - name: run kodexp_nginx docker_container: name: "kodexp_nginx" image: "nginx:1.20.2-alpine" ports: - "80:80" - "88:80" volumes: -"/app/docker/conf/nginx.conf:/etc/nginx/nginx.co nf" links: - "web_php:php" state: started
3)docker_compose

案例01:批量部署并启动容器
注:也可以改为roles格式
- hosts: dk vars:
code_name: kodexp.tar.gz
code_dir: /app/kodexp/
tasks:
- name: 1. 项目目录 file:
path: "{{ code_dir }}"
state: directory - name: 2. 分发配置与代码
unarchive:
src: "{{ code_name }}"
dest: "{{ code_dir }}"
mode: 777
- name: 3. docker_compose启动
docker_compose:
project_src: "{{ code_dir }}"
state: present
案例02:批量部署容器并启动
涉及dockerfile
企业应用建议:推荐docker_image构建镜像,存放到私有仓库
docker-compose中直接使用镜像即可
docker_image 构建并上传到私有仓库方法
- name: 构建镜像并上传到私有仓库 docker_image: build: path: ./sinatra 指定dockerfile所在路径 name:reg.oldboylinux.cn:5000/oldboyedu/restart tag: v1.0 push: yes source: build #reg.oldboylinux.cn:5000/oldboyedu/restart:v1.0

总结
通过ansible模块:docker _ image和docker _ compose批量管理容器与镜像
熟练掌握案例01

附录:Ans-docker模块


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69952968/viewspace-3101006/ ,如需转载,请注明出处,否则将追究法律责任。