Ansible 文件&拷贝模块
2018-04-03 by dongnan
目标
使用 ansible 拷贝 docker 私有HUB仓库认证信息文件,到 Docker主机。
要点
ansible-playbook 配置文件
- 使用 file模块,进行定义文件属性。
- 使用 copy模块,进行文件(夹)拷贝。
- .docker/config.json文件是使用- docker login your_docker_registry命令生成的认证信息文件,文件权限- 600。
环境
- 操作系统
head -n1 /etc/issue
CentOS release 6.9 (Final)
- 主机信息
管理节点: 10.0.1.1
托管节点: 10.0.1.2
- SSH 认证
已经配置 SSH KEY方式登录,方法参考这里 。 Ansible 会默认假定你使用SSH Key(推荐)但是密码也一样可以, 通过在需要的地方添加--ask-pass选项来启用密码验证,如果使用了sudo特性,当sudo需要密码时,也同样适当的提供了--ask-sudo-pass选项。
拷贝目录
cat copy_file.yml 
---
- hosts: docker
  tasks:
    - name: copy file
      copy:
        src: "/root/.docker"
        dest: "/root/"
        owner: root
        group: root
        directory_mode: 0700
    - name: set attribute
      file:
        path: /root/.docker/config.json
        owner: root
        group: root
        mode: 0600 
执行 playbook
ansible-playbook copy_file.yml
# ...省略
如果使用命令行方式,注意 .docker 后没有 “/”,否则会复制目录下的文件。
ansible -v all -m copy -a "src=/root/.docker dest=/root/"