ansible docker dockerp_w_picpath 使用官方文档
docker: http://docs.ansible.com/ansible/docker_module.html
dokcer p_w_picpath: http://docs.ansible.com/ansible/docker_p_w_picpath_module.html
#ansible inventory [root@node1 testPlaybooks]# cat /etc/ansible/hosts [dockerserv] 172.16.1.100
使用ansible-playbook pull docker基础镜像
#yml 文件 [root@node1 testPlaybooks]# cat pullDocker.yml - hosts: dockerserv tasks: - name: docker pull p_w_picpaths docker: name: centos p_w_picpath: centos:6.7 pull: always [root@node1 testPlaybooks]# ansible-playbook pullDocker.yml PLAY [dockerserv] ************************************************************* GATHERING FACTS *************************************************************** ok: [172.16.1.100] TASK: [docker pull p_w_picpaths] **************************************************** changed: [172.16.1.100] PLAY RECAP ******************************************************************** 172.16.1.100 : ok=2 changed=1 unreachable=0 failed=0 [root@centos7 httpd]# docker p_w_picpaths REPOSITORY TAG IMAGE ID CREATED SIZE centos 6.7 d95b5ca17cc3 5 months ago 190.6 MB
ansible支持docker管理
使用dockerp_w_picpath模块build docker p_w_picpath
# playbook [root@node1 testPlaybooks]# cat buildImageforDocker.yml - hosts: dockerserv become: yes tasks: - name: build p_w_picpath docker_p_w_picpath: path="./tomcatDocker" name="zhangrr/tomcat" tag="7.0.53" state=present [root@node1 testPlaybooks]# ll tomcatDocker/ 总用量 138892 -rw-r--r-- 1 root root 322 3月 31 17:25 Dockerfile -rw-r--r-- 1 root root 142206292 3月 31 17:25 jdk-8u31-linux-x64.rpm -rw-r--r-- 1 root root 73 3月 31 17:25 run.sh drwxr-xr-x 9 root root 4096 3月 31 17:25 tomcat #Dockerfile [root@node1 testPlaybooks]# cat tomcatDocker/Dockerfile FROM centos:6.7 MAINTAINER zhangrr@live.cn ENV CATALINA_HOME /tomcat ENV JAVA_HOME /usr/java/jdk1.8.0_31 ADD tomcat /tomcat ADD jdk-8u31-linux-x64.rpm / RUN rpm -ivh jdk-8u31-linux-x64.rpm RUN rm -rf jdk-8u31-linux-x64.rpm ADD run.sh /run.sh RUN chmod +x /run.sh RUN chmod +x /tomcat/bin/*.sh EXPOSE 8080 CMD ["/run.sh"] #服务启动脚本 [root@node1 testPlaybooks]# cat tomcatDocker/run.sh #!/bin/bash /usr/sbin/sshd -D & sh ${CATALINA_HOME}/bin/catalina.sh run #执行构建 [root@node1 testPlaybooks]# ansible-playbook buildImageforDocker.yml PLAY [dockerserv] ************************************************************* GATHERING FACTS *************************************************************** ok: [172.16.1.100] TASK: [build p_w_picpath] *********************************************************** changed: [172.16.1.100] PLAY RECAP ******************************************************************** 172.16.1.100 : ok=2 changed=1 unreachable=0 failed=0
#查看构建结果
[root@node1 ~]# ansible dockerserv -a 'docker p_w_picpaths ' 172.16.1.100 | success | rc=0 >> REPOSITORY TAG IMAGE ID CREATED SIZE zhangrr/tomcat 7.0.53 ed84022e01d2 3 hours ago 676.8 MB centos 6.7 d95b5ca17cc3 5 months ago 190.6 MB
# 使用ansible-playbook 启动容器
[root@node1 testPlaybooks]# cat startContainer.yml - hosts: dockerserv remote_user: root tasks: - name: make tomcat logs directory file: path=/data/tomcat-logs state=directory mode=0755 - name: start docker container docker: name: tomcat p_w_picpath: zhangrr/tomcat:7.0.53 state: started ports: - 8081:8080 volumes: - /data/tomcat-logs:/tomcat/logs [root@node1 testPlaybooks]# ansible-playbook startContainer.yml PLAY [dockerserv] ************************************************************* GATHERING FACTS *************************************************************** ok: [172.16.1.100] TASK: [make tomcat logs directory] ******************************************** changed: [172.16.1.100] TASK: [start docker container] ************************************************ changed: [172.16.1.100] PLAY RECAP ******************************************************************** 172.16.1.100 : ok=3 changed=2 unreachable=0 failed=0 #查看容器状态 [root@node1 testPlaybooks]# ansible dockerserv -a 'docker ps -a ' 172.16.1.100 | success | rc=0 >> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fb2b650c145f zhangrr/tomcat:7.0.53 "/run.sh" 36 seconds ago Up 34 seconds 0.0.0.0:8081->8080/tcp tomcat
访问tomcat容器
# 停止容器
- name: obsolete container docker: p_w_picpath: someuser/oldandbusted state: stopped
转载于:https://blog.51cto.com/zrer90/1759000