ở phần này mình sẻ chỉ các bạn thêm user cho máy server và truyền ssh vào trong các user này, để không yêu cầu password như phần 1, chú ý các user được tạo ở đây chỉ có thể ssh và không thể nào connect được do bị disable, ok bắt đầu với việc tạo keygen trên máy Ansible
ssh-keygen -t ed25519 -C "MySSHKey"
Sau khi chạy câu lệnh ta cũng sẻ có 2 file như phần 1, nếu các bạn đã thực hiện bước tạo keygen ở phần 1 rồi thì việc này là không cần thiết tiếp đến tạo 1 file adduser.yml và code đoạn mã này vào nên nhớ mọi dấu cách chỉ cần sai thôi là nó sẻ báo lỗi liền ví dụ một số lỗi
Trên là lỗi khi bạn sai 1 con tab hoặc dấu phẩy nên hảy cẩn trọng
--- - hosts: lanhosts remote_user: root tasks: - name: Tao mot user moi cho may thuc thi user: name: ThanhPhatIT comment: "ThanhPhat IT" shell: /bin/bash groups: sudo append: yes password: '*' - name: Upload key ssh cho may thuc thi ta co the truy cap vao ma ko can pass nhung user thi bi disable authorized_key: user: ubuntu state: present manage_dir: yes key: "{{ lookup('file', '/home/ubuntu/.ssh/id_ed25519.pub') }}"Bạn chép đoạn code phía trên bỏ vào file playbook adduser.yml thực hiện build playbook adduser.yml bằng câu lệnh
ansible-playbook -i inventory --ask-vault-pass --extra-vars '@passwords.yml' adduser.yml
Lỗi này nghĩa là không thể connect ssh đến máy server điều này ta nên kiểm tra lại bằng cách ssh đến máy server xem có yêu cầu password không nếu nó yêu cầu nghĩa là bạn đã setup sai phần tạo keygen và copy keygen nên kiểm tra lại cho 2 máy phải connect với nhau và không yêu cầu password
Lỗi ở trên nghĩa là password với quyền sudo trong file inventory của bạn đã sai, nghĩa là sao, nghĩa là lúc đầu bạn có tạo 1 file password.yml để lưu pass của tài khoản bên máy server nhưng bạn nhập giá trị password trong file đó sai nên khiến connect đến file inventory sai dẫn đến thông báo incorrect sudo password
Tại sao lại có lỗi này, đó là lỗi khi bạn quên bỏ dòng lệnh
my_user_password: điền password root của máy serverTrong file passwords.yml sau khi mọi thông báo lỗi đã hết ta thử test bằng câu lệnh update cho máy server bên kia
ansible -i inventory --ask-vault-pass --extra-vars '@passwords.yml' lanhosts -m shell -a "apt-get update"cuối cùng ta thực hiện câu lệnh build file adduser.yml
ansible-playbook -i inventory --ask-vault-pass --extra-vars '@passwords.yml' adduser.ymlĐã hoàn thành xong bước tạo 1 user cho máy server bây giờ đến việc tạo thử thêm và xóa một gói packages cho máy server tạo một file software.yml và điền đoạn mã này vào
--- - hosts: lanhosts tasks: - name: Them danh sach app apt: name: "{{ packages }}" state: present vars: packages: - vim - nginx - name: Xoa danh sach app apt: name: "{{ packages }}" state: absent vars: packages: - vim - nanoSau đó ta dùng dòng lệnh này để build và xem kết quả ở máy server có cài vim và nginx không và có xóa vim và nano không nhé
ansible-playbook -i inventory --ask-vault-pass --extra-vars '@passwords.yml' software.ymlOk như vậy hôm nay mình đã hướng dẫn các bạn cơ bản về việc auto cài đặt nhiều máy server cùng lúc với 1 dòng lệnh bằng Ansible đừng quên Share và theo dõi Blog nhé
0 Comments
Vài lời muốn nói:
* Không được nhận xét thô tục bởi mình biết các bạn là những người văn minh.
* Pass giải nén mặt định là itblognote hoặc itblognote.com nếu có Pass khác thì mình sẽ ghim trong bài viết.
* Click vào quảng cáo và chia sẻ bài viết để mình có thêm động lực viết bài nhé.