2017-11-15 19 views
5

Tôi muốn chạy một cuốn sách phát lại an toàn trên máy chủ mục tiêu đi qua nhiều máy chủ. Kịch bản trông giống như một trong những mô tả trong hình:Thiết kế đa luồng hợp lý

enter image description here

tôi phần vấn đề giải quyết việc tạo ra các tập tin ssh_config trong thư mục dự án Ansible:

Host IP_HostN 
     HostName IP_HOST_N 
     ProxyJump [email protected]_HOST_2:22,[email protected]_HOST_2:22 
     User UsernameN 

và xác định trong ansible.cfg trong thư mục dự án Ansible:

[ssh_connection] 
ssh_args= -F "ssh_config" 

Vấn đề là tôi cần chèn tự động cho mỗi máy chủ tạm thời và máy chủ đích ssh tên người dùngmật khẩu và tôi không biết cách tự động hóa tác vụ này. Hơn nữa, python có thể không được cài đặt trên mọi nút tạm thời.

+3

Âm thanh như một lý do chính đáng để sử dụng [SSH agent chuyển tiếp] (http://unixwiz.net/techtips/ssh-agent-forwarding.html) với auth khóa công khai. –

+1

Bạn có thể thêm mật khẩu vào 'ssh_config' để bạn cần sử dụng các phím như vậy –

Trả lời

1

Tôi đã tìm được giải pháp hợp lý tốt. Theo kịch bản dưới đây:

enter image description here

chúng ta tạo ra một đường hầm ssh cho đến khi chủ nhà thoáng qua có thể trực tiếp đến host mục tiêu. Chúng tôi cũng tạo ra một cổng địa phương gắn với -L cờ:

ssh -J [email protected]_host1:port_1 -p port_2 [email protected]_host2 -L LOCAL_PORT:TARGET_HOST_IP:TARGET_HOST_PORT 

Sau đó chúng ta có thể trực tiếp tham gia vào mục tiêu chủ sử dụng ràng buộc địa phương:

ssh [email protected] -p LOCAL_PORT 

Bằng cách này, chúng ta có thể chạy ansible sách bài hát trên máy chủ lưu trữ cục bộ định cấu hình các biến ansible cho phù hợp:

ansible_host: localhost 
ansible_user: user_target_host 
ansible_port: LOCAL_PORT 
ansible_password: password_target_host 
Các vấn đề liên quan