Quero executar o seguinte comando que contém aspas duplas:
- name: Initializing Kubernetes cluster
shell: kubeadm init --control-plane-endpoint "hostname:port"
Não sei se vai funcionar ou não, se eu verificar o comando da seguinte forma:
- debug:
msg: kubeadm init --control-plane-endpoint "hostname:port"
Dá kubeadm init --control-plane-endpoint \"hostname:port\"
. Por que a saída contém barra invertida extra entre aspas? O comando será executado corretamente como está ou terei que adicionar algo devido às aspas duplas? (Não consegui testar executando pois é um servidor de produção)
P: "Por que a saída contém barra invertida extra entre aspas?"
R: Ansible escapa das aspas duplas na saída para informar que as aspas duplas fazem parte da string. Por exemplo,
dá
dá
Você não precisa escapar das aspas duplas se usar o estilo com aspas simples
dá
Exemplo de um playbook completo para testes
P: "Tenho que adicionar algo devido às aspas duplas (uma string)?"
No comando abaixo, as aspas duplas serão interpretadas pelo shell
Se você quiser que as aspas duplas façam parte da string, você deve escapar delas
, ou feche-o entre aspas simples
P: "Aspas duplas serão interpretadas pelo shell. Certo?"
R: Certo. As aspas em torno dos parâmetros de um script têm como único propósito permitir espaços em branco dentro de um parâmetro. Por exemplo,
dá