Thursday, November 21, 2024

[Ansible] Phân quyền trong Ansible

-

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”.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories