Trong Ansible, phân quyền được thực hiện thông qua việc sử dụng các tài khoản và quyền hạn khác nhau để thực hiện các nhiệm vụ cụ thể. Ansible hỗ trợ nhiều cơ chế phân quyền khác nhau, bao gồm SSH key-based authentication, password-based authentication, và sử dụng các tài khoản khác nhau để thực hiện các nhiệm vụ khác nhau.
Một số ví dụ về cách phân quyền trong Ansible:
Sử dụng SSH key-based authentication: Để sử dụng phương pháp xác thực này, bạn cần tạo ra cặp key SSH (public và private) trên máy tính điều khiển, sau đó sao chép public key này vào các máy chủ mà bạn muốn quản lý. Trong file cấu hình Ansible, bạn sử dụng tham số ansible_ssh_private_key_file
để chỉ định đường dẫn đến private key của bạn, và Ansible sẽ sử dụng key này để đăng nhập vào các máy chủ.
Ví dụ:
- name: Install Apache
hosts: webservers
become: yes
become_user: apache
vars:
ansible_ssh_private_key_file: /path/to/private/key
tasks:
- name: Install Apache
yum:
name: httpd
state: latest
Sử dụng password-based authentication: Để sử dụng phương pháp xác thực này, bạn cần cung cấp tên người dùng và mật khẩu trong file cấu hình Ansible. Ansible sẽ sử dụng thông tin này để đăng nhập vào các máy chủ.
Ví dụ:
- name: Install Apache
hosts: webservers
become: yes
become_user: apache
vars:
ansible_user: your_username
ansible_password: your_password
tasks:
- name: Install Apache
yum:
name: httpd
state: latest
Sử dụng các tài khoản khác nhau để thực hiện các nhiệm vụ khác nhau: Để sử dụng phương pháp này, bạn có thể sử dụng tham số become_user
trong file cấu hình Ansible để chỉ định tài khoản mà Ansible nên sử dụng để thực hiện các nhiệm vụ cụ thể. Ví dụ, nếu bạn muốn cài đặt một ứng dụng bằng cách sử dụng tài khoản root, bạn có thể sử dụng become_user: root
.
Ví dụ:
- name: Install Apache
hosts: webservers
become: yes
become_user: root
tasks:
- name: Install Apache
yum:
name: httpd
state: latest
Để phân quyền file sshkey trong Ansible, bạn có thể sử dụng module “file” với tham số “mode”. Ví dụ, để thiết lập quyền truy cập 0600 cho file sshkey.
- name: Set sshkey file permissions
file:
path: /path/to/sshkey
mode: '0600'
Trong ví dụ này, “path” là đường dẫn tới file sshkey, “mode” là quyền truy cập mới sẽ được thiết lập. Các quyền truy cập trong Linux được biểu diễn bằng một chuỗi 3 số, với mỗi số đại diện cho quyền truy cập của chủ sở hữu, nhóm và các người dùng khác lần lượt. Trong trường hợp này, “0600” có nghĩa là quyền truy cập được thiết lập cho chủ sở hữu là “read” và “write”, và không có quyền truy cập nào cho nhóm hoặc người dùng khác.
Sau khi chạy playbook của bạn, file sshkey sẽ được phân quyền với quyền truy cập “0600”.