2016-10-05 12 views
5

Đây là công việc tôi muốn đạt được:Bitbucket đường ống làm thế nào để thiết lập đại lý ssh để triển khai trên một máy chủ từ xa

  1. cam kết mã
  2. bitbucket kiểm tra đường ống chạy trên hình ảnh Docker công cộng của tôi đường ống
  3. bitbucket thực thi tập lệnh không thể đọc được để triển khai trên hình ảnh docker công cộng của tôi

Hai bước đầu tiên hoạt động tốt, nhưng đây là vấn đề: Làm cách nào để lưu trữ khóa riêng của tôi s cho phép ansible để ssh đến máy chủ từ xa của tôi thông qua ssh đại lý?

Tôi hơi lưỡng lự khi lưu trữ khóa cá nhân bên trong cài đặt đường dẫn env, vì mọi người khác có quyền truy cập quản trị vào repo đều có thể xem.

Có một câu hỏi tương tự được hỏi here nhưng câu trả lời gợi ý để thiết lập các khóa trên đế và sử dụng riêng tư repo, mà nó hơi khác một chút so với tôi.

Trả lời

0

Tôi đã thiết lập quy trình tương tự và sử dụng biến môi trường đường ống, có một hộp kiểm để đảm bảo giá trị, do đó bạn không cần phải lo lắng về việc người khác đang xem nó.

Các thiết lập là khá dễ dàng:

  • Base64 mã hóa khóa bí mật và lưu nó trong một biến môi trường trong Bitbucket
  • Commit một "my_known_hosts" tập tin để codebase của bạn bao gồm SSH công cộng khóa của máy chủ từ xa.

Sau đó, trong tập tin bitbucket-pipelines.yml của bạn thiết lập các known_hosts và chìa khóa:

- mkdir -p ~/.ssh 
- cat my_known_hosts >> ~/.ssh/known_hosts 
- (umask 077 ; echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa) 

tài liệu hướng dẫn đầy đủ có sẵn ở đây https://confluence.atlassian.com/bitbucket/access-remote-hosts-via-ssh-847452940.html

2

Bạn có thể bây giờ phím cài đặt SSH dưới thiết lập đường ống để bạn không cần phải sử dụng biến môi trường và sao chép vào một số vị trí nhất định trong vùng chứa. Khóa riêng tư không được hiển thị.

Dưới

Settings -> Pipelines -> SSH keys

Bạn sẽ cần phải nhận được khóa công khai để file container sản xuất known_hosts.

Các vấn đề liên quan