SSAMKO의 개발 이야기

[ansible] 가상환경 설정. source 를 찾을 수 없다는 에러. "stderr": "/bin/sh: 1: source: not found" 본문

DevOps

[ansible] 가상환경 설정. source 를 찾을 수 없다는 에러. "stderr": "/bin/sh: 1: source: not found"

SSAMKO 2021. 12. 1. 14:36
반응형

Ansible

ansible로 가상환경을 설정해 그 안에서 작업하려고 source 커맨드를 사용하면 아래와 같은 에러를 마주치게 된다.

fatal: [default]: FAILED! => {"changed": true, "cmd": "source /home/ubuntu/venv/bin/activate && pip install -r /home/ubuntu/requirements.txt", "delta": "0:00:00.003097", "end": "2021-12-01 05:22:18.087230", "msg": "non-zero return code", "rc": 127, "start": "2021-12-01 05:22:18.084133", "stderr": "/bin/sh: 1: source: not found", "stderr_lines": ["/bin/sh: 1: source: not found"], "stdout": "", "stdout_lines": []}

이는 ansible은 기본적으로 shell: 을 실행할 때, /bin/bash 대신에 /bin/sh 을 사용하기 때문에 그렇다.

따라서 우리가 /bin/bash를 사용하도록 직접 지정해주면 해결된다. executable을 이용해 지정해 줄 수 있다.

- name: Virtual Env
  shell: source home/ubuntu/venv/bin/activate
  args:
    executable: /bin/bash

| https://docs.ansible.com/ansible/2.5/modules/shell_module.html

반응형
Tag
0 Comments
댓글쓰기 폼