d_lab: 192.168.1.1
d_location: /ephemeral
ema:
apple: 10.0.0.1
orange: 10.0.0.2
jack: 10.0.0.3
- name: Load data
hosts: CENTRAL_host
any_errors_fatal: yes
tasks:
- name: Copy files from ema
shell: "scp -oStrictHostKeyChecking=no -i ~/.ssh/abc.pem root@{{ ema['item'] }}:/tmp/ /tmp/test/"
with_items:
- "{{ items }}"
我可以从def.yml中的abc.yml访问d_lab和d_location。 但是当我尝试访问字典ema中的任何键的值时(例如ema [apple]),我收到错误
” 任务[从电子邮件中复制文件] ******************************************* ************************************************** ********************** 失败:[<>](item = apple)=> {“已更改”:true,“cmd”:“scp -oStrictHostKeyChecking = no -i~ / .ssh / abc.pem root@10.0.0.1:/ tmp / / tmp / test /”,“delta”:“0: 00:00.089524“,”结束“:”2018-05-10 09:15:24.235767“,”失败“:真实,”项目“:”苹果“,”rc“:1,”开始“:”2018-05 -10 09:15:24.146243“,”stderr“:”警告:永久性地将'10 .0.0.1'(RSA)添加到已知主机列表中。\ r \ n \ nscp:/ tmp:不是常规文件“,”stderr_lines“ :[“警告:永久添加'10 .0.0.1'(RSA)到已知主机列表。”,“scp:/ tmp:不是常规文件”],“stdout”:“”,“stdout_lines”:[] } “
请告诉我如何访问ansible剧本中的字典。
答案 0 :(得分:1)
看起来发生的实际错误是:
/tmp/
这可能是由于-r
是目录而不是远程服务器上的文件。
您应该能够通过将scp
参数传递给 public async Task<string> ListFileNames(string projectID)
{
var nasClient = new NasClient(userId, userPassword);
string nasPath = baseNasLocation + env + @"\" + projectID + @"\";
return await nasClient.ListFilesAsync(nasPath);
}
来递归复制文件。有关详细信息,请参阅this question。