나는 다음을 할 수 있기를 원합니다:
- 수동 개입 없이 최단 시간 내에 원하는 대로 구성된 Unix 서버를 시작합니다.
- 정기적으로 스크립트를 실행하여 구성 변경이 완료되었는지 확인하고 잘못된 설정을 수정하도록 제안합니다(예: 업데이트 중에 구성 파일이 교체되는 경우가 있기 때문).
이를 달성하려면 어떤 기술을 선택해야 합니까? (특정 소프트웨어 권장 사항에 대해 논의하기 전에 이를 수행하는 다양한 기본 방법을 이해하시기 바랍니다.)
이것은 대략 제가 수동으로 수행하는 작업입니다(VirtualBox에서 로컬로 또는 VPS에서 원격으로). 대괄호는 예제의 일부일 뿐입니다.
- 설정 포인트(
visudo, adduser
) - 패키지 설치(
sshd, php, nginx, mysql, ufw
) - 설치 스크립트 실행(
mysql_secure_installation
) - 구성 명령 실행(
ufw allow
) - 구성 파일 편집(
php.ini, sshd_config
) - 데이터베이스 채우기(
cat db.sql | mysql
) - nginx 네트워크 파일 채우기(
rsync local remote:
) - nginx 시작
오늘 구성 파일을 확인하는 경우 수동으로 확인하는 것 외에는 좋은 전략이 없어서 정말 어렵습니다.
Puppet 등에 대해 들어본 적이 있지만 솔직히 말해서 그 구문이 약간 겁이 납니다. 기술을 결정하고 이를 배우는 데 시간을 투자하기 전에 나는 옵션을 전체적으로 살펴보는 것을 좋아합니다.
답변1
당신이 찾고있는 것은 Server Farmer (http://serverfarmer.org/) - Ansible과 유사한 아키텍처를 가지고 있지만 더 간단하고 대부분 Bash로 작성되었습니다.
모든 주요 클라우드 플랫폼(AWS, Azure, Google Cloud, Hetzner, Alibaba Cloud, e24cloud, Rackspace 및 OpenStack 기반 하이브리드 클라우드)에서 새 인스턴스를 생성하는 것부터 기본 호스트 구성을 거쳐 애플리케이션 프로그램 배포까지 Linux 인스턴스의 전체 수명주기를 처리합니다. .
유일한 예외는 방화벽의 경우 .NET 대신 iptables를 직접 사용한다는 것입니다 ufw
.
다음 두 저장소를 포크하고 구성을 조정하여 시작할 수 있습니다.
- https://github.com/serverfarmer/serverfarmer- scripts/functions.custom 파일 보기
- https://github.com/serverfarmer/sf-keys- 모든 파일 보기
답변2
다양한 옵션이 있습니다:
-- 동일한 작업을 수행하기 위해 꼭두각시를 사용하고 있습니다.
-- Puppet, Ansible, Saltstack 또는 Chef 등을 사용할 수 있습니다.
-- 도커 컨테이너를 사용하고 도커 파일을 사용하여 필요한 구성을 수행할 수 있습니다.
-- 클라우드에서 사전 구성된 가상 머신(openstack, aws)을 사용하고 필요할 때 이를 가동한 다음 데이터 볼륨을 연결할 수 있습니다.
답변3
Linode와 같은 일부 제공업체에서는 원하는 경우 시스템에서 생성한 모든 VPS에 배포할 수 있는 고유한 이미지를 생성할 수 있습니다. 물론 자신만의 VirtualBox/VMWare 템플릿을 만들어 사용, 복제, 내보내기 및 다른 사람들과 공유할 수도 있습니다.
하지만 고정관념에서 벗어나 생각해보면... 로컬 VM, VPS 또는 베어메탈 하드웨어에서 작동할 수 있는 것 -
가상 머신을 설정하고 각 패키지를 설치한 후 구성하기 전에 패키지의 구성 디렉터리( /etc/apache2
등)에서 git 저장소를 만듭니다. 저장소에 대한 구성, git commit 및 git push를 수행합니다. 필요에 따라 모든 패키지에 대해 이 작업을 반복합니다. 내 VPS에서는 아마도 기본 LAMP 구성을 수행한 다음 dovecot+postfix 등을 수행하여 각 서비스 조합에 자체 git 저장소가 있도록 할 것입니다.
control
그런 다음 해당 파일을 사용하여 가짜 데비안 패키지를 생성하면 equivs-build
일반적으로 설치하는 모든 것(dovecot, postfix, apache 등)에만 의존하는 패키지를 갖게 됩니다. 다시 말하지만, 이를 분할하고 git 저장소가 있는 각 서비스 조합에 대한 종속성을 포함하는 일치하는 패키지 .deb 파일을 생성하는 것을 고려하겠습니다.
그럼 새 기계에...
기본 설치를 수행합니다. 가짜 패키지를 설치하고 종속성(일반 소프트웨어) 가져오기를 적절하게 처리하여 기본 구성으로 설치합니다. 그런 다음 변경된 구성이 포함된 다양한 저장소의 복사본을 풀다운하고 구성 파일을 적절한 위치에 놓습니다.