Загрузите файл с общего ресурса windows, используя Ansible - PullRequest
1 голос
/ 29 января 2020

У меня есть файл в windows папке. Мне нужно скачать этот файл, используя ansible.
Playbook

- name: Copy installer 
  get_url:
     url: file:'\\Winserver\Share_Binary\Installer-v6.tar.gz'
     dest: /tmp

Ошибка вывода:

    "mode": "01777",
    "msg": "Request failed: <urlopen error [Errno 2] No such file or directory: \"'\\\\\\\\Winserver\\\\Share_Binary\\\\Installer-v6.tar.gz'\">",
    "owner": "root",
    "size": 4096,
    "state": "directory",
    "uid": 0,
    "url": "file:'\\\\Winserver\\Share_Binary\\Installer-v6.tar.gz'"

Файл существует. Когда я вставляю \\Winserver\Share_Binary\Installer-v6.tar.gz в проводник в моей системе, я мог видеть файл. Пожалуйста, совет.

Ответы [ 2 ]

0 голосов
/ 30 января 2020

Это можно сделать с помощью файла учетных данных и 3 Ansible задач.

Сначала создайте файл учетных данных (например, /home/youruser/smbshare.cred), содержащий имя пользователя и пароль учетной записи службы с разрешениями для монтирования Общий ресурс CIFS:

username=your_service_account_name
password=your_service_account_password

Убедитесь, что ваш удаленный пользователь ansible владеет файлом (или root, если вы используете становление) и у него есть разрешения 0400. Возможно, в будущем вы захотите сгенерировать этот файл учетных данных с помощью Ansible и / или зашифровать его с помощью Ansible Vault.

Задача 1. Используйте модуль монтирования для монтирования SMB поделиться на целевом объекте.

- name: Mount SMB share
  mount:
    path: /mnt/smbshare
    src: '\\\\Winserver\\Share_Binary'
    fstype: cifs
    opts: 'credentials=/home/youruser/smbshare.cred'
    state: mounted

Задача 2: Используйте модуль копирования , чтобы скопировать файл туда, куда вы действительно хотите.

- name: Copy installer tarball to target
  copy:
    src: /mnt/smbshare/Installer-v6.tar.gz
    dest: /some/local/path/Installer-v6.tar.gz
    owner: foo
    group: foo
    mode: 0640

Задача 3: Использование модуль монтирования для размонтирования общего ресурса SMB.

- name: Unmount SMB share
  mount:
    path: /mnt/smbshare
    state: unmounted

Примечание. В зависимости от среды может потребоваться добавить дополнительные параметры монтирования (см. справочную страницу mount.cifs (8)) к opts: параметр в задании 1.

0 голосов
/ 29 января 2020

не уверен, способен ли get_url сделать это. Пожалуйста, попробуйте это:

  - name: Get file from smb.
    command:
      smbclient //Winserver/Share_Binary/ <pass> -U <user> -c "get Installer-v6.tar.gz"
      creates=/tmp/Installer-v6.tar.gz

Конечно, вы должны установить smbclient сначала

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...