웹사이트 검색

Ubuntu 17.04에서 Chef를 설치하고 구성하는 방법


이 페이지에서

  1. 기본 시스템 업데이트
  2. 호스트 이름 업데이트\n
  3. NTP 설정
  4. Chef 다운로드 및 설치
  5. 셰프 구성\n
  6. 웹 관리 콘솔 설치
  7. 관리자 및 조직 만들기
  8. 웹 콘솔 액세스
  9. 옵션 플러그인 설치\n
  10. 결론

Chef는 무료 오픈 소스 구성 관리 도구입니다. Ruby와 Erlang으로 작성되었습니다. Chef는 AWS, OpenStack 또는 RackSpace 등과 같은 클라우드 기반 플랫폼과 쉽게 통합하여 서버를 자동으로 생성하고 관리할 수 있습니다. 조직이 성장하고 노드 수가 증가하면 시스템 관리자가 각 노드를 혼자 관리하기가 어려워집니다. 이 시나리오에서는 Chef가 구조하러 옵니다. Chef 에코 시스템은 Chef 서버, Chef 워크스테이션 및 Chef 노드의 세 부분으로 구성됩니다. 이 DevOps 도구를 사용하면 시스템 관리자가 중앙 위치에서 여러 노드를 관리할 수 있습니다.

이 튜토리얼에서는 최신 버전의 Chef를 Ubuntu 17.04(Zesty Zapus)에 설치합니다.

전제 조건

  • 최소 Ubuntu 17.04 서버.
  • 루트 권한. 이 가이드는 루트 사용자로 작성되었으므로 sudo 사용자로 로그인한 경우 sudo -i를 실행하십시오.\n
  • 서버를 가리키는 도메인 이름.

기본 시스템 업데이트

패키지를 설치하기 전에 다음 명령을 사용하여 패키지와 리포지토리를 업데이트하는 것이 좋습니다.

apt update && apt -y upgrade

시스템이 업데이트되면 계속 진행하십시오.

호스트 이름 업데이트

Chef는 서버에 설정된 확인 가능한 호스트 이름이 필요합니다. 호스트 이름은 FQDN 또는 정규화된 도메인 이름(예: chef.yourdomain.com)이어야 합니다. 서버에서 호스트 이름을 설정하려면 다음 명령을 실행하십시오.

hostname 'chef.yourdomain.com'

chef.yourdomain.com을 실제 도메인 이름으로 바꿉니다. 또한 /etc/hostname 파일에서 호스트 이름을 업데이트합니다.

echo "chef.yourdomain.com" | tee /etc/hostname

다음 명령을 실행하여 /etc/hosts 파일에 호스트 이름의 IP 주소를 추가합니다.

echo "192.168.1.1 chef.yourdomain.com" >> /etc/hosts

192.168.1.1을 실제 공용 IP 주소로 바꿉니다.

NTP 설정

서버의 시계를 동기화하려면 Network Time Protocol 서버의 NTP가 필요합니다. Chef는 시계 변경에 매우 민감하므로 NTP를 실행하려면 연결된 시스템이 필요합니다. NTP는 UDP의 포트 123에서 실행됩니다. 서버에 NTP를 설치하려면 다음 명령을 실행하십시오.

apt install ntp

다음 명령을 실행하여 NTP를 시작합니다.

systemctl start ntp

부팅 시 NTP가 자동으로 시작되도록 하려면 다음 명령을 실행합니다.

systemctl enable ntp

다음 명령을 실행하여 NTP가 시계를 동기화했는지 확인할 수 있습니다.

ntpq -p

다음 출력이 표시되어야 합니다.

:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000
#hydrogen.consta 129.6.15.29      2 u   34   64   17  174.427   -9.145   0.751
#helium.constant 128.59.0.245     2 u   30   64   17  176.812   -8.253   0.726
#lithium.constan 18.26.4.105      2 u   33   64   17  175.435    0.357   0.684
#ntppublic.uzh.c 130.60.159.8     3 u   24   64   17  256.712    8.982   0.927
+x.ns.gin.ntt.ne 249.224.99.213   2 u   25   64   17    0.872   -1.636   0.805
-borris.netwurx. 144.92.9.22      2 u   22   64   17  163.284    0.848   1.141
-ns1.do.steersne 195.66.241.3     2 u   23   64   17  222.882   -3.528   0.965
-sircabirus.von- 36.224.68.195    2 u   28   64   17  266.005    3.502   1.173
*chobi.paina.net 131.113.192.40   2 u   26   64   17    1.280   -1.852   1.046
#213.251.53.11   193.62.22.74     2 u   27   64   17  246.940    9.920   1.405
-flightplandatab 210.240.96.206   2 u   27   64   17  258.052   -1.338   2.789
-time.platformni 118.211.218.186  2 u   27   64   17    1.592    3.394   1.127

셰프 다운로드 및 설치

다음 명령을 실행하여 Ubuntu용 Chef Server 패키지를 다운로드합니다.

wget https://packages.chef.io/files/stable/chef-server/12.15.8/ubuntu/16.04/chef-server-core_12.15.8-1_amd64.deb

항상 Chef 다운로드 페이지를 방문하여 최신 버전의 Chef 링크를 찾을 수 있습니다. 이제 다음 명령을 실행하여 패키지를 설치하십시오.

dpkg -i chef-server-*.deb

Chef가 이제 시스템에 설치되었습니다. 서버를 사용하기 전에 구성해야 합니다.

셰프 구성

이제 다음 명령을 실행하여 Chef가 작동하는 데 필요한 모든 서비스를 시작할 수 있습니다.

chef-server-ctl reconfigure

위의 명령은 Chef 서버의 모든 구성 요소를 설치하고 구성하므로 완료하는 데 몇 분 정도 걸립니다. 성공적으로 완료되면 마지막에 다음 메시지가 표시됩니다.

Chef Client finished, 491/1096 resources updated in 03 minutes 13 seconds
Chef Server Reconfigured!

다음을 실행하여 서비스가 성공적으로 시작되었는지 확인할 수 있습니다.

chef-server-ctl status

다음 출력이 표시되어야 합니다.

:~# chef-server-ctl status
run: bookshelf: (pid 6030) 87s; run: log: (pid 6047) 86s
run: nginx: (pid 5859) 91s; run: log: (pid 6387) 82s
run: oc_bifrost: (pid 5766) 92s; run: log: (pid 5842) 92s
run: oc_id: (pid 5849) 91s; run: log: (pid 5854) 91s
run: opscode-erchef: (pid 6244) 84s; run: log: (pid 6108) 85s
run: opscode-expander: (pid 5926) 88s; run: log: (pid 6010) 87s
run: opscode-solr4: (pid 5895) 89s; run: log: (pid 5912) 89s
run: postgresql: (pid 5718) 93s; run: log: (pid 5745) 92s
run: rabbitmq: (pid 5239) 101s; run: log: (pid 5099) 105s
run: redis_lb: (pid 5036) 121s; run: log: (pid 6361) 83s

웹 관리 콘솔 설치

Chef는 관리자 Chef 서버에 웹 기반 그래픽 사용자 인터페이스를 제공합니다. GUI 기반 콘솔을 사용하여 데이터 백, 속성, 실행 목록, 역할, 환경 및 쿡북을 관리할 수 있습니다.

Chef Manage를 설치하려면 다음 명령을 실행합니다.

chef-server-ctl install chef-manage

다음을 입력하여 Chef 서버를 다시 구성하십시오.

chef-server-ctl reconfigure

마지막으로 다음 명령을 실행하여 Chef Manage를 구성합니다.

chef-manage-ctl reconfigure

위의 명령은 라이센스 계약에 동의하도록 요청합니다. 실행 중에 라이선스 계약에 동의하거나 다음 명령을 실행하여 라이선스를 자동으로 수락하도록 선택할 수 있습니다.

chef-manage-ctl reconfigure --accept-license

관리자 및 조직 만들기

로그인하여 관리 콘솔을 사용하려면 먼저 사용자 및 조직을 생성해야 합니다. 사용자 및 조직 생성 중에 워크스테이션 및 클라이언트에 연결하는 데 필요한 RSA 개인 키를 자동으로 생성합니다. 키를 저장할 새 .chef 디렉터리를 만들 수 있습니다. 명령을 실행하여 개인 키를 저장할 새 디렉터리를 만듭니다.

mkdir ~/.chef

이제 다음 명령을 실행하여 새 관리자를 만듭니다.

chef-server-ctl user-create admin Chef Administrator  StrongPassword -f ~/.chef/admin.pem

admin을 선호하는 사용자 이름으로, Chef를 이름으로, Administrator를 성으로, [email 를 이메일로 바꾸고 admin.pem은 사용자 이름을 따라야 합니다. StrongPassword를 매우 강력한 암호로 바꾸십시오.

이제 다음 명령을 실행하여 새 조직을 만듭니다.

chef-server-ctl org-create my_org 'My Organization' --association_user admin -f ~/.chef/my_org.pem

my_org를 조직의 짧은 이름으로, My Organization을 조직의 전체 이름으로, admin을 생성한 관리 사용자로 바꿉니다.

웹 콘솔에 액세스

이제 웹 콘솔에 액세스하는 데 필요한 모든 것이 설치 및 구성되었으므로 원하는 브라우저를 통해 다음 URL을 검색하여 콘솔에 액세스할 수 있습니다.

http://Your-Server-IP

도메인을 구성한 경우 서버 IP 대신 도메인 이름을 사용할 수도 있습니다. 다음 로그인 화면이 표시되어야 합니다.

생성한 사용자 이름과 비밀번호를 사용하여 로그인합니다. 성공적으로 로그인하면 다음 인터페이스가 표시됩니다.

선택적 플러그인 설치

Chef 서버에서 관리하는 모든 Chef 클라이언트에서 발생하는 프로세스에 대해 알아보기 위해 보고를 활성화할 수 있습니다. Chef 관리 콘솔을 통해 보고를 실행하여 웹 콘솔에서 보고서를 볼 수 있습니다. 보고서는 전체 조직에 대해 생성될 수 있으며 특정 노드에 대해 생성될 수 있습니다. 보고를 설치하려면 다음 명령을 실행하십시오.

chef-server-ctl install opscode-reporting

다음을 실행하여 Chef 서버를 재구성하십시오.

chef-server-ctl reconfigure

다음을 실행하여 보고 모듈을 구성합니다.

opscode-reporting-ctl reconfigure

다음을 실행하여 보고 플러그인이 설치되고 올바르게 작동하는지 확인할 수 있습니다.

opscode-reporting-ctl test

비슷한 방식으로 Chef Push 작업을 설치하여 작업을 실행할 수 있습니다. Chef 푸시 작업을 사용하면 Chef 서버가 Chef-클라이언트 실행과 독립적으로 노드에 대해 작업을 실행할 수 있습니다. Chef 푸시 작업은 Chef 서버 API 및 Ruby 클라이언트를 사용하여 Chef 서버에 대한 모든 연결을 시작합니다. 다음 명령을 실행하여 밀어넣기 작업을 설치합니다.

chef-server-ctl install opscode-push-jobs-server

다음을 실행하여 Chef 서버를 재구성하십시오.

chef-server-ctl reconfigure

다음을 실행하여 푸시 작업 모듈을 구성합니다.

opscode-push-jobs-server-ctl reconfigure

결론

이 튜토리얼에서는 최신 버전의 Ubuntu에 최신 버전의 Chef를 설치하는 방법을 배웠습니다. Chef 웹 사이트를 방문하면 Chef에 대해 자세히 알아볼 수 있습니다.