私は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