내 업무에서는 여러 SSH 홉을 통해 클라이언트 PC의 Centos 컴파일 소프트웨어 버전을 자주 업데이트해야 합니다. 최근에는 수동으로 관리할 수 없는 수준까지 이르렀습니다. 이 프로세스를 자동화하려면 어떤 소프트웨어를 사용할 수 있습니까?
나에게 필요한 것은 업데이트된 파일을 받아 scp/ssh를 통해 전송하고 원격 호스트에서 자동으로 압축 풀기/교체 스크립트를 실행할 수 있는 것입니다. 그러한 소프트웨어가 있습니까? 아니면 간단한 bash 스크립트를 통해 작성할 수 있습니까?
이상적으로 내가 원하는 것은 (내 컴퓨터에서) "helperappname 호스트 이름 패키지 파일"을 작성하고 도우미 응용 프로그램이 배포를 수행하도록 하는 것입니다. 또는 그런 것.
답변1
모든 대상 컴퓨터가 CentOS인 경우 애플리케이션을 RPM으로 번들링하는 것이 좋습니다. 이 작업을 수행하고 나면 최신 버전을 자동으로 쉽게 번들링할 수 있으며 배포는 모든 대상 서버에 액세스할 수 있는 저장소를 설정하고(어려울 수 있음) "yum update" 또는 "yum install"을 실행하는 것만큼 간단해집니다. 소프트웨어를 업데이트/설치하려는 각 클라이언트에서 명령을 실행하면 시간 투자가 약간 크겠지만(빠르게 배우면 약 1~2주 정도) 보상을 받을 수 있습니다. 설치 시간을 30초 미만으로 줄이면 엄청날 것입니다. 각 대상 머신에서.
답변2
이는 이러한 작업에 사용할 수 있는 매우 밀집된 도구 영역입니다. 언급한 대로 기본적으로 간단한 쉘 스크립트를 사용하여 cfengine 또는 puppet과 같은 구성 관리 도구를 사용하여 자신만의 것을 구축할 수 있습니다.
나는 간단하게 시작하여 나만의 쉘 스크립트를 작성한 다음 이를 수행하기 위해 전용 시스템 중 하나로 업그레이드하는 경향이 있습니다.
이렇게 하면 Puppet과 같은 설정을 포기하기 전에 요구 사항을 잘 이해할 수 있습니다.
Wikipedia에는 이러한 도구의 좋은 목록이 있습니다.오픈 소스 구성 관리 소프트웨어 비교.
이것들은 제가 과거에 사용했던 도구들이고 잘 작동했지만 설정하고 실행하는 데에는 다양한 정도의 어려움이 있었습니다.
위에서 언급한 것 중에서 나는 대부분을 사용해 보았고 Capistrano 및/또는 Chef가 아마도 시작하기에 좋을 것이라고 말할 수 있습니다. 하지만 앞서 말했듯이 먼저 쉘 스크립트 접근 방식을 사용한 다음 장기적인 솔루션 중 하나를 살펴보기 시작할 것입니다.
더 가벼운 무게 옵션
위의 옵션이 여전히 너무 무거우면 다음과 같은 도구도 있습니다.회전 속도. 본질적으로 Python의 프런트 엔드이지만 rsync
텍스트 ssh
파일에 구성된 서버 집합에서 작업할 수 있습니다. myrpm
다음 명령이 제공됩니다.
- 장소 열쇠
- 배포 키
- 품질 동기화
- 일괄 SSH 원격 실행
- 일괄 SSH 원격 cmd
이를 통해 ssh
개별 호스트에 키를 푸시하고, 파일을 푸시하고, 서버에 대한 원격 명령을 시작하고, 와 같은 일회성 명령을 시작할 수 있습니다 yum -y update
.