Попытка собрать playbook для установки airflow (в папке virtualenv).Нельзя выполнять команды внутри среды virtualenv - PullRequest
0 голосов
/ 31 января 2019

Попытка собрать playbook, который может установить apache-ariflow в среде virtualenv.Невозможно выполнить команды внутри папки virtualenv.Ниже приведен мой playbook и ошибка.

Содержание Playbook: -

    - name: Active virtual Environment
      shell: source bin/activate
      args:
        chdir: "{{ directory }}"

    - name: Upgrade pip to latest version
      shell: pip install --upgrade pip

    - name: Execute export GPL
      shell: export AIRFLOW_GPL_UNIDECODE=yes

    - name: Execute export slugify
      shell: SLUGIFY_USES_TEXT_UNIDECODE=yes

    - name: Install airflow
      pip: name=apache-airflow state=present

ЗАДАЧА [Установить воздушный поток]

> ********************************************************* fatal: [host2.domain.local]: FAILED! => {"changed": false, "cmd":
> "/usr/bin/pip2 install apache-airflow", "msg": "stdout: Collecting
> apache-airflow\n  Using cached
> https://files.pythonhosted.org/packages/e4/06/45fe64a358ae595ac562640ce96a320313ff098eeff88afb3ca8293cb6b9/apache-airflow-1.10.2.tar.gz\n
> Complete output from command python setup.py egg_info:\n    Traceback
> (most recent call last):\n      File \"<string>\", line 1, in
> <module>\n      File
> \"/tmp/pip-install-yvZQsO/apache-airflow/setup.py\", line 429, in
> <module>\n        do_setup()\n      File
> \"/tmp/pip-install-yvZQsO/apache-airflow/setup.py\", line 287, in
> do_setup\n        verify_gpl_dependency()\n      File
> \"/tmp/pip-install-yvZQsO/apache-airflow/setup.py\", line 53, in
> verify_gpl_dependency\n        raise RuntimeError(\"By default one of
> Airflow's dependencies installs a GPL \"\n    RuntimeError: By default
> one of Airflow's dependencies installs a GPL dependency (unidecode).
> To avoid this dependency set SLUGIFY_USES_TEXT_UNIDECODE=yes in your
> environment when you install or upgrade Airflow. To force installing
> the GPL version set AIRFLOW_GPL_UNIDECODE\n    \n   
> ----------------------------------------\n\n:stderr: DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please
> upgrade your Python as Python 2.7 won't be maintained after that date.
> A future version of pip will drop support for Python 2.7.\nCommand
> \"python setup.py egg_info\" failed with error code 1 in
> /tmp/pip-install-yvZQsO/apache-airflow/\n"}

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Модуль pip ansible также имеет параметр virtuanlenv.Документы: https://docs.ansible.com/ansible/latest/modules/pip_module.html

- name: Install airflow
   pip: name=apache-airflow state=present
   virtualenv: '{{ airflow_virtualenv }}'
   virtualenv_python: '{{ airflow_python_version }}'
   environment:
     SLUGIFY_USES_TEXT_UNIDECODE: yes
     AIRFLOW_GPL_UNIDECODE: yes
0 голосов
/ 31 января 2019

Задачи не зависят, поэтому экспорт переменных, таких как AIRFLOW_GPL_UNIDECODE=yes, не будет доступен в следующих задачах. Если вы хотите передать переменную среды, передайте ее с помощью ключевого слова environment: в задаче, таким образом

 - name: Install airflow
   pip: name=apache-airflow state=present
   environment:
     SLUGIFY_USES_TEXT_UNIDECODE: yes
     AIRFLOW_GPL_UNIDECODE: yes

(см. https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html)

...