【Ansible】ansible容器学习环境搭建
想要学习ansible,只有一个节点肯定是不行的,而搭建虚拟机又是一件非常费时费力费资源的事情,所以通过docker 快速搭建一个容器学习环境是一个不错的选择1. 了解ansible部署 1.1 需要安装些什么 Ansible默认通过 SSH 协议管理机器。
安装Ansible之后,不需要启动或运行一个后台进程,或是添加一个数据库。只要在一个节点上安装好,就可以通过这台电脑管理一组远程的机器。在远程被管理的机器上,不需要安装运行任何软件,因此升级Ansible版本不会有太多问题.
1.2 对管理主机的要求
- 目前,只要机器上安装了 Python 2.6 或 Python 2.7 (windows系统不可以做控制主机),都可以运行Ansible.
- 主机的系统可以是 Red Hat, Debian, CentOS, OS X, BSD的各种版本,等等.
- 自2.0版本开始,ansible使用了更多句柄来管理它的子进程,对于OS X系统,你需要增加ulimit值才能使用15个以上子进程,方法 sudo launchctl limit maxfiles 1024 2048,否则你可能会看见”Too many open file”的错误提示.
- python-simplejson
ansible2.1 构建镜像 Dockerfile.host
host1
host2
host3
# Latest version of centos7
FROM centos:centos7
RUN yum clean all && \
yum -y install epel-release && \
yum -y install PyYAML python-jinja2 python-httplib2 python-keyczar python-paramiko python-setuptools git python-pip vim net-tools openssh-server
# sshd
RUN sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && \
ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key && \
ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key && \
ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key
EXPOSE 22
RUN echo "root:123456" | chpasswd
CMD ["/usr/sbin/sshd", "-D"]
Dockerfile.ansible
# Latest version of centos7
FROM centos:centos7
RUN yum clean all && \
yum -y install epel-release && \
yum -y install PyYAML python-jinja2 python-httplib2 python-keyczar python-paramiko python-setuptools git python-pip vim net-tools openssh-server ansible
# sshd
RUN sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && \
ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key && \
ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key && \
ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key
EXPOSE 22
RUN echo "root:123456" | chpasswd
CMD ["/usr/sbin/sshd", "-D"]
构建命令
# 构建ansible镜像
docker build -t myansible/asible:1.0 -f Dockerfile.ansible .
docker build -t myansible/host:1.0 -fDockerfile.host .
2.2 运行容器
# 运行容器
## host
for ((i=1;
i<=3;
i++));
do echo "start host$i";
docker run -td --name host${i} --hostname host${i} myansible/host:1.0 ;
done## ansible
docker run -itd --name myansible --hostname myansible myansible/asible:1.0 /bin/bash
2.3 ansible容器配置ssh免密
#获取容器ip
for ((i=1;
i<=3;
i++));
do docker inspect --format '{{.NetworkSettings.IPAddress}}' host${i};
done# 进入ansible容器
docker exec -it myansible /bin/bashcat >> /etc/hosts <
2.4 测试ansible是否可用
# 配置hosts
vim /etc/ansible/hosts
[group1]
host1
host2
[group2]
host3
3. 清除容器及镜像 【【Ansible】ansible容器学习环境搭建】使用完了清除命令
# 清除容器
docker stop myansible && docker rm myansible
for ((i=1;
i<=3;
i++));
do echo "clean host$i";
docker stop host${i} && docker rm host${i} ;
done
# 清除镜像
docker rmi myansible/asible:1.0myansible/host:1.0
推荐阅读
- zookeeper从小白到精通
- Vue实现鼠标悬浮切换图片src
- python|【十年网络安全工程师整理】—100渗透测试工具使用方法介绍
- C#+EmguCV使用摄像头读取、保存视频
- 【freertos】002-posix模拟器设计与cortex|【freertos】002-posix模拟器设计与cortex m3异常处理
- oracle|为什么我要离开华尔街日报加盟Orcale
- 历史上的今天|【历史上的今天】1 月 8 日(谷歌推出 Google Pay;Quibi 的重生;平衡二叉树的发明者出生)
- c++语言入门一本通|【信息学奥赛】2054(【例3.4】适合晨练(C++))
- C语言|【C语言】字符函数&字符串函数&内存函数(上)[进阶篇_复习专用]
- C语言|【C语言】字符函数&字符串函数&内存函数(下)[进阶篇_复习专用]