Thứ hai, 08/09/2014 | 00:00 GMT+7

Cách sử dụng Foreman để quản lý các node puppet trên Ubuntu 14.04

Foreman là một công cụ open-souce có thể giúp quản lý các server , bằng cách cung cấp một cách dễ dàng để tương tác với Puppet (hoặc Chef) để tự động hóa các việc và triển khai ứng dụng. Foreman cung cấp giao diện user web, API và CLI mạnh mẽ được dùng để cung cấp, cấu hình và giám sát server của bạn. Nó phù hợp với các cơ sở hạ tầng ở mọi quy mô và hoạt động với hầu hết các bản phân phối của Linux.

Trong hướng dẫn này, ta sẽ chỉ cho bạn cách cài đặt Foreman với Puppet và bắt đầu sử dụng nó để quản lý server của bạn. Ta sẽ sử dụng Foreman cho các khả năng báo cáo và Trình phân loại nút bên ngoài (ENC), để dễ dàng quản lý Puppet.

Yêu cầu

Hướng dẫn này giả định bạn sẽ cài đặt Foreman trên một server mới, được gọi là server này cũng sẽ hoạt động như server chính của Puppet . Nếu bạn đã có server chính của Puppet , bạn có thể cài đặt Foreman trên đó nhưng hãy nhớ rằng site.pp mặc định của bạn sẽ bị overrides (để lại các node tác nhân Puppet hiện có của bạn ở trạng thái không được quản lý ) và bạn cần phải cấu hình Foreman để quản lý các node tác nhân Puppet hiện có của bạn.

Vì Foreman phụ thuộc vào Puppet để thực hiện quản lý cấu hình của server , nên nó yêu cầu mọi thứ cần thiết cho cài đặt tác nhân / chính của Puppet. Danh sách sau bao gồm những thứ bạn cần trước khi bắt đầu hướng dẫn này:

  • Quyền truy cập root : quyền truy cập sudo vào tất cả các server bạn muốn quản lý
  • DNS mạng riêng: DNS chuyển tiếp và DNS đảo ngược phải được cấu hình và mọi server phải có một tên server duy nhất. Đây là hướng dẫn để cấu hình server DNS mạng riêng của bạn . Nếu bạn chưa cấu hình DNS, bạn phải sử dụng file server của bạn để phân giải tên. Ta sẽ giả định bạn sẽ sử dụng mạng riêng của bạn để liên lạc trong cơ sở hạ tầng của bạn.
  • Cổng mở firewall : Phải truy cập được vào cổng chính của Puppet trên cổng 8140. Nếu firewall của bạn quá hạn chế, hãy xem Hướng dẫn UFW này để biết hướng dẫn về cách cho phép các yêu cầu đến trên cổng 8140.

Khi bạn đã có tất cả các yêu cầu , hãy chuyển sang tạo server Foreman (và Puppet master)!

Tạo server quản đốc

Tạo một server Ubuntu 14.04 x64 mới, sử dụng “foreman .nyc2.example.com ” làm tên server của nó. Thêm mạng riêng của nó vào DNS của bạn với các chi tiết sau:

Tên server Role FQDN riêng
người cai Quản đốc / Bậc thầy múa rối foreman.nyc2.example.com

Nếu bạn vừa cài đặt DNS của bạn và không chắc chắn về cách thêm server của bạn vào DNS, hãy tham khảo phần Duy trì Bản ghi DNS của hướng dẫn DNS. Về cơ bản, bạn cần thêm bản ghi “A” và “PTR” và cho phép server lưu trữ mới thực hiện các truy vấn đệ quy. Ngoài ra, hãy đảm bảo bạn cấu hình domain tìm kiếm của bạn để các server của bạn có thể sử dụng tên server ngắn để tra cứu lẫn nhau.

Đảm bảo Tên server được đặt thành FQDN

Để kiểm tra tên server đầy đủ của server , hãy nhập lệnh sau:

hostname -f 

Bạn sẽ thấy version dài của tên server của bạn , ví dụ: “foreman.nyc2.example.com”. Nếu tên server của bạn được đặt thành FQDN, bạn có thể tiếp tục phần tiếp theo.

Ngược lại, nếu trả về một tên ngắn, ví dụ như “quản đốc”, bạn cần đặt tên server của bạn thành tên dài. Để làm như vậy, hãy chỉnh sửa file hosts của bạn:

sudo vi /etc/hosts 

Tìm mục nhập đầu tiên cho tên server ngắn của bạn và thêm FQDN vào trước nó. Ví dụ:

127.0.1.1       foreman 

Nên đổi thành:

127.0.1.1       foreman.nyc2.example.com foreman 

Sau đó lưu và thoát.

Tiếp theo, chỉnh sửa file hostname của bạn:

sudo vi /etc/hostname 

Thay đổi mục nhập trong file thành FQDN của server của bạn, ví dụ: “foreman.nyc2.example.com”. Sau đó lưu và thoát.

Sau đó, chạy lệnh sau để đọc ngay lập tức thay đổi cấu hình bạn vừa thực hiện:

sudo hostname --file /etc/hostname 

Tên server dài của bạn đã được đặt. Tiếp tục cài đặt Foreman!

Cài đặt Foreman

Cách dễ nhất để cài đặt Foreman là sử dụng Trình cài đặt Foreman. Trình cài đặt Foreman cài đặt và cấu hình tất cả các thành phần cần thiết để chạy Foreman, bao gồm các thành phần sau:

  • người cai
  • Bậc thầy và đại lý puppet
  • Web server Apache với SSL và module Hành khách

Download Trình cài đặt Foreman bằng các lệnh sau:

sudo sh -c 'echo "deb http://deb.theforeman.org/ trusty 1.5" > /etc/apt/sources.list.d/foreman.list' sudo sh -c 'echo "deb http://deb.theforeman.org/ plugins 1.5" >> /etc/apt/sources.list.d/foreman.list' wget -q http://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add - sudo apt-get update && sudo apt-get install foreman-installer 

Sau đó, chạy Trình cài đặt Foreman bằng lệnh sau:

sudo foreman-installer 

Bạn sẽ thấy kết quả sau:

 Your puppet version does not support progress bar Preparing installation Done   Success!   * Foreman is running at https://foreman.nyc2.example.com       Default credentials are 'admin:changeme'   * Foreman Proxy is running at https://foreman.nyc2.example.com:8443   * Puppetmaster is running at port 8140   The full log is at /var/log/foreman-installer/foreman-installer.log 

Nếu kết quả của bạn trông tương tự như trên, Foreman và các thành phần bắt buộc của nó đã được cài đặt!

Bật Diffs

Trước khi tiếp tục, ta sẽ thực hiện một chút thay đổi cấu hình để bật “diffs”. Thay đổi này sẽ cho phép bạn xem các khác biệt, cho phép bạn xem các thay đổi file cấu hình từ trong chế độ xem Báo cáo của Foreman.

Chỉnh sửa puppet.conf :

sudo vi /etc/puppet/puppet.conf 

Tìm dòng đặt show_diff và thay đổi giá trị của nó thành true :

    show_diff     = true 

Lưu và thoát.

Thêm Server Foreman vào Database của Foreman

Để thêm server Foreman vào database của Foreman bằng cách chạy lệnh đặc vụ puppet agent như sau:

sudo puppet agent --test 

Điều này thêm server Foreman làm nút tác nhân Puppet đầu tiên do Foreman quản lý.

Đăng nhập vào giao diện web Foreman

Đăng nhập vào Quản đốc và thay đổi password quản trị. Giao diện web của Foreman có thể được truy cập bằng network interface công cộng của VPS của bạn (có thể là FQDN công cộng hoặc địa chỉ IP công cộng của nó).
Nhìn vào Cơ sở hạ tầng -> Proxy thông minh. Được tạo tự động (và hiển thị các tính năng có sẵn).

Theo mặc định, Foreman sử dụng certificate Puppet của bạn, certificate này có thể không được trình duyệt của bạn tin cậy. Chấp nhận cảnh báo về certificate và tiếp tục. Ngoài ra, bạn có thể thay thế certificate bằng certificate trùng với domain của bạn và được ký bởi cơ quan CA tin cậy . Sau khi bạn chấp nhận certificate và tiếp tục, bạn sẽ thấy trang đăng nhập sau:

Trang đăng nhập Foreman

Như bạn có thể nhận thấy khi chạy foreman-installer , đây là những thông tin đăng nhập mặc định:

  • Tên user : admin
  • Mật khẩu : changeme

Control panel quản đốc

Khi bạn đăng nhập lần đầu tiên, bạn sẽ thấy trang tổng quan Foreman, hiển thị tổng quan về môi trường Puppet của bạn. Tại đây, bạn sẽ thấy một bản tóm tắt về “Trạng thái cấu hình server lưu trữ”, hiển thị số lượng nút tác nhân Puppet và trạng thái tương ứng của chúng. Khi lần đầu tiên khởi động Foreman, bạn sẽ thấy một server duy nhất trong phần “ server lưu trữ tốt”:

Trạng thái cấu hình  server

Dưới đây, bạn sẽ thấy bản tóm tắt các sự kiện gần đây và biểu đồ với số lượng “khách hàng” đã chạy công việc Puppet của họ trong vòng 30 phút qua. Thông tin này có thể giúp bạn biết được cách cài đặt Puppet tổng thể của bạn đang hoạt động như thế nào.

Thay đổi password administrator

Trước khi làm bất cứ điều gì khác, bạn cần thay đổi password user admin của bạn . Để làm như vậy, hãy di chuột qua mục Admin-user ở góc trên cùng bên phải và nhấp vào Tài khoản của tôi :

Tài khoản của tôi

Tìm biểu mẫu Mật khẩu . Cập nhật password của bạn thành một thứ gì đó an toàn, sau đó nhấp vào gửi.

Thêm module NTP vào quản đốc

Puppet yêu cầu lưu giữ thời gian chính xác, vì vậy ta sẽ sử dụng Foreman để quản lý dịch vụ NTP trên server Foreman (cũng là server Puppet).

Trong trình duyệt web, truy cập https://forge.puppetlabs.com/ . Tìm kiếm một module NTP. Kết quả đầu tiên sẽ là puppetlabs/ntp . Nhấp vào module và đọc về nó để xem nó hoạt động gì.

Bây giờ ta sẽ cài đặt nó trong môi trường Sản xuất của Puppet master bằng lệnh sau:

sudo puppet module install -i /etc/puppet/environments/production/modules puppetlabs/ntp 

Bạn sẽ thấy kết quả như sau, điều này cho biết module đã được cài đặt đúng cách:

Notice: Preparing to install into /etc/puppet/environments/production/modules ... Notice: Downloading from https://forge.puppetlabs.com ... Notice: Installing -- do not interrupt ... /etc/puppet/environments/production/modules └─┬ puppetlabs-ntp (v3.1.2)   └── puppetlabs-stdlib (v4.3.2) 

Mô-đun đã được cài đặt trong Puppet master, nhưng nó phải được thêm vào Foreman trước khi ta có thể sử dụng nó.

Trong giao diện user web Foreman, di chuột qua Định cấu hình , sau đó nhấp vào các lớp Puppet :

Lớp học múa rối

Nhấp vào nút Nhập từ foreman.nyc2.example.com . Sau đó, bạn sẽ thấy một màn hình như sau:

Nhập lớp NTP

Đánh dấu vào hộp kiểm bên cạnh mục và nhấp vào nút Cập nhật . Mô-đun ntp hiện đã được nhập vào Foreman và sẵn sàng được sử dụng với server .

Ghi đè Group NTP mặc định

Bây giờ, ta muốn overrides cài đặt mặc định của module NTP và cấu hình module NTP để sử dụng group NTP USA theo mặc định. Hãy thoải mái tìm kiếm hồ bơi NTP mà bạn lựa chọn tại Dự án hồ bơi NTP .

Bạn sẽ ở trong màn hình “Lớp puppet ”. Nhấp vào lớp “ntp” để vào chế độ chỉnh sửa. Bây giờ hãy nhấp vào tab “Thông số lớp thông minh”.

Cuộn xuống, tìm mục “ server ” trong thanh bên trái và chọn nó:

 Server  NTP

Tìm và đánh dấu vào hộp kiểm “Ghi đè”. Thay đổi loại Tham số thả xuống thành “mảng”. Sau đó, thay đổi “Giá trị mặc định” từ group NTP mặc định thành một trong những lựa chọn của bạn, ở dạng mảng. Ta sẽ sử dụng group NTP của USA :

["0.us.pool.ntp.org","1.us.pool.ntp.org","2.us.pool.ntp.org","3.us.pool.ntp.org"] 

Cuộn xuống dưới cùng và nhấp vào nút "Gửi" màu xanh lục. Như vậy, bất kỳ server hoặc group server nào sử dụng module này sẽ sử dụng group NTP của USA theo mặc định.

Cấu hình Server quản đốc để sử dụng Mô-đun NTP

Bây giờ ta đã sẵn sàng sử dụng module NTP để quản lý NTP trên server Foreman.

Chuyển đến màn hình Server (di chuột qua Server , sau đó nhấp vào Tất cả Server ). Nhấp vào nút “Chỉnh sửa” ở ngoài cùng bên phải của server Foreman của bạn.

Nhấp vào tab Lớp puppet . Trong Các lớp khả dụng , hãy nhấp vào lớp ntp để mở rộng nó, sau đó nhấp vào dấu cộng bên cạnh “ntp”:

Các lớp có sẵn

Thao tác này sẽ chuyển lớp ntp sang phần Các lớp được bao gồm . Điều này nghĩa là lần tới khi nhân viên Puppet của server quản lý đăng ký, nó sẽ áp dụng module Puppet này cho nó.

Nhấp vào nút Gửi để áp dụng các thay đổi.

Xem cấu hình puppet

Sau khi chỉnh sửa cấu hình của server Foreman, bạn sẽ được chuyển đến trang tóm tắt của server Foreman.

Để xem thông tin được cung cấp cho Puppet khi một nút tác nhân đăng ký, hãy nhấp vào nút YAML:

Nút YAML

Bạn sẽ thấy một trang có kết quả tương tự như sau:

--- classes:   ntp:     server_list:     - 0.us.pool.ntp.org     - 1.us.pool.ntp.org     - 2.us.pool.ntp.org     - 3.us.pool.ntp.org parameters:   puppetmaster: foreman.nyc2.example.com   root_pw:    foreman_env: production   owner_name: Admin User   owner_email: root@nyc2.example.com environment: production 

Chạy tác nhân puppet

Hãy áp dụng thay đổi này ngay bây giờ, để ta có thể thấy nó có tác dụng gì.

Trên server Foreman, chạy tác nhân Puppet :

sudo puppet agent --test 

Trong giao diện user web, quay lại server Foreman của bạn, sau đó nhấp vào nút Báo cáo (bên cạnh nút YAML ). Bạn sẽ thấy một mục báo cáo mới cho biết một số thay đổi đã được áp dụng và một dịch vụ đã được khởi động lại; bấm vào báo cáo. Tại đây, bạn sẽ thấy một số thông báo cho biết gói NTP đã được cài đặt, cấu hình và khởi động lại.

Lưu ý bạn vừa sử dụng Foreman để cấu hình server Foreman. Quản lý bất kỳ server nào khác hoạt động theo cùng một cách.

Nếu bạn muốn, hãy nhấp vào liên kết “View Diff” bên cạnh mục ntp.conf/content . Điều này rất hữu ích nếu bạn muốn xem Puppet đang thay đổi các file cấu hình mà nó quản lý như thế nào.

Thêm server mới cho quản đốc

Đến đây bạn đã cài đặt server Foreman, có thể bạn cần thêm nhiều server hơn để được nó quản lý. Quá trình thêm nhiều server cũng giống như việc thêm nhiều nút tác nhân Puppet vào một server . Hướng dẫn chi tiết để làm điều này có thể được tìm thấy trong hướng dẫn đầu tiên của loạt bài này . Đảm bảo cấu hình tác nhân để trỏ đến server Puppet master (Foreman) của bạn.

Sau khi cài đặt và chạy tác nhân, bạn phải ký certificate của nó trên server Foreman. Bạn có thể ký các certificate thông qua dòng lệnh , như với cài đặt Puppet thông thường hoặc bạn có thể sử dụng giao diện web Foreman.

Để sử dụng giao diện web để ký certificate , hãy chuyển đến Cơ sở hạ tầng, sau đó nhấp vào Smart Proxy, sau đó nhấp vào nút Chứng chỉ:

Chứng chỉ

Tại đây bạn sẽ thấy tất cả các certificate trong PuppetCA. Nhấp vào nút Đăng (ở ngoài cùng bên phải) bên cạnh server mới mà bạn đã đặt để sử dụng server Puppet này.

Server mới của bạn đã sẵn sàng được quản lý bởi Foreman!

Kết luận

Đến đây bạn đã có một version Foreman đang hoạt động, bạn có một cách dễ dàng để tận dụng các module Puppet để quản lý cơ sở hạ tầng server của bạn . Vui lòng duyệt qua các module Puppet có sẵn công khai hoặc viết của bạn (xem hướng dẫn trước trong loạt bài này) để quản lý môi trường của bạn.

Chúc may mắn!


Tags:

Các tin liên quan

Cách sử dụng phân phối giám sát mở với Check_MK trên Ubuntu 14.04
2014-09-08
Cách cài đặt và cấu hình một Daemon và Ứng dụng khách SNMP trên Ubuntu 14.04
2014-08-18
Giới thiệu về cách sử dụng Consul, Hệ thống khám phá dịch vụ, trên Ubuntu 14.04
2014-08-15
Cách cấu hình Lãnh sự trong Môi trường Sản xuất trên Ubuntu 14.04
2014-08-15
Cách bảo mật lãnh sự bằng mã hóa TLS trên Ubuntu 14.04
2014-08-15
Cách tạo một cụm RethinkDB được chia nhỏ trên Ubuntu 14.04
2014-08-08
Cách cấu hình Varnish Cache 4.0 với SSL Termination trên Ubuntu 14.04
2014-08-07
Giới thiệu về Ganglia trên Ubuntu 14.04
2014-08-05
Cách thực hiện chấm dứt SSL với HAProxy trên Ubuntu 14.04
2014-07-10
Cách sử dụng WP Super Cache và Jetpack Photon để tối ưu hóa hiệu suất WordPress trên Ubuntu 14.04
2014-06-27