Meu script ansible está fazendo um ótimo trabalho ao colocar todas as montagens em qualquer sistema que eu especificar. Mas minha intenção era instalar montagens dependentes da sub-rede.
As pessoas em .35 são privilegiadas e precisam de acesso a documentos especiais, enquanto todos podem acessar nossos documentos públicos e unidades de aplicativos.'
Alguém sabe o que estou fazendo de errado aqui?
[ATUALIZAÇÃO] Depois da ótima resposta de Vladimir Botka, estou quase lá. O único problema é minha seção aqui (já que abandonei funções agora):
tasks:
- name: Mount the entries in list
mount:
name: '{{ item }}'
path: '{{ item.mount_point }}'
src: '{{ item.shared_storage }}'
fstype: nfs
opts: rw
state: mounted
with_items: '{{ my_mounts }}'
Você sabe por que suas linhas de saída no fstab assim:
srvr:/docs {'mount_point':\040'/mnt/doc',\040'shared_storage':\040'srvr:/docs'} nfs rw 0 0
--- Ao invés de ----
srvr:/docs /mnt/doc nfs rw 0 0
?
Eu tentei definir o caminho: '{{ item.mount_point.1 }}' e algumas outras suposições totais, mas sem sucesso.
O MANUAL ORIGINAL ERA:
---
- name: My mounts
hosts: accounting
become: yes
vars:
subnet: "{{ ansible_default_ipv4.address.split('.')[2:3] | join('.') }}"
tasks:
- debug:
msg: subnet is {{ subnet }}
roles:
- role: nfsmount
vars:
mount_point: /mnt/docs
shared_storage: bay05:/docs/spreadsheets
when: ( "subnet == '20'" ) or ( "subnet == '35'" )
- role: nfsmount
vars:
mount_point: /mnt/pub
shared_storage: cheetah:/pub
when: ( "subnet == '20'" )
Por exemplo, coloque as declarações abaixo conforme apropriado
Em seguida, as tarefas
dar
Ajuste as estruturas e o código às suas necessidades.