Как вы меняете каталог и запускаете команду в ansible? - PullRequest
0 голосов
/ 12 марта 2020

Привет, я изо всех сил пытаюсь понять, почему этот код говорит, что каталог не существует

в системе, которую я вижу

root@Production:~# ls -l /home/azureuser/directory-with-stuff/

и вижу, что путь существует

однако, в моем ansible коде, статистика говорит мне, что каталог не существует, код выглядит следующим образом:

Project_add\roles\common\tasks
main.yml
Developer_project_setup.yml

vars
main.yml

в Developer_project_setup.yml, который запускается через включение в main. yml

- name: Running make libs to build libraries
  command: make libs
  args:                                                                     
    chdir: "{ file_path_home }"
  when: infra_problem_dir_check.stat.exists

- name: Running make clean for static tarballls
  command:  make clean all
  args:                                                                     
    chdir: "{ file_path_home }"
  when: infra_problem_dir_check.stat.exists

в файле vars.yml

file_path_home: /home/azureuser/directory-with-stuff

Я также включил статистику для проверки, но это также возвращает false к моему изумлению

- stat:
    path: "{ file_path_home }"
  register: infra_problem_dir_check

Я также использовал следующее для отладки, и результаты интересны в том смысле, что я вижу папку

- name: checking working directory
  command: pwd
  register: test
- debug: msg={{ test.stdout }}

- name: checking working directory contents
  command: ls -l
  register: test
- debug: msg={{ test.stdout }}

, поэтому при запуске playbook я получаю

TASK [Project_add/roles/common : stat] **************************************************************************************************************************************************************************************************************************************************************************************
ok: [client_Host_9d63] => {"changed": false, "stat": {"exists": false}}



TASK [Project_add/roles/common : checking working directory contents] *******************************************************************************************************************************************************************************************************************************************************
changed: [client_Host_9d63] => {"changed": true, "cmd": ["ls", "-l"], "delta": "0:00:00.003163", "end": "2020-03-11 23:00:50.782252", "rc": 0, "start": "2020-03-11 23:00:50.779089", "stderr": "", "stderr_lines": [], "stdout": "total 4\ndrwxr-xr-x 7 azureuser azureuser 4096 Mar  9 20:14 directory-with-stuff", "stdout_lines": ["total 4", "drwxr-xr-x 7 azureuser azureuser 4096 Mar  9 20:14 directory-with-stuff"]}



TASK [Project_add/roles/common : debug] *************************************************************************************************************************************************************************************************************************************************************************************
ok: [client_Host_9d63] => {
    "msg": "total 4\ndrwxr-xr-x 7 azureuser azureuser 4096 Mar  9 20:14 directory-with-stuff"
}


TASK [Project_add/roles/common : Running make libs to build libraries] ******************************************************************************************************************************************************************************************************************************************************
skipping: [client_Host_9d63] => {"changed": false, "skip_reason": "Conditional result was False"}

TASK [Project_add/roles/common : Running make clean for static tarballls] ***************************************************************************************************************************************************************************************************************************************************
skipping: [client_Host_9d63] => {"changed": false, "skip_reason": "Conditional result was False"}

Не знаю, почему написано, что папка не существует, кто-нибудь может пролить свет на то, что я делаю неправильно?

1 Ответ

1 голос
/ 12 марта 2020

Я думаю, что его синтаксис проблема. Используйте double вместо single.ie '{{' вместо '{"

args:                                                                     
    chdir: "{{ file_path_home }}"
- stat:
    path: "{{ file_path_home }}"
  register: infra_problem_dir_check
...