Làm thế nào để cài đặt một cái gì đó từ một máy tính cho tất cả các máy tính?


9

Trong phòng thí nghiệm đại học của tôi, tất cả các máy tính đều được kết nối với mạng LAN, vì vậy tôi muốn cài đặt phần mềm 'spyder' từ một máy tính cho tất cả các máy tính.
Có thể không?


Bạn có phải là quản trị viên? Nếu không, hãy xin phép trước.
Thorbjørn Ravn Andersen

Tôi đã cài đặt Ubuntutrong mỗi máy tính của phòng thí nghiệm đại học của mình với cùng tên người dùng (CSLAB) và cùng một mật khẩu (E201) và tất cả các máy tính được kết nối với cùng một mạng LAN. Vậy làm thế nào tôi có thể trở thành quản trị viên cho mỗi người dùng máy tính?
Abhishek Kamal

1
@AbhishekKamal, một lời khuyên .. Đừng đăng tên người dùng thực (và mật khẩu ??) trên các trang web công cộng. Và ngoài ra, nếu "E201" thực sự là mật khẩu quản trị viên của bạn, hãy xem xét thay thế nó bằng một cái gì đó an toàn hơn nhiều!
tplive

Các giải pháp như Ansible và cl clustersh (được đề cập bên dưới) sử dụng SSH để kết nối với các máy tính bạn muốn quản lý. Bạn có thể (và nên) thiết lập quyền truy cập không cần mật khẩu, điều này khẳng định sự tin cậy giữa các máy tính (tức là máy tính của bạn được tất cả các máy tính được quản lý tin cậy) để tự động hóa hoạt động trơn tru.
tplive

1
Một "quản trị viên" trên Ubuntu không gì khác hơn là một người có thể trở thành root, ví dụ như với "sudo -s" (và sau đó chạy "apt" để cài đặt phần mềm). Tại sao bạn làm điều này ở nơi đầu tiên?
Thorbjørn Ravn Andersen

Câu trả lời:


14

Đối với điều này, giải pháp ưa thích của tôi là Ansible ( https://www.ansible.com/ ). Nó cho phép bạn tự động hóa bất kỳ loại cấu hình hoặc cài đặt nào trên nhiều máy tính mà bạn muốn. Một ưu điểm khác của Ansible là cộng đồng đã tạo sẵn rất nhiều tập lệnh mạnh mẽ, để thực hiện hầu hết các tác vụ cài đặt và cấu hình.

Đây trông giống như một hướng dẫn khá dễ hiểu để giúp bạn bắt đầu và chạy với Ansible.

Tuy nhiên, nếu đây chỉ là lệnh một lần bạn muốn chạy trên nhiều máy tính, tốt hơn hết bạn chỉ nên viết kịch bản lệnh đó trong Bash .


12

Nếu đó chỉ là một vài lệnh đơn giản bạn cần thực thi và bạn không muốn định cấu hình phần mềm tự động hóa phức tạp (như ansible, salt hoặc con rối) bạn có thể sử dụng clusterssh.

Mở một cửa sổ dòng lệnh để cài đặt

sudo apt-get install clusterssh

bây giờ bạn có thể mở một kết nối đến một số máy chủ, như thế này

clusterssh -l username labhost1 labhost2 labhost3

cl clustersh sau đó sẽ cung cấp cho bạn một cửa sổ để nhập các lệnh của bạn, nhưng cũng có một cửa sổ đầu cuối cho mỗi máy chủ bạn kết nối - để bạn có thể thấy những gì thực sự xảy ra!

Ví dụ ClusterSSH Trong ví dụ này, bạn có thể thấy cửa sổ lệnh với "apt-get update" ở bên phải và tất cả các đầu cuối cụm ở bên trái.

Nếu một trong các máy chủ có vấn đề, bạn có thể thấy thông báo lỗi ngay lập tức và nhấp vào thiết bị đầu cuối tương ứng để khắc phục tình trạng này.

Bạn cũng có thể viết một danh sách clustersshđể kết nối với: Mở trình soạn thảo yêu thích của bạn và viết thư cho$HOME/.clusterssh/clusters

collegelab labhost1
collegelab labhost2
collegelab labhost3

sau đó kết nối với

clusterssh -l username collegelab

đọc thêm


Công bằng mà nói, bạn có thể có thể làm điều tương tự từ dòng lệnh Ansible một cách đơn giản và dễ dàng như bạn đề nghị cho clusterssh .. :) Đặt máy của bạn trong một tập tin hàng tồn kho, và sau đó chạy lệnh từ thiết bị đầu cuối, một cái gì đó giống nhưansible inventory -a 'shell command goes here'
tplive

1
@tplive chắc chắn, bạn cũng có thể làm điều đó với các lệnh ssh, cũng có pssh.... nhưng với cụm, bạn có phản hồi ngay lập tức và cách dừng / khắc phục nếu có vấn đề. Đây chỉ là một cách khác để đi về mọi thứ. Cá nhân tôi thích tự động hóa phần mềm (như ansible).
Robert Riedl

Trong phòng thí nghiệm đại học của tôi, mỗi máy tính có cùng tên người dùng và cùng một mật khẩu . Vì vậy, tôi có thể sử dụng clustersshhoặc ansiblecho điều đó?
Abhishek Kamal

@RobertRiedl và đó là lý do tại sao tôi nêu lên câu trả lời của bạn .. :)
áp dụng

1
@AbhishekKamal Tuyệt đối! Để có trải nghiệm mượt mà nhất với đăng nhập không cần mật khẩu, hãy đặt khóa ssh công khai của bạn vào tệp ủy quyền trên mỗi máy tính bằng cách sử dụng ssh-copy-idhoặc tương tự.
tplive

0

Đây là một giải pháp tuần tự rất cơ bản giả sử bạn biết tất cả tên máy chủ hoặc địa chỉ IP của các máy tính trên mạng và bạn đã bật xác thực khóa chung. Xem tại đây để biết thêm chi tiết - https://man.openbsd.org/ssh-keygen.1

  1. Tạo một tệp mới, vd hosts.txt
  2. Nhập từng dòng tệp đã nói với địa chỉ IP hoặc tên máy chủ của các hộp trên mạng LAN của bạn
  3. Lặp lại từng dòng trong tệp và cài đặt phần mềm trên máy chủ như vậy

for i in `cat hosts.txt`; do ssh $i apt-get --assume-yes install spyder; echo ; done


@bunnydrug Tên máy chủ cho tất cả các máy tính trong LAB của tôi là CSLAB và mật khẩu là E201. vậy tôi nên viết gì trong hosts.txttập tin
Abhishek Kamal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.