Fork me on GitHub

ansible-playbook 之 拷贝路径

1,使用copy模块时,src 路径可以不用写,直接写要copy的文件名称即可
ansible 自己会根据一定的规律来遍历路径,是否存在该文件(拷贝的对象)

1.
[root@localhost kafka]# tree
.
├── hosts
│   ├── kafka_hosts
│   └── kafka_manager_hosts
├── kafka_manager.retry
├── kafka_manager.yml
├── kafka.retry
├── kafka.yml
├── roles
│   ├── kafka_manager
│   │   ├── files
│   │   │   ├── start.sh
│   │   │   └── start.sh-bak
│   │   ├── handlers
│   │   │   └── main.yml
│   │   ├── meta
│   │   ├── tasks
│   │   │   └── main.yml
│   │   ├── templates
│   │   │   └── application.conf.j2
│   │   ├── test4.txt
│   │   └── vars
│   │       └── main.yml
│   ├── kafka_server
│   │   ├── files
│   │   │   ├── kafka_2.11-1.1.1.tgz
│   │   │   ├── start.sh
│   │   │   ├── test5.txt
│   │   │   ├── tmp_hosts
│   │   │   └── tsta.txt
│   │   ├── handlers
│   │   │   └── main.yml
│   │   ├── meta
│   │   ├── tasks
│   │   │   ├── main.yml
│   │   │   ├── main.yml.bak
│   │   │   └── test6.txt
│   │   ├── templates
│   │   │   └── server.properties.j2
│   │   ├── test3.txt
│   │   └── vars
│   │       ├── main.yml
│   │       └── test7.txt
│   └── test2.txt
├── test1.txt
└── test.log

16 directories, 29 files

2.
cat xxxx.yml 
- name: copy JAR files to remote
  copy: src={{ item }} dest={{ basedir }}/src owner=root mode=700
  with_items:
    - kafka_2.11-1.1.1.tgz 
    - tmp_hosts

- name: echo tmp_hosts
  shell: cat tmp_hosts >> /etc/hosts chdir={{ basedir }}/src

3.遍历路径,因此文件的路径,需要留意,不是任何路径都可以放的,一般放在 roles/xxx/files 目录

AnsibleFileNotFound: Could not find or access 'test2.txt'
        /home/srv/kafka/roles/kafka_server/files/test2.txt
        /home/srv/kafka/roles/kafka_server/test2.txt
        /home/srv/kafka/roles/kafka_server/tasks/files/test2.txt
        /home/srv/kafka/roles/kafka_server/tasks/test2.txt
        /home/srv/kafka/files/test2.txt
        /home/srv/kafka/test2.txt on the Ansible Controller.
posted @ 2020-05-27 14:48  伯阳之道法自然  阅读(3544)  评论(0编辑  收藏  举报