images\cherry_red.png1 Docker的学习-gaogaoTwo
      images\cherry_blue.png1.1 docker常见问题故障
         images\cherry_orange.png1.1.1 docker容器无法远程连接MySQL
      images\cherry_blue.png1.2 Docker基础命令
         images\cherry_orange.png1.2.1 docker logs
         images\cherry_orange.png1.2.2 镜像构建优化
         images\cherry_orange.png1.2.3 network
         images\cherry_orange.png1.2.4 内部安装应用命令
         images\cherry_orange.png1.2.5 docker ps
      images\cherry_blue.png1.3 Docker网络模式
      images\cherry_blue.png1.4 docker compose
         images\cherry_orange.png1.4.1 docker-compose安装
      images\cherry_blue.png1.5 部署Tomcat 运行环境
      images\cherry_blue.png1.6 docker(compose) LNMP环境的部署
      images\cherry_blue.png1.7 docker 搭建部署Redis集群
      images\cherry_blue.png1.8 docker 搭建部署MongoDB集群
         images\cherry_orange.png1.8.1 MongoDB(configsvr)配置服务器
         images\cherry_orange.png1.8.2 MongoDB(shared) 分片初始化操作
         images\cherry_orange.png1.8.3 配置MongoDB(Mongos)路由服务器
         images\cherry_orange.png1.8.4 MongoDB测试集群可用性
      images\cherry_blue.png1.9 docker 搭建部署MySQL主从复用
      images\cherry_blue.png1.10 docker+Keepalived+Nginx高可用
      images\cherry_blue.png1.11 docker+Ansible多节点集群管理
      images\cherry_blue.png1.12 docker(compose)+Zabbix 多节点监控服务
      images\cherry_blue.png1.13 docker 部署文件目录下载
      images\cherry_blue.png1.14 docker
         images\cherry_orange.png1.14.1 docker镜像管理
         images\cherry_orange.png1.14.2 docker容器
         images\cherry_orange.png1.14.3 docker容器高级操作
首先你的拥有 docker , docker-compose 运行的一个环境


拥有 一个 Master 节点 2个 child 节点 模拟一个多节点环境
images\14-1.png


1,初始化操作,创建容器数据卷挂载点,并且编写Dockerfile 文件

mkdir -p /gaogaotwo/docker/ansible-demo/volume

vim /gaogaotwo/docker/Dockerfile

images\14-2.png

FROM centos:7 # 采用该版本的原因是因为网络上面的centos 8 对应的 ansible镜像暂时的没有发现,因此在安装的时候
若为 8 的情况下,可能是存在着某一些问题的
VOLUME 挂载卷6
RUN centos 的依赖环境下载,并且修改一些默认的配置文件
RUN echo "root:123456"|chpasswd #给创建的虚拟机器添加一个 用户名 + 密码,注意我的格式 !

FROM centos:7
MAINTAINER gaogaotwo<>
VOLUME ["/gaogaotwo/docker/ansible-demo/volume"]
# 安装docker内部centos环境 基本依赖的
RUN yum install -y sudo
RUN yum install -y openssh-server
RUN yum install -y openssh-clients
#RUN yum install -y http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN yum install -y https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.9.5-1.el7.ans.noarch.rpm
RUN yum install -y vim
RUN yum install -y net-tools
RUN yum install -y initscripts

RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
# 修改root用户密码
RUN echo "root:123456"|chpasswd
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# 启动sshd服务并且暴露22端口
RUN mkdir /var/run/sshd
EXPOSE 22
ENTRYPOINT ["/usr/sbin/sshd","-D"]


docker build -t [你创建的镜像名称] . # 注意 【 . 】别忘记了
images\14-3.png



docker run -d -p 9021:22 --privileged=true --name ansible_master 【你创建的镜像 id or 镜像名】
docker run -d -p 9022:22 --privileged=true --name ansible_child_1 【你创建的镜像 id or 镜像名】
docker run -d -p 9023:22 --privileged=true --name ansible_child_2 【你创建的镜像 id or 镜像名】

注意 ! 端口号变更,否则会发生冲突情况 --privileged=true 也就是说容器获取一个root管理的一个权限


2,进入Master 初始化操作

进入Master 容器
docker exec -it ansible_master /bin/bash


172.17.0.2 ~ 172.17.0.7
修改ansible默认配置文件

docker exec -it ansible_master /bin/bash
vim /etc/ansible/hosts
images\14-4.png

也就是你刚刚创建的两台 ansible_child_1 ansible_child_2 具体的ip需要你自己去看,因为每一台的ip是不相同的
ip addr ifconfig
docker inspect [容器名 都是可以查看到容器的ip地址的]

# Master 生成公钥 也就一直 Enter 确认即可
ssh-keygen
images\14-5.png



ssh-copy-id -i root@172.18.0.3
Yes
输入你刚刚在Dockerfile 里创建镜像的密码 这里需要注意一下 !
images\14-6.png


ssh-copy-id -i root@172.18.0.4 # 同理跟上述的步骤类似的
images\14-7.png



OK 此时的初始化操作已经完成了


3,测试ansible管理的节点是否是成功的

#ping测试
执行 ansible "test-servers" -m ping

语法格式 ansible [集群节点] -m command -a "..."
ansible "test-servers" -m command -a "节点操作命令"
-m command 也就是说在远程主机上执行某一些操作
images\14-8.png


ansible "test-servers" -m command -a "uptime"
images\14-9.png

images\14-10.png

OK 成功 !