Tôi đang làm việc trên một số tập lệnh tự động hóa để định cấu hình cài đặt mạng của mình, lưu trữ nội dung tệp và / etc / tệp giải quyết, khi truy cập các mạng khác nhau mà tôi thường gặp giữa.
Có một số kết hợp có thể xảy ra mà tất cả đều yêu cầu thay đổi tệp máy chủ và tôi muốn tránh phải thiết lập ma trận kết hợp khác nhau, sao chép các cài đặt được chia sẻ ở mọi nơi.
Ví dụ, tôi có thể trên mạng làm việc, tức là. trong tòa nhà, hoặc tôi có thể truy cập nó qua VPN. Trong cả hai trường hợp, tôi cần thêm một số cài đặt vào tệp máy chủ để mạng hoạt động chính xác, một số được chia sẻ, một số thì không. Ngoài ra, nếu tôi qua VPN, tôi có thể ở nhà, trong trường hợp đó có một số cài đặt khác trong tệp máy chủ tôi cũng muốn thêm.
Như vậy, tôi đã hy vọng rằng thay vì tạo một tệp cho "home, truy cập công việc qua VPN" so với "home, không truy cập công việc", v.v., có cách nào để tôi đưa vào các tệp khác không?
Chẳng hạn, giả sử cú pháp giả định sau hoạt động:
#!include home.hosts
#!include work.hosts
127.0.0.1 localhost
::1 localhost
Bằng cách này, tôi có thể chỉ cần xóa nội dung của một hoặc cả hai, của hai tệp bổ sung đó và để phần còn lại là.
Hoặc, chặn lại, có cách nào tốt hơn để làm điều này hơn là chỉ xây dựng một tập lệnh nhỏ nối các tệp như tập tin vào một tệp lưu trữ mới và là một phần trong thiết lập tự động hóa của tôi, trước tiên tôi xóa một số tệp bổ sung đó, và sau đó tôi gọi tập lệnh để xây dựng lại tập tin máy chủ duy nhất từ những tập tin bổ sung đó?
dscl
lệnh, tôi cũng sẽ phải nghiên cứu về điều đó.
dscl
, /etc/hosts
đơn giản là một trong những nguồn dữ liệu có sẵn, cung cấp (tất nhiên) ánh xạ tên máy chủ / địa chỉ IP. Thiết lập một tập lệnh ghi dscl
và xóa bộ đệm có thể hoạt động tốt hơn trong tình huống của bạn hơn là giữ nhiều bản sao của tệp máy chủ hoặc viết lại nó mọi lúc.
dscl
trực tiếp các mục nhập máy chủ không?