나는 ansible-playbook을 사용하여 vps를 관리하고 모든 vps 정보를 다음과 같이 매니페스트 파일에 넣습니다.
[base]
vps_virmach ansible_host=127.39.39.34 ansible_ssh_user=root
vps_vulr ansible_host=24.39.48.02 ansible_ssh_user=root
[web]
vps_aliyun ansible_host=114.39.43.55 ansible_ssh_user=root
dnsmasq 서비스를 실행하는 라우터가 있고 다음을 작성하고 싶습니다.쉘 스크립트사용자 지정 호스트 이름을 사용하여 vps에 액세스할 수 있도록 dnsmasq에 대한 conf 파일을 생성합니다.
예상되는:
address=/vps_virmach/127.39.39.34
address=/vps_vulr/24.39.48.02
address=/vps_aliyun/114.39.43.55
저는 쉘 스크립팅에 대한 경험이 거의 없기 때문에 작업을 완료하려면 어떤 명령이나 명령 파이프라인을 선택해야 할지 궁금합니다.
답변1
이 파일은 Ansible에서 생성할 수 있습니다. 아래 스크립트
- hosts: all
gather_facts: false
tasks:
- copy:
dest: conf.txt
content: |
{% for host in ansible_play_hosts_all %}
address=/{{ host }}/{{ hostvars[host]['ansible_host'] }}
{% endfor %}
delegate_to: localhost
run_once: true
주어진
shell> cat conf.txt
address=/vps_virmach/127.39.39.34
address=/vps_vulr/24.39.48.02
address=/vps_aliyun/114.39.43.55