Если вы используете chdir: functions/function-package
в своей задаче, то вы запускаете команду zip
в каталоге functions/function-package
.Это означает, что путь functions/build/build-function.zip
, вероятно, больше не действителен, поскольку вы находитесь внутри дочернего элемента каталога functions/
.
На основании информации в вашем вопросе, подходящий путь, вероятно, ../build/
, например так:
- name: build lambda functions
hosts: localhost
- name: Buid Zip Package
command: zip -r ../build/build-function.zip .
args:
chdir: functions/function-package/
Обновление
Если я скопирую ваш макет каталога:
$ find *
functions
functions/function-package
functions/function-package/script.py
functions/build
playbook.yml
И запустите эту пьесу:
---
- hosts: localhost
gather_facts: false
tasks:
- name: Build Zip Package
command: zip -r ../build/build-function.zip .
args:
chdir: functions/function-package
Работает просто отлично:
$ ansible-playbook playbook.yml
PLAY [localhost] ******************************************************************************
TASK [Build Zip Package] **********************************************************************
changed: [localhost]
PLAY RECAP ************************************************************************************
localhost : ok=1 changed=1 unreachable=0 failed=0
И файл .zip
существует, как и ожидалось:
$ ls -l ./functions/build/build-function.zip
-rw-rw-r--. 1 lars lars 209 Jan 3 08:19 ./functions/build/build-function.zip