Bagaimana saya bisa mendapatkan /etc/hosts
file untuk merujuk ke file konfigurasi lain untuk daftar host?
contoh /etc/hosts
:
## My Hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
#Other Configurations
<Link to /myPath/to/MyConfig/ConfigFile.txt>
#Other Addresses
3.3.3.3 MyAwesomeDomain.com
4.4.4.4 SomeplaceIWantToGoTo.com
ConfigFile.txt
##My additional Hosts
1.1.1.1 SomeLocation.com
2.2.2.2 AnotherLocation.com
Bagaimana cara menambahkan tautan / Referensi ke /etc/hosts
file sehingga ConfigFile.txt akan dimuat?
LC_COLLATE
), sehingga peringatan dalam jawaban Anda tidak berlaku.Itu tidak mungkin, karena format biasanya sangat dikodekan ke dalam libc platform. Namun adalah dibayangkan bahwa OS menambahkan fitur ini, membuatnya menjadi solusi non cross-platform.
Atau, Anda dapat secara otomatis memperbarui blok tertentu di file host Anda. Ini sangat membantu jika Anda memiliki skrip yang secara dinamis menampilkan entri host untuk proyek tertentu atau lebih (mungkin dengan mengubah IP).
Berikut ini contohnya: Anda ingin membuat host dari keadaan Terraform via
terraform-inventory
.Output inventaris yang relevan (misalnya, memetakan tag "Nama" EC2 ke grup yang masing-masing memiliki satu host):
print-updated-hosts-entries.sh
Output skrip:
Dan baris perintah untuk memperbarui blok yang ditandai
/etc/hosts
dengan output skrip :Penjelasan:
sed
panggilan untuk mencetak semua baris sebelum dan sesudah penanda dimulai / berakhir, masing-masing. Kami menyisipkan penanda dalam kasus apa pun, menempatkan output skrip di antara baris-baris itu. Bahkan jika skrip gagal, kita masih harus melingkupi konten/etc/hosts
(dan cadangan dalam skenario bencana).sudo tee /etc/hosts.new
menulis konten yang disalurkan ke file barused -n '/^# MYMARKER BEGIN/,/^# MYMARKER END/p'
mencetak blok yang diperbarui untuk kenyamanansudo mv /etc/hosts.new /etc/hosts
memindahkan file baru ke tempatnya. Ini harus dilakukan dalam langkah terpisah karena jika buffer pipa kehabisan ruang,tee /etc/hosts
akan mulai menulis file sementara konten yang ada masih dibaca.sumber
Saya memiliki persyaratan yang sama agar saya dapat bekerja dengan mulus dari berbagai lokasi dengan IP dinamis, terutama karena saya menggunakan mesin virtual. Solusi sederhana saya untuk ini adalah sebagai berikut:
Buat skrip untuk memperbarui entri host untuk setiap entitas. Misalnya, jika saya memiliki host yang disebut 'myhost.net', dengan sub-domain 'app.myhost.net', saya akan memanggil skrip itu dan memberikan alamat IP yang akan ditulis untuk setiap domain dan disimpan dalam file host yang disebut 'Tuan rumahku'. Skrip yang sama memiliki bendera untuk menghapus atau memperbarui file host tunggal.
Buat skrip lain untuk menggabungkan file-file itu ke / etc / hosts. Skrip ini akan menemukan semua file host yang Anda buat dan menggabungkannya ke file host tunggal di / etc / hosts.
Ini bekerja dengan baik untuk saya. Saya bekerja dari jarak jauh dan kadang-kadang perlu berpindah antar lokasi dengan alasan apa pun, dan akan terbebani oleh permintaan untuk mengedit satu file berkali-kali. Sebaliknya saya hanya menjalankan SATU skrip. Ya, satu skrip. Script pertama secara otomatis menjalankan yang lain untuk melakukan penggabungan secara otomatis.
sumber