Thứ ba, 23/07/2019 | 00:00 GMT+7

Cách triển khai và quản lý DNS của bạn bằng OctoDNS trên Ubuntu 18.04

OctoDNS là một công cụ cơ sở hạ tầng dưới dạng mã cho phép bạn triển khai và quản lý các vùng DNS của bạn bằng cách sử dụng các nguyên tắc phát triển phần mềm tiêu chuẩn, bao gồm kiểm soát version , thử nghiệm và triển khai tự động. OctoDNS được tạo ra bởi GitHub và được viết bằng Python.

Sử dụng OctoDNS loại bỏ nhiều cạm bẫy của việc quản lý DNS thủ công, vì các file vùng được lưu trữ ở định dạng có cấu trúc ( YAML ). Điều này cho phép bạn triển khai đồng thời các vùng cho nhiều nhà cung cấp DNS, xác định lỗi cú pháp và tự động đẩy cấu hình DNS của bạn, giảm nguy cơ do lỗi do con người gây ra. Một cách sử dụng phổ biến khác của OctoDNS là đồng bộ hóa cấu hình DNS của bạn giữa các nhà cung cấp khác nhau, chẳng hạn như hệ thống thử nghiệm và production hoặc giữa môi trường trực tiếp và chuyển đổi dự phòng.

OctoDNS tương tự như DNSControl, là một công cụ tương đương được tạo bởi Stack Exchange và được viết bằng Go. Không giống như OctoDNS, DNSControl sử dụng ngôn ngữ cấu hình dựa trên JavaScript để xác định vùng DNS, cho phép bạn sử dụng các tính năng lập trình nâng cao như vòng lặp để chỉ định nhiều bản ghi tương tự trong cùng một vùng. Bài viết Cách triển khai và quản lý DNS của bạn bằng DNSControl trên Ubuntu 18.04 trình bày về cài đặt và cấu hình cơ bản của DNSControl.

Trong hướng dẫn này, bạn sẽ cài đặt và cấu hình OctoDNS, tạo cấu hình DNS cơ bản và bắt đầu triển khai các bản ghi DNS cho một nhà cung cấp trực tiếp. Là một phần của hướng dẫn này, ta sẽ sử dụng DigitalOcean làm nhà cung cấp DNS mẫu. Nếu bạn muốn sử dụng một nhà cung cấp khác , cách cài đặt rất giống nhau. Khi hoàn tất, bạn có thể quản lý và kiểm tra cấu hình DNS của bạn trong một môi trường offline , an toàn, sau đó tự động triển khai nó vào version production .

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn cần những thứ sau:

  • Một server Ubuntu 18.04 được cài đặt bằng cách thực hiện theo Cài đặt server ban đầu với Ubuntu 18.04 , bao gồm một user không phải root có quyền sudo và firewall được bật để chặn các cổng không cần thiết. your-server-ipv4-addressyour-server-ipv6-address đề cập đến địa chỉ IP của server mà bạn đang lưu trữ trang web hoặc domain của bạn .
  • Tên domain được đăng ký đầy đủ với DNS được lưu trữ bởi nhà cung cấp được hỗ trợ . Hướng dẫn này sẽ sử dụng your-domain xuyên suốt và DigitalOcean làm nhà cung cấp dịch vụ.
  • Khóa API DigitalOcean (Mã truy cập cá nhân) với quyền đọc và ghi. Để tạo một mã, hãy truy cập Cách tạo mã truy cập cá nhân .

Khi đã sẵn sàng những thứ này, hãy đăng nhập vào server của bạn với quyền là user không phải root của bạn để bắt đầu.

Bước 1 - Cài đặt OctoDNS

OctoDNS được phân phối dưới dạng gói pip Python và chạy trong Môi trường ảo Python ( virtualenv ), vì vậy bạn sẽ bắt đầu bước này bằng cách cài đặt các gói cần thiết cho việc này. virtualenv là một môi trường Python cô lập có thể có các thư viện và cấu hình riêng, tách biệt với cài đặt Python trên toàn hệ thống chính. Python và virtualenv có sẵn trong repository mặc định của Ubuntu, giúp bạn có thể cài đặt bằng các công cụ quản lý gói thông thường.

Bắt đầu bằng cách cập nhật index gói local để phản ánh mọi thay đổi ngược dòng mới:

  • sudo apt update

Sau đó, cài đặt gói pythonvirtualenv :

  • sudo apt install python virtualenv

Sau khi xác nhận cài đặt, apt sẽ download và cài đặt Python, virtualenv và tất cả các phụ thuộc của chúng.

Tiếp theo, bạn sẽ tạo các folder cần thiết cho OctoDNS, nơi lưu trữ cấu hình DNS và chương trình của bạn. Bắt đầu bằng cách tạo các folder ~/octodns~/octodns/config :

  • mkdir ~/octodns ~/octodns/config

Bây giờ chuyển sang ~/octodns :

  • cd ~/octodns

Tiếp theo, bạn cần tạo Môi trường ảo Python — một môi trường Python biệt lập với các thư viện và cấu hình riêng để chạy OctoDNS trong:

  • virtualenv env

Kích hoạt môi trường của bạn bằng lệnh sau:

  • source env/bin/activate

Điều này sẽ xuất ra một cái gì đó tương tự như sau:

Output
Running virtualenv with interpreter /usr/bin/python2 New python executable in /home/user/octodns/env/bin/python2 Also creating executable in /home/user/octodns/env/bin/python Installing setuptools, pkg_resources, pip, wheel...done.

Dấu nhắc Bash shell của bạn bây giờ cũng sẽ có tiền tố là tên của môi trường ảo. Điều này cho thấy rằng bạn hiện đang hoạt động trong virtualenv :

(env) user@digitalocean:~/octodns$ 

Nếu bạn muốn thoát virtualenv , bạn có thể sử dụng lệnh deactivate bất kỳ lúc nào. Tuy nhiên, bạn nên ở lại virtualenv của bạn để tiếp tục với hướng dẫn này.

Đến đây bạn đã cài đặt và cấu hình Python và virtualenv , bạn có thể cài đặt OctoDNS. OctoDNS được phân phối dưới dạng gói pip Python, là công cụ quản lý gói tiêu chuẩn cho các gói và thư viện Python.

Bạn có thể cài đặt gói pip OctoDNS bằng lệnh sau trong virtualenv của bạn :

  • pip install octodns

Sau khi hoàn tất, bạn có thể kiểm tra version đã cài đặt đảm bảo rằng mọi thứ đang hoạt động:

  • octodns-sync --version

Đầu ra của bạn sẽ trông giống như sau:

Output
octoDNS 0.9.6

Nếu bạn octodns-sync: command not found lỗi octodns-sync: command not found hãy kiểm tra kỹ xem bạn vẫn ở trong virtualenv của bạn .

Đến đây bạn đã cài đặt OctoDNS, bạn có thể tạo các file cấu hình cần thiết để kết nối OctoDNS với nhà cung cấp DNS của bạn để cho phép nó áp dụng các thay đổi đối với bản ghi DNS của bạn.

Bước 2 - Cấu hình OctoDNS

Trong bước này, bạn sẽ tạo các file cấu hình cần thiết cho OctoDNS và kết nối nó với nhà cung cấp DNS của bạn để nó có thể bắt đầu áp dụng các thay đổi trực tiếp đối với bản ghi DNS của bạn.

Lưu ý: Hướng dẫn này sẽ tập trung vào cài đặt ban đầu của OctoDNS; tuy nhiên để sử dụng cho mục đích production , bạn nên lưu trữ cấu hình OctoDNS của bạn trong hệ thống kiểm soát version (VCS) như Git . Những ưu điểm của điều này bao gồm kiểm soát version đầy đủ, tích hợp với CI / CD để thử nghiệm, triển khai quay lại liên tục, v.v.

Trước tiên, bạn cần cấu hình file config.yaml , file này xác định các vùng DNS cho OctoDNS quản lý và cho phép nó xác thực với nhà cung cấp DNS của bạn và áp dụng các thay đổi .

Định dạng của config.yaml hơi khác một chút tùy thuộc vào nhà cung cấp DNS mà bạn đang sử dụng. Vui lòng xem danh sách Nhà cung cấp được Hỗ trợ trong tài liệu chính thức của OctoDNS để tìm cấu hình cho nhà cung cấp của bạn . Khi xem siêu liên kết này, chi tiết cấu hình được trình bày dưới dạng comment mã trong mã Python thực cho nhà cung cấp của bạn, được liên kết trong cột 'Nhà cung cấp' của bảng. Một khi bạn đã tìm thấy mã Python cho nhà cung cấp của bạn, chẳng hạn như cloudflare.py hoặc route53.py , những comment mã có liên quan có thể tìm thấy trực thuộc class ProviderName Provider . Ví dụ:

Đoạn trích của octodns / nhà cung cấp / route53.py
class Route53Provider(BaseProvider):     '''     AWS Route53 Provider     route53:         class: octodns.provider.route53.Route53Provider         # The AWS access key id         access_key_id:         # The AWS secret access key         secret_access_key:         # The AWS session token (optional)         # Only needed if using temporary security credentials         session_token: 

Di chuyển vào folder ~/octodns/config :

  • cd ~/octodns/config

Sau đó, tạo và mở config.yaml để chỉnh sửa:

  • nano config.yaml

Thêm cấu hình config.yaml mẫu cho nhà cung cấp DNS của bạn vào file . Nếu bạn đang sử dụng DigitalOcean làm nhà cung cấp DNS của bạn , bạn có thể sử dụng các cách sau:

~ / octodns / config / config.yaml
--- providers:   config:     class: octodns.provider.yaml.YamlProvider     directory: ./config     default_ttl: 300     enforce_order: True   digitalocean:     class: octodns.provider.digitalocean.DigitalOceanProvider     token: your-digitalocean-oauth-token  zones:   your-domain.:     sources:       - config     targets:       - digitalocean 

Tệp này cho OctoDNS biết nhà cung cấp DNS nào bạn muốn nó kết nối và vùng DNS nào nó sẽ quản lý cho những nhà cung cấp đó.

Bạn cần cung cấp một số hình thức xác thực cho nhà cung cấp DNS của bạn . Đây thường là khóa API hoặc mã thông báo OAuth.

Nếu bạn không muốn lưu trữ mã thông báo truy cập của bạn ở dạng văn bản thuần túy trong file cấu hình, thay vào đó bạn có thể chuyển nó dưới dạng biến môi trường khi chương trình chạy. Để làm điều này, bạn nên sử dụng token: sau token: dòng thay thế trong config.yaml :

~ / octodns / config / config.yaml
token: env/DIGITALOCEAN\_OAUTH\_TOKEN 

Sau đó, trước khi chạy OctoDNS, hãy đặt biến môi trường có liên quan thành mã thông báo truy cập của bạn và OctoDNS sẽ đọc nó từ đó khi chạy:

  • export DIGITALOCEAN\_OAUTH\_TOKEN=your-digitalocean-oauth-token

Cảnh báo: Mã thông báo này sẽ cấp quyền truy cập vào account nhà cung cấp DNS của bạn, vì vậy bạn nên bảo vệ nó như password . Ngoài ra, hãy đảm bảo nếu bạn đang sử dụng hệ thống kiểm soát version , thì file chứa mã thông báo sẽ bị loại trừ (ví dụ: sử dụng .gitignore ) hoặc được mã hóa an toàn theo một cách nào đó.

Nếu bạn đang sử dụng DigitalOcean làm nhà cung cấp DNS của bạn , bạn có thể sử dụng mã thông báo OAuth bắt buộc trong cài đặt account DigitalOcean mà bạn đã tạo như một phần của yêu cầu .

Nếu bạn có nhiều nhà cung cấp DNS khác nhau — ví dụ: đối với nhiều domain hoặc vùng DNS được ủy quyền — bạn có thể xác định tất cả những nhà cung cấp này trong cùng một file config.yaml .

Bạn đã cài đặt file cấu hình OctoDNS ban đầu để cho phép chương trình xác thực với nhà cung cấp DNS của bạn và áp dụng các thay đổi . Tiếp theo, bạn sẽ tạo cấu hình cho các vùng DNS của bạn .

Bước 3 - Tạo file cấu hình DNS

Trong bước này, bạn sẽ tạo một file cấu hình DNS ban đầu, file này sẽ chứa các bản ghi DNS cho domain hoặc vùng DNS được ủy quyền của bạn.

Mỗi vùng DNS mà bạn muốn quản lý bằng OctoDNS có file riêng của nó, ví dụ: your-domain .yaml . Trong file này, các bản ghi DNS cho vùng được xác định bằng YAML .

Để bắt đầu, hãy chuyển vào folder ~/octodns/config :

  • cd ~/octodns/config

Sau đó, tạo và mở your-domain .yaml để chỉnh sửa:

  • nano your-domain.yaml

Thêm cấu hình mẫu sau vào file :

~ / octodns / config / your-domain.yaml
--- '':   - type: A     value: your-server-ipv4-address  www:   - type: A     value: your-server-ipv4-address 

Tệp mẫu này xác định vùng DNS cho your-domain với hai bản ghi A , trỏ đến địa chỉ IPv4 mà bạn đang lưu trữ domain hoặc trang web của bạn . Một bản ghi A dành cho domain root (ví dụ domain your-domain ) và bản ghi còn lại dành cho domain phụ www (ví dụ: www. your-domain ).

Sau khi hoàn tất, hãy lưu file .

Bạn đã cài đặt file cấu hình vùng DNS cơ bản cho OctoDNS, với hai bản ghi A cơ bản trỏ đến địa chỉ IPv4 của domain hoặc trang web . Tiếp theo, bạn sẽ mở rộng file với một số bản ghi DNS hữu ích.

Bước 4 - Nhập file cấu hình DNS của bạn

Tiếp theo, bạn có thể điền vào file cấu hình DNS với một tập hợp các bản ghi DNS thực tế cho trang web hoặc dịch vụ của bạn , sử dụng ngôn ngữ cấu hình có cấu trúc YAML.

Không giống như các file vùng BIND truyền thống, nơi các bản ghi DNS được ghi ở định dạng thô, từng dòng, các bản ghi DNS trong OctoDNS được định nghĩa là các khóa và khóa con YAML với một số giá trị liên quan, như được trình bày ngắn gọn trong Bước 3.

Khóa cấp cao nhất thường là 'name' , về cơ bản là định danh bản ghi. www , subdomain1mail là tất cả các ví dụ về 'name' DNS. Trong tháng 10, có hai tên sử dụng đặc biệt là '' cho bản ghi root (thường được gọi là @ ) và '*' cho bản ghi ký tự đại diện. Giá trị bắt buộc của mỗi khóa (bản ghi DNS) là type . Điều này xác định loại bản ghi DNS bạn đang xác định trong khóa cấp cao nhất YAML đó. Một type tồn tại cho mỗi loại bản ghi DNS tiêu chuẩn, bao gồm A , AAAA , MX , TXT , NS , CNAME , v.v. Danh sách đầy đủ các loại bản ghi có sẵn có trong phần Bản ghi của tài liệu OctoDNS.

Các giá trị cho bản ghi DNS của bạn được xác định trực tiếp dưới dạng giá trị cho khóa cấp cao nhất (nếu bạn chỉ có một giá trị) hoặc dưới dạng danh sách (nếu bạn có nhiều giá trị, ví dụ: nhiều địa chỉ IP hoặc địa chỉ MX).

Ví dụ: để xác định một giá trị duy nhất, bạn có thể sử dụng cấu hình sau:

~ / octodns / config / your-domain.yaml
'www':   type: A   value: 203.0.113.1 

Ngoài ra, để xác định nhiều giá trị cho một bản ghi:

~ / octodns / config / your-domain.yaml
'www':   type: A   values:   - 203.0.113.1   - 203.0.113.2 

Cú pháp để cài đặt bản ghi DNS hơi khác nhau đối với từng loại bản ghi. Sau đây là một số ví dụ cho các loại bản ghi phổ biến nhất:

A profile :

Mục đích: Để trỏ đến địa chỉ IPv4.

Cú pháp:

'name':   type: A   value: ipv4-address 

Thí dụ:

'www':   type: A   value: your-server-ipv4-address 

Hồ sơ AAAA :

Mục đích: Để trỏ đến địa chỉ IPv6.

Cú pháp:

'name':   type: AAAA   value: ipv6-address 

Thí dụ:

'www':   type: AAAA   value: your-server-ipv6-address 

CNAME :

Mục đích: Để đặt domain / domain phụ của bạn thành alias của domain khác.

Cú pháp:

'name':   type: CNAME   value: fully-qualified-domain-name 

Thí dụ:

'www':   type: CNAME   value: www.example.org 

Bản ghi MX :

Mục đích: Để chuyển hướng email đến các server / địa chỉ cụ thể.

Cú pháp:

'name':   type: MX   value:     exchange: mail-server     preference: priority-value 

Lưu ý một dấu vết . phải được bao gồm nếu có bất kỳ dấu chấm nào trong giá trị MX.

Thí dụ:

'':   type: MX   value:     exchange: mail.your-domain.     preference: 10 

Bản ghi TXT :

Mục đích: Để thêm văn bản thuần túy tùy ý, thường được sử dụng cho các cấu hình không có loại bản ghi chuyên dụng của riêng chúng.

Cú pháp:

'name':   type: TXT   value: content 

Thí dụ:

'':   type: TXT   value: This is a TXT record. 

Để bắt đầu thêm bản ghi DNS cho domain của bạn hoặc vùng DNS được ủy quyền, hãy chỉnh sửa file cấu hình DNS của bạn:

  • cd ~/octodns/config
  • nano your-domain.yaml

Tiếp theo, bạn có thể bắt đầu điền vùng DNS của bạn bằng cú pháp được mô tả trong danh sách trước đó, cũng như phần Bản ghi của tài liệu chính thức về OctoDNS.

Để tham khảo, khối mã ở đây chứa cấu hình mẫu đầy đủ cho cài đặt DNS ban đầu:

~ / octodns / config / your-domain.yaml
--- '':   - type: A     value: your-server-ipv4-address    - type: AAAA     value: your-server-ipv6-address    - type: MX     value:       exchange: mail.your-domain.       preference: 10    - type: TXT     value: v=spf1 -all  _dmarc:   type: TXT   value: v=DMARC1\; p=reject\; rua=mailto:abuse@your-domain\; aspf=s\; adkim=s\;  mail:   - type: A     value: your-server-ipv4-address    - type: AAAA     value: your-server-ipv6-address  www:   - type: A     value: your-server-ipv4-address    - type: AAAA     value: your-server-ipv6-address 

Khi bạn đã hoàn tất cấu hình DNS ban đầu, hãy lưu file .

Trong bước này, bạn cài đặt file cấu hình DNS ban đầu, chứa các bản ghi DNS của bạn. Tiếp theo, bạn sẽ kiểm tra cấu hình và triển khai nó.

Bước 5 - Kiểm tra và triển khai cấu hình DNS của bạn

Trong bước này, bạn sẽ chạy kiểm tra cú pháp local trên cấu hình DNS của bạn , sau đó áp dụng các thay đổi đối với server / nhà cung cấp DNS trực tiếp.

Đầu tiên, chuyển vào folder octodns của bạn:

  • cd ~/octodns

Kiểm tra kỹ xem bạn vẫn đang hoạt động trong Python virtualenv của bạn bằng cách tìm tên của nó trước dấu nhắc Bash của bạn:

(env) user@digitalocean:~/octodns$ 

Tiếp theo, sử dụng lệnh octodns-validate để kiểm tra cú pháp của (các) file cấu hình của bạn. Bạn cần chỉ định đường dẫn đến file cấu hình của bạn :

  • octodns-validate --config=./config/config.yaml

Nếu cú pháp YAML của file cấu hình DNS của bạn chính xác, OctoDNS sẽ trả về mà không có kết quả .

Nếu bạn thấy lỗi hoặc cảnh báo trong kết quả của bạn , OctoDNS sẽ cung cấp chi tiết về lỗi và vị trí nằm trong file YAML của bạn.

Tiếp theo, bạn có thể thực hiện đẩy nhanh cấu hình DNS, cấu hình này sẽ xuất ra những thay đổi nào sẽ được thực hiện mà không thực sự thực hiện chúng:

  • octodns-sync --config=./config/config.yaml

Điều này sẽ tạo ra một kết quả tương tự như sau:

Output
******************************************************************************** * your-domain. ******************************************************************************** * digitalocean (DigitalOceanProvider) * Create <ARecord A 300, mail.your-domain., ['your-server-ipv4-address']> (config) * Create <AaaaRecord AAAA 300, mail.your-domain., ['your-server-ipv6-address']> (config) * Create <TxtRecord TXT 300, your-domain., ['v=spf1 -all']> (config) * Create <AaaaRecord AAAA 300, your-domain., ['your-server-ipv6-address']> (config) * Create <ARecord A 300, your-domain., ['your-server-ipv4-address']> (config) * Create <ARecord A 300, www.your-domain., ['your-server-ipv4-address']> (config) * Create <MxRecord MX 300, your-domain., [''10 mail.your-domain.'']> (config) * Create <TxtRecord TXT 300, _dmarc.your-domain., ['v=DMARC1\; p=reject\; rua=mailto:abuse@your-domain\; aspf=s\; adkim=s\;']> (config) * Create <AaaaRecord AAAA 300, www.your-domain., ['your-server-ipv6-address']> (config) * Summary: Creates=9, Updates=0, Deletes=0, Existing Records=2 ********************************************************************************

Cảnh báo: Lệnh tiếp theo sẽ áp dụng các thay đổi trực tiếp đối với bản ghi DNS của bạn và có thể là các cài đặt khác. Hãy đảm bảo bạn đã chuẩn bị cho việc này, bao gồm cả việc backup cấu hình DNS hiện tại của bạn, cũng như đảm bảo bạn có phương tiện để khôi phục nếu cần.

Cuối cùng, bạn có thể áp dụng các thay đổi đối với nhà cung cấp DNS trực tiếp của bạn :

  • octodns-sync --config=./config/config.yaml --doit

Lưu ý: Trong một số trường hợp, OctoDNS sẽ từ chối áp dụng các thay đổi nếu nó đang thực hiện một số điều chỉnh đáng kể. Đây là một tính năng bảo vệ tự động để ngăn chặn các cấu hình sai ngẫu nhiên. Nếu gặp phải sự từ chối này, bạn có thể chạy lại octodns-sync bằng cách sử dụng --force chọn --force , nhưng hãy đảm bảo bạn đã sẵn sàng làm như vậy.

Bạn sẽ thấy một kết quả giống như kết quả chạy khô trước đó trong bước này, nhưng với việc bổ sung một thứ tương tự như sau:

Output
2019-07-07T23:17:27 INFO DigitalOceanProvider[digitalocean] apply: making changes 2019-07-07T23:17:30 INFO Manager sync: 9 total changes

Bây giờ, nếu bạn kiểm tra cài đặt DNS cho domain của bạn trong console DigitalOcean, bạn sẽ thấy các thay đổi.

Ảnh chụp màn hình console  DigitalOcean, hiển thị một số thay đổi DNS mà OctoDNS đã thực hiện.

Bạn cũng có thể kiểm tra việc tạo bản ghi bằng cách chạy truy vấn DNS cho domain / vùng được ủy quyền của bạn. Bạn sẽ thấy rằng các bản ghi đã được cập nhật tương ứng:

  • dig +short your-domain

Bạn sẽ thấy kết quả hiển thị địa chỉ IP và bản ghi DNS liên quan từ vùng của bạn đã được triển khai bằng OctoDNS. Bản ghi DNS có thể mất một khoảng thời gian để phổ biến, vì vậy bạn có thể cần đợi và chạy lại lệnh này.

Trong bước cuối cùng này, bạn đã chạy kiểm tra cú pháp local của file cấu hình DNS, sau đó triển khai nó tới nhà cung cấp DNS trực tiếp của bạn và kiểm tra xem các thay đổi đã được thực hiện thành công chưa.

Kết luận

Trong bài viết này, bạn đã cài đặt OctoDNS và triển khai cấu hình DNS cho một nhà cung cấp trực tiếp. Như vậy, bạn có thể quản lý và kiểm tra các thay đổi cấu hình DNS của bạn trong một môi trường an toàn, offline trước khi triển khai chúng vào version production .

Nếu bạn muốn khám phá thêm chủ đề này, OctoDNS được thiết kế để tích hợp vào đường dẫn CI / CD của bạn, cho phép bạn chạy các thử nghiệm chuyên sâu và kiểm soát nhiều hơn việc triển khai đến production . Bạn cũng có thể xem xét việc tích hợp OctoDNS vào quy trình xây dựng / triển khai cơ sở hạ tầng của bạn , cho phép bạn triển khai các server và thêm chúng vào DNS hoàn toàn tự động.

Nếu bạn muốn tiến xa hơn với OctoDNS, các bài viết DigitalOcean sau cung cấp một số bước tiếp theo thú vị để giúp tích hợp OctoDNS vào quy trình quản lý thay đổi và triển khai cơ sở hạ tầng của bạn:


Tags:

Các tin liên quan

Cách thiết lập hệ thống bàn trợ giúp với OTRS trên Ubuntu 18.04
2019-06-28
Cách triển khai và quản lý DNS của bạn bằng DNSControl trên Ubuntu 18.04
2019-06-26
Cách cấu hình Cụm Galera với MariaDB trên server Ubuntu 18.04
2019-06-20
Cách backup thư mục lớn với Unison trên Ubuntu 18.04
2019-05-21
Cách tạo một cụm Kubernetes bằng Kubeadm trên Ubuntu 18.04
2019-04-24
Cách tạo một cụm Kubernetes bằng Kubeadm trên Ubuntu 16.04
2019-04-24
Cách tạo một cụm Kubernetes bằng Kubeadm trên Ubuntu 18.04
2019-04-24
Cách tạo một cụm Kubernetes bằng Kubeadm trên Ubuntu 16.04
2019-04-24
Cách cài đặt và cấu hình Zabbix để giám sát an toàn server từ xa trên Ubuntu 18.04
2019-04-18
Cách cài đặt Anaconda trên Ubuntu 18.04 [Quickstart]
2019-04-18