команда оболочки с Ansible playbook не работает - PullRequest
0 голосов
/ 04 августа 2020

Привет, я добавил в свой playbook небольшую задачу, которая должна изменить umask на моем linux компьютере:

  - name: set umask to 0022
    shell: umask 0022

При запуске playbook, я вижу, что эта задача успешно выполнена:

changed: [myHostName] => {
"changed": true,
"cmd": "umask 0022",
"delta": "0:00:00.004660",
"end": "2020-08-04 16:28:44.153261",
"invocation": {
    "module_args": {
        "_raw_params": "umask 0022",
        "_uses_shell": true,
        "argv": null,
        "chdir": null,
        "creates": null,
        "executable": null,
        "removes": null,
        "stdin": null,
        "stdin_add_newline": true,
        "strip_empty_ends": true,
        "warn": true
    }
},
"rc": 0,
"start": "2020-08-04 16:28:44.148601",
"stderr": "",
"stderr_lines": [],
"stdout": "",
"stdout_lines": []
}

но после того, как playbook завершается, я проверяю umask и вижу, что он не был изменен вообще:

-bash-4.2$ umask
0044

Я также поместил отладку в мою playbook сразу после задачи, которую я показал выше, и отладка также показывает, что umask не изменялся .. Пробовал также с

become: yes

Но получил тот же результат ..

Когда я выполняю команду на моем Linux вручную, он будет работать:

-bash-4.2$ umask 0022
-bash-4.2$ umask
0022

Любое предложение будет оценено по достоинству. Спасибо.

1 Ответ

1 голос
/ 04 августа 2020

Q: После завершения playbook я проверяю umask и вижу, что он вообще не был изменен.

A: Это правильно. Ansible на самом деле ничего не делает через оболочку , т.е. изменения действуют только в этом одном сеансе.

...