Estou escrevendo um playbook ansible que deve compilar da fonte alguma ferramenta e instalá-la.
Ao verificar meu manual, tentei executar os comandos relevantes manualmente para verificar sua saída.
Então, no meu livro de jogos ansible, configurei isso:
- name: Configure kafkacat
command: . {{ install_dest }}/configure arg1
args:
enable_json: "--enable-json"
sudo: yes
Mas antes de executar o playbook, executei manualmente: o
. /tmp/kafkacat/configure --enable-json
que deveria ser equivalente a executar ./configure
no diretório atual, mas o comando falha e recebo um erro.
Então, como isso pode ser feito? desde já, obrigado
Em muitos casos, dependendo do software, a configuração depende de ter inclusões e cabeçalhos abertos a partir do diretório de trabalho atual.
ansible suporta um argumento "chdir". Talvez essa seja a solução que funcionará para você?
Não, não acho que sejam equivalentes. O ponto sem espaço a seguir substitui o caminho para o diretório atual , enquanto um ponto antes de um espaço faz com que os comandos de um script sejam executados em seu shell atual . Há uma boa explicação aqui: https://askubuntu.com/q/232932