跳转至

Ansible 文件&拷贝模块


2018-04-03 by dongnan

目标

使用 ansible 拷贝 docker 私有HUB仓库认证信息文件,到 Docker主机。

要点

ansible-playbook 配置文件

  1. 使用 file 模块,进行定义文件属性。
  2. 使用 copy 模块,进行文件(夹)拷贝。
  3. .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/"

参考

回到页面顶部