운영 체제: OpenSuSE 42.3 64비트
메일 서버를 구성하는 데 오랜 시간을 보냈고, 호스트를 다시 설치해야 할 경우 쉽게 재배포할 수 있도록 어떤 방식으로든 연결하고 싶었습니다.
예를 들어, 바이러스로 인해 데이터가 지워지거나 하드웨어 오류가 발생합니다.
dovecot, clamav, dkim, dovecot, rspam, spam Assassin, openssl 등으로 postfix를 구성했습니다.
시간이 지남에 따라 계속해서 조정해 나가기를 바랍니다.
이를 위해서는 파일 시스템 권한, 사용자 추가, 키 생성 등에 대한 복잡한 변경이 필요합니다.
lxc, docker 등과 같은 컨테이너를 고려했습니다. 이것이 최선의 선택입니까? 어느 것?
새 컴퓨터에 정확히 동일한 구성을 쉽게 다시 설치할 수 있도록 이러한 모든 설정 등을 수집하려면 어떻게 해야 합니까? 현재 컴퓨터는 아직 정리되지 않은 오래된 파일과 항목으로 가득 차 부풀어 올랐습니다. 새 VM을 가동하고 현재 콘텐츠를 모두 마이그레이션하고 이전 VM을 삭제하고 싶습니다.
컨테이너가 답이라면 어떻게 모든 변경 사항을 수집하여 컨테이너에 넣을 수 있나요?
포함하면 설정을 더 쉽게 복제할 수 있는 것 같습니다.
답변1
예를 들어 어떤 형태의 구성 관리를 원하는 것 같습니다.소금 더미 (가능한주인 없는또는안시푸르아니면 다양한 다른 것 중 하나.
이러한 도구는 숙달하는 데 다소 시간이 걸릴 수 있지만 직면한 정확한 문제, 즉 새 기계를 사양에 맞게 구성하는 방법을 정확하게 해결합니다. 이러한 도구를 사용하여 구성 및 설정을 git 저장소 어딘가에 넣은 다음 새 시스템이나 가상 시스템에서 솔트 또는 앤서블 설치를 부트스트랩하고 저장소 작업의 규칙에 따라 나머지 작업을 수행하도록 합니다.
Ansible은 여러분이 찾고 있는 것일 수 있습니다. Ansible을 사용하면 구성 파일과 명령의 "플레이북"을 작성하여 SSH를 통해 원격으로 실행하고 실행할 수 있습니다. 따라서 새 서버를 생성할 때 간단히 Ansible 플레이북을 실행하여 완전히 구성할 수 있습니다.
나는 saltstack에 대한 더 많은 경험을 갖고 있으므로 소유자가 없는 설정에서 이를 사용하는 더 자세한 예를 제공할 수 있습니다. 두 개의 파일이 포함된 저장소에서:
wheel.sls
sudo가 설치되어 있고 비밀번호 시간 초과가 비활성화되어 있는지 확인하십시오.
sudo:
pkg.installed
/etc/sudoers.d/wheel:
file.managed:
- user: root
- group: root
- mode: 440
- contents: |
%wheel ALL=(ALL) ALL
Defaults passwd_timeout=0
top.sls
- 어떤 시스템에서 어떤 상태를 실행할지 결정하는 데 사용할 솔트(이 경우 모든 것이 휠.sls를 실행함 )
base:
'*':
- wheel
그런 다음 대상 VM/서버에 salt-minion을 설치하고 다음과 유사한 구성을 제공하십시오./etc/salt/minion
file_client: local
fileserver_backend:
- git
gitfs_remotes:
- [email protected]:user/repo.git:
- pubkey: /etc/salt/ssh/github.pub
- privkey: /etc/salt/ssh/github
github url을 저장소의 URL로 바꾸고 공개/개인 키를 저장소에 액세스할 수 있는 키로 바꿉니다. 물론 이를 확장하여 더 많은 작업을 수행한 다음 단일 패키지를 설치하고 보다 완전한 예제 체크아웃을 위해 단일 파일을 작성할 수 있습니다.이 창고여기에는 내 설정의 공개 부분이 포함되어 있습니다(물론 대부분의 구성은 비공개 저장소에 있지만 몇 가지 아이디어를 제공하기에 충분합니다).
더 복잡한 설정의 경우 전용 마스터를 실행하거나 SSH를 통해 솔트를 실행할 수도 있습니다.