Cách cài đặt và cấu hình Ansible trên Ubuntu 18.04 LTS

theanh

Administrator
Nhân viên
Ansible là phần mềm mã nguồn mở và miễn phí có thể được sử dụng để tự động hóa việc cung cấp phần mềm, quản lý cấu hình và triển khai ứng dụng. Không giống như Puppet hoặc Chef, bạn không cần phải thiết lập môi trường máy khách-máy chủ trước khi sử dụng Ansible. Bạn có thể quản lý nhiều máy chủ từ một vị trí trung tâm. Công cụ này rất đơn giản nhưng mạnh mẽ để tự động hóa các môi trường ứng dụng CNTT đa tầng phức tạp. Ansible giao tiếp qua các kênh SSH thông thường để lấy thông tin từ các máy từ xa và thực hiện các tác vụ.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và sử dụng Ansible trên máy chủ Ubuntu 18.04.

Yêu cầu​

  • Hai hệ thống máy chủ Ubuntu 18.04 có cài đặt máy chủ OpenSSH.
  • Một địa chỉ IP tĩnh 192.168.0.101 được thiết lập trên hệ thống máy chủ và 192.168.0.104 được thiết lập trên hệ thống máy khách.
  • Một người dùng không phải root có sudo quyền được thiết lập trên cả hai hệ thống.

Bắt đầu​

Trước khi bắt đầu, hãy cập nhật hệ thống của bạn lên phiên bản mới nhất bằng lệnh sau:
Mã:
sudo apt-get update -y
sudo apt-get upgrade -y
Sau khi hệ thống của bạn được cập nhật, hãy khởi động lại hệ thống để áp dụng các thay đổi.

Cài đặt và cấu hình Ansible​

Theo mặc định, phiên bản mới nhất của Ansible không có trong kho lưu trữ mặc định của Ubuntu 18.04. Vì vậy, bạn sẽ cần thêm Ansible PPA vào máy chủ của mình. Bạn có thể thực hiện việc này bằng cách chạy lệnh sau:
Mã:
sudo apt-add-repository ppa:ansible/ansible
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt Ansible bằng lệnh sau:
Mã:
sudo apt-get update -y
sudo apt-get install ansible -y
Sau khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra phiên bản Ansible bằng lệnh sau:
Mã:
sudo ansible --version
Đầu ra:
Mã:
ansible 2.7.1 config file = /etc/ansible/ansible.cfg configure module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/dist-packages/ansible executable location = /usr/bin/ansible python version = 2.7.15rc1 (mặc định, 12/11/2018, 14:31:15) [GCC 7.3.0]
Tiếp theo, bạn sẽ cần xác định hệ thống máy khách mà bạn muốn quản lý trong tệp máy chủ Ansible. Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp /etc/ansible/hosts:
Mã:
sudo nano /etc/ansible/hosts
Thêm các dòng sau:
Mã:
[Client]node1 ansible_ssh_host=192.168.0.104
Lưu và đóng tệp khi bạn hoàn tất.

Cấu hình Khóa SSH cho Hệ thống Máy khách​

Ansible sử dụng SSH để giao tiếp với máy chủ Máy khách. Vì vậy, bạn sẽ cần cấu hình xác thực ssh dựa trên khóa cho máy chủ Client.

Đầu tiên, tạo cặp khóa SSH bằng lệnh sau:
Mã:
ssh-keygen
Đầu ra:
Mã:
Tạo cặp khóa rsa công khai/riêng tư.Nhập tệp để lưu khóa (/root/.ssh/id_rsa):Nhập mật khẩu (để trống nếu không có mật khẩu):Nhập lại mật khẩu tương tự:Thông tin nhận dạng của bạn đã được lưu trong /root/.ssh/id_rsa.Khóa công khai của bạn đã được lưu trong /root/.ssh/id_rsa.pub.Dấu vân tay khóa là:SHA256:bTVjTCKqxD8rnIw7/6mB6ZH9cnhzzOFg+/+x4clSOow root@ubuntu1804Ảnh randomart của khóa là:+---[RSA 2048]----+| . . . || . . . + || ồ. * || . ồ. ồ || . ồ ồ || Ồ ồ.. . || * Bo.* + oo || ..oo+=.E =o = || ôi*++...+* |+----[SHA256]-----+
Tiếp theo, sao chép khóa công khai này vào hệ thống Máy khách bằng lệnh sau:
Mã:
ssh-copy-id -i ~/.ssh/id_rsa.pub [emailprotected]
Đầu ra:
Mã:
/usr/bin/ssh-copy-id: THÔNG TIN: Nguồn khóa cần cài đặt: "/root/.ssh/id_rsa.pub"/usr/bin/ssh-copy-id: THÔNG TIN: đang cố gắng đăng nhập bằng khóa mới để lọc ra bất kỳ khóa nào đã được cài đặt/usr/bin/ssh-copy-id: THÔNG TIN: Còn 1 khóa chưa được cài đặt -- nếu bây giờ bạn được nhắc thì hãy cài đặt khóa mớiMật khẩu của [emailprotected]:Số khóa đã thêm: 1Bây giờ hãy thử đăng nhập vào máy bằng: "ssh '[emailprotected]'"và kiểm tra để đảm bảo rằng chỉ có khóa bạn muốn được thêm vào.

Làm việc với Ansible​

Ansible hiện đã được cài đặt và cấu hình. Đã đến lúc kiểm tra Ansible.

Trên máy chủ Ansible, hãy thử ping hệ thống Máy khách của bạn bằng Ansible với lệnh sau.
Mã:
ansible -m ping Máy khách
Đầu ra:
Mã:
node1 | SUCCESS => { "changed": false, "ping": "pong"}
Nếu bạn đã cấu hình nhiều máy khách trong tệp máy chủ Ansible của mình. Sau đó, bạn có thể ping toàn bộ hệ thống Máy khách bằng lệnh sau:
Mã:
ansible -m ping all
Bạn có thể kiểm tra trạng thái của máy chủ web Apache trên hệ thống Client bằng lệnh sau:
Mã:
ansible -m shell -a 'service apache2 status' Client
Đầu ra:
Mã:
node1 | CHANGED | rc=0 >> * apache2 is running
Để kiểm tra kích thước phân vùng của hệ thống Client, hãy chạy lệnh sau:
Mã:
ansible -m shell -a 'df -h' Client
Đầu ra:
Mã:
node1 | CHANGED | rc=0 >>Kích thước hệ thống tệp Đã sử dụng Có sẵn Sử dụng% Đã gắn trên/dev/sda1 138G 48G 83G 37% /không có 4.0K 0 4.0K 0% /sys/fs/cgroupudev 1.9G 4.0K 1.9G 1% /devtmpfs 384M 1.2M 383M 1% /runkhông có 5.0M 0 5.0M 0% /run/lockkhông có 1.9G 67M 1.9G 4% /run/shmkhông có 100M 36K 100M 1% /run/user/dev/sda5 225G 35G 180G 16% /Data
Xin chúc mừng! bạn đã cài đặt và cấu hình Ansible thành công trên máy chủ Ubuntu 18.04. Bây giờ bạn có thể dễ dàng sử dụng Ansible để thực hiện các tác vụ đơn giản từ xa.
 
Back
Bên trên