배포판을 새로 설치하는 데 시간이 많이 걸릴 수 있다는 것은 누구나 아는 사실입니다. 모든 도트 파일을 가지고 있더라도 다양한 패키지와 애플리케이션을 수동으로 설치하고 설정하는 데는 많은 시간이 걸릴 수 있습니다. 최근에 이 프로세스를 자동화하기 위한 도구/모범 사례가 있는지 궁금합니다. 범용 도구가 있습니까? 아니면 일반 쉘 스크립트(다른 배포판/하드웨어 구성용)로 충분합니까?
이것은 링크입니다이 주제에 대한 추가 정보. 작성자의 설치 후 쉘 스크립트에는 약 2000줄의 코드가 포함되어 있습니다.
답변1
여러 가지 방법이 있습니다:
RHEL의 경우: anaconda(?) 설치 정의에서 다른 패키지를 선택합니다.
debian: deb-installer가 원하는 패키지를 추가하도록 합니다.
일부 유형의 구성 관리:
- CF 엔진
- 안시푸르
- 인형
Solaris의 경우 컴퓨터가 처음 부팅할 때 네트워크를 통해 부팅하도록 강제하는 설치 프로그램 데몬이 있으며, 해당 네트워크 부팅 설치에서는 로컬 디스크에 배포한 다음 재부팅합니다.
나중에 머신을 수정해야 하는 경우(서버가 아닌 워크스테이션 네트워크를 생각해 보세요) 설치 서버를 수정하고 머신을 네트워크 부팅하도록 강제합니다.
답변2
나는 보통 내 스크립트도 사용합니다. 물론 curl <my-installer> | bash
Linux 사용자 수만큼 유용한 프로젝트, 스크립트, 심지어 간단한 셸 기능도 많이 있습니다.
좋아요클라우드 초기화그 중 많은 부분이 아마도 다음 번 빠른 서버/개발자 설정에 사용될 것입니다. Ansibleet al. 커뮤니티 또는 개인/회사 모듈식 시스템 구성 설정을 재사용하는 데 도움이 될 수 있습니다. 그러나 관심이 있다면 간단한 "cloud-init" 스크립트도 그 효과를 발휘할 것입니다. [cloud-init가 가져오는 웹 콘텐츠의 유효성 검사를 지원하는지 궁금합니다. 이것이 제가 먼저 고려할 것입니다] .
"프로젝트"로서는 다소 미숙하지만(다른 사람의 스크립트를 조심하려면 자신감 있고 경험이 풍부한 쉘 사용자가 필요함) 내 "apt-get.list"는 다음과 같이 발전했습니다.https://github.com/dotmpe/user-conf. 설치 스크립트 LoC를 마무리하는 데 많은 시간을 보냈습니다. 특정 VM/컨테이너/"가상 애플리케이션" 시스템에 너무 많은 시간을 소비하지 않는다면(또는 Vagrant처럼 그들이 무엇을 할 수 있는지 알아두세요) 자동화된 셸과 최소한의 수동 복사만으로 이를 수행할 수 있습니다. 작업 - 붙여넣기/ssh-copy-id/scp/adduser/usermod/etc. 속도.
결론: 이 모든 것에는 옵션이 있는 일부 구조가 필요합니다. 아마도 도트 파일의 저장소나 서버일 수도 있지만 키와 토큰, 네트워킹에 대한 몇 가지 아이디어도 필요할 수도 있고 다른 사용자뿐만 아니라 구성 요소 보기/추상화에 관심이 필요할 수도 있습니다. 저는 아직도 cURL/GIT/Bash를 많이 사용하고 있으며 cloud-init는 이를 매우 잘 수행합니다. Ansible 모듈/역할도 조사하고 있지만 중요한 점은 어떤 구성 시스템 설정을 선호하는지 확인해야 한다는 것입니다. 프록시 또는 SSH 등.