Sau khi cài đặt hoàn tất, việc tiếp theo chúng ta cần làm là kết nối các agent với máy chủ master, trước khi có thể khai báo các cấu hình và triển khai các cấu hình này từ master xuống các agent.

Xem lại bài Cài đặt Puppet

Bài viết này sẽ mô tả các bước cần thực hiện để kết nối các Puppet master và agent với nhau.

1. CHUẨN BỊ

Chúng ta sử dụng mô hình gồm 2 ( 1 master và 1 agent) với các thông tin sau:

Puppet master:

    • Hostname = .puppet.local
    • = 192.168.1.7

Puppet agent:

    • Hostname = node01.puppet.local
    • IP = 192.168.1.8

2. ĐỒNG BỘ THỜI GIAN

Kết nối giữa Puppet master và agent được chứng thực và mã hoá qua SSL, do đó điều quan trọng là thời gian trên master và agent phải đồng bộ với nhau. Nếu thời gian này không đồng bộ, các certificate  giữa master và client có thể không xác thực được (trusted), dẫn đến việc không thể kết nối giữa master và agent.

Để đồng bộ thời gian giữa các máy tính này, chúng ta sẽ sử dụng  NTP (Network Time Protocol) để thực hiện việc này.

–          Cài đặt NTP trên các agent

#   ntp -y

–          Cấu hình NTP như sau:

# vi /etc/ntp.conf
#server 0..pool.ntp.org iburst
#server 1..pool.ntp.org iburst
#server 2..pool.ntp.org iburst
#server 3..pool.ntp.org iburst
server server.puppet.local

với server.puppet.local là địa chỉ của puppet master.

–          Chạy NTP

# /etc/init.d/ntpd start
# chkconfig –levels 235 ntpd on
# ntpdate server.puppet.local

Giờ thì thời gian giữa các máy tính đã được đồng bộ với nhau.

3. CẤU HÌNH

–          Puppet master chạy trên port TCP 8140. Để các agent có thể kết nối được với puppet master, chúng ta cần mở port này trên firewall của master như sau:

#  -A INPUT -p tcp -m state --state NEW --dport 8140 -j ACCEPT

–          Lệnh trên sẽ cho phép truy cập từ bất cứ đâu đến port 8140, nếu chúng ta muốn giới hạn truy cập này ở 1 mạng cụ thể thì ta cấu hình như bên dưới.

# iptables -A INPUT -p tcp -m state --state NEW -s 192.168.1.0/24 --dport 8140 -j ACCEPT

–          Lệnh trên chỉ cho phép các kết nối đến port TCP 8140 từ các máy tính nằm trong mạng 192.168.1.0/24.

–          Lưu lại cấu hình trên

# /etc/init.d/iptables save

4. CHẠY PUPPET MASTER

–          Cấu hình tập tin /etc/hosts

# vi /etc/hosts
192.168.1.7     server.puppet.local
192.168.1.8     node01.puppet.local

Việc cấu hình này nhằm giúp cho puppet master có thể phân giải được địa chỉ của các agent trong mạng.

Lưu ý:

Trong các hệ thống thực tế, việc phân giải địa chỉ của các máy tính trong mạng sẽ do máy chủ đảm nhiệm thay cho việc khai báo thông tin trong tập tin hosts như ở trên.

–          Khai báo máy chủ puppet

# vi /etc/puppet/puppet.conf
[main]
server = server.puppet.local

–          Chạy dịch vụ puppetmaster

# /etc/init.d/puppetmaster start
# chkconfig –levels 235 puppetmaster on

–          Ngoài ra chúng ta cũng có thể chạy Puppet master bằng lệnh sau:

# puppet master --verbose --no-daemonize 

Lệnh trên sẽ xuất ra các nhật ký hoạt động trong quá trình khởi chạy puppet master, giúp kiểm tra và xác định các lỗi xảy ra trong quá trình chạy ứng dụng nếu có.

5. KẾT NỐI PUPPET AGENT

–          Cấu hình tập tin /etc/hosts

# vi /etc/hosts
192.168.1.7     server.puppet.local
192.168.1.8     node01.puppet.local

–          Cấu hình puppet như sau:

# vi /etc/puppet/puppet.conf
[main]
server=server.puppet.local

–          Kết nối đến puppet master

# puppet agent –test –server=server.puppet.local
Info: Creating a new SSL key for node01.puppet.local
Info: Caching certificate for ca
Info: Creating a new SSL certificate request for node01.puppet.local
Info: Certificate Request fingerprint (SHA256): 6F:0D:41:14:BD:2D:FC:CE:1C:DC:11:1E:26:07:4C:08:D0:C7:E8:62:A5:33:E3:4B:8B:C6:28:C5:C8:88:1C:C8
Exiting; no certificate found and waitforcert is disabled

–          Chạy dịch vụ puppet

# /etc/init.d/puppet start
# chkconfig –levels 235 puppet on

6. HOÀN TẤT VIỆC KẾT NỐI

Ở lần chạy đầu tiên, puppet agent sẽ tiến hành tạo certificate của chính agent đó và gửi certificate này đến puppet master để xác thực. Để puppet master và agent có thể kết nối được với nhau thì puppet master cần xác thực certificate mà agent đã gửi đến nó.

–          Tại puppet master, liệt kê danh sách các certificate của các agent chưa được xác thực.

# puppet cert list
"node01.puppet.local" (SHA256) 76:61:3C:F4:19:73:6D:B2:0C:49:46:4F:63:4F:9A:38:9C:8E:70:EA:6F:3A:36:58:BF:42:70:49:96:2F:BF:4B

–          Xác thực certificate của node01.puppet.local

# puppet cert sign node01.puppet.local
Notice: Signed certificate request for node01.puppet.local
Notice: Removing file Puppet::SSL::CertificateRequest node01.puppet.local at '/var/lib/puppet/ssl/ca/requests/node01.puppet.local.pem'

–          Trong trường hợp ta muốn xác thực cho toàn bộ danh sách certificate đang có thì dùng lệnh sau:

# puppet cert sign --all

–          Tại agent, chạy lệnh sau

# puppet agent –t
Info: Caching certificate for node01.puppet.local
Info: Caching certificate_revocation_list for ca
Info: Caching certificate for node01.puppet.local
Info: Retrieving plugin
Info: Caching catalog for node01.puppet.local
Info: Applying configuration version '1395073428'
Info: Creating state file /var/lib/puppet/state/state.yaml
Notice: Finished catalog run in 0.07 seconds

Như vậy là puppet master và agent đã kết nối thành công.

Print Friendly

Comments

comments

Bài viết liên quan