- name: 获取是否已经安装docker shell: 'systemctl is-active docker || echo "NoFound"' register: docker_svc - name: 获取docker版本信息 shell: "{{ base_dir }}/bin/docker-bin/dockerd --version|cut -d' ' -f3" register: docker_ver connection: local run_once: true tags: upgrade_docker, download_docker - name: debug info debug: var="docker_ver" connection: local run_once: true tags: upgrade_docker, download_docker - name: 转换docker版本信息为浮点数 set_fact: DOCKER_VER: "{{ docker_ver.stdout.split('.')[0]|int + docker_ver.stdout.split('.')[1]|int/100 }}" connection: local run_once: true tags: upgrade_docker, download_docker - name: 已安装提示 debug: msg: "docker 服务已安装" when: "'NoFound' not in docker_svc.stdout" - block: - name: 准备docker相关目录 file: name={{ item }} state=directory with_items: - "{{ bin_dir }}" - "/etc/docker" - name: 下载 docker 二进制文件 copy: src={{ item }} dest={{ bin_dir }}/ mode=0755 with_fileglob: - "{{ base_dir }}/bin/docker-bin/*" tags: upgrade_docker, download_docker - name: 配置docker daemon template: src=daemon.json.j2 dest=/etc/docker/daemon.json - name: 创建docker的systemd unit文件 template: src=docker.service.j2 dest=/etc/systemd/system/docker.service tags: upgrade_docker, download_docker - name: 开机启用docker 服务 shell: systemctl enable docker ignore_errors: true - name: 开启docker 服务 shell: systemctl daemon-reload && systemctl restart docker tags: upgrade_docker - name: 轮询等待docker服务运行 shell: "systemctl is-active docker.service" register: docker_status until: '"active" in docker_status.stdout' retries: 8 delay: 2 tags: upgrade_docker # 配置 docker 命令软链接,方便单独安装 docker - name: 配置 docker 命令软链接 file: src={{ bin_dir }}/docker dest=/usr/bin/docker state=link ignore_errors: true when: "'NoFound' in docker_svc.stdout"