구성 관리

각 클라이언트를 수동으로 구성하는 대신에 구성 파일 및 채널을 사용해 클라이언트에 대한 구성을 관리할 수 있습니다.

다음 기능 중 일부는 기존 클라이언트에서만 사용할 수 있습니다. Salt 클라이언트에서 지원되는 기능은 아래 테이블을 참조하십시오.

구성 파라미터는 스크립트되고 구성 파일에 저장됩니다. SUSE Manager Web UI를 사용해 직접 구성 파일을 작성할 수 있습니다. 또는 다른 위치에 있는 파일을 업로드하거나 그러한 파일에 링크할 수 있습니다.

구성 파일은 중앙에서 관리하거나 로컬에서 관리할 수 있습니다. 중앙에서 관리하는 구성 파일은 전역 구성 채널이 제공하며 SUSE Manager 서버에 가입한 모든 클라이언트에 적용할 수 있습니다. 로컬로 관리하는 구성 파일은 중앙에서 관리하는 구성 설정을 무효화하는 데 사용되며 구성 관리 권한이 없지만 자신이 관리하는 클라이언트를 변경해야 하는 SUSE Manager 사용자에게 특히 유용합니다.

구성 채널은 구성 파일을 체계적으로 정리하는 데 사용됩니다. 클라이언트를 구성 채널에 가입하고 필요에 따라 구성 파일을 배포할 수 있습니다.

구성 파일은 버전이 관리되므로 구성 설정을 추가하고, 이를 클라이언트에서 테스트하고, 필요에 따라 이전 리비전으로 롤백할 수 있습니다. 구성 채널을 생성했다면 다양한 구성 파일 간에, 그리고 동일한 구성 파일의 리비전 간에 비교를 수행할 수도 있습니다.

구성 파일은 중앙에서 관리하거나 로컬에서 관리할 수 있습니다. 중앙에서 관리하는 구성 파일은 전역 구성 채널이 제공합니다. 로컬에서 관리하는 구성 파일은 생성되거나 SUSE Manager로 직접 업로드됩니다.

Salt 클라이언트와 기존 클라이언트에 사용할 수 있는 구성 관리 기능은 서로 다릅니다. 아래 표에는 서로 다른 클라이언트 유형에서 지원되는 기능이 표시되어 있습니다.

이 표의 아이콘에는 다음과 같은 의미가 있습니다.

  • 기능은 SUSE에서 지원합니다.

  • 기능은 SUSE에서 지원하지 않습니다.

  • 기능은 현재 지원 고려 중이며, 이후에 지원될 수도 있고 지원되지 않을 수도 있습니다.

Table 1. 지원되는 구성 관리 기능
기능 Salt 기존

전역 구성 채널

파일 배포

파일 비교

로컬에서 관리하는 파일

(Salt 기능 포함)

샌드박스 파일

Highstate 적용

클라이언트에서 파일 임포트

Jinja 템플릿

구성 매크로

, Salt 기능(입자, 열 데이터 등) 포함

1. 구성 관리를 위한 기존 클라이언트 준비

구성 관리를 사용하려면 기존 클라이언트에 몇 가지 추가 준비 작업이 필요합니다. AutoYaST 또는 Kickstart로 기존 클라이언트를 설치했다면 아마도 적절한 패키지가 이미 있을 것입니다. 다른 기존 클라이언트의 경우 클라이언트 운영 체제에 대해 관련 도구 하위 채널을 설치했는지 확인하십시오. 소프트웨어 채널에 대한 자세한 내용은 소프트웨어 채널를 참조하십시오.

필요한 패키지는 다음과 같습니다.

  • mgr-cfg: 모든 mgr-cfg-* 패키지에 필요한 기본 라이브러리 및 함수

  • mgr-cfg-actions: SUSE Manager를 사용하여 예약된 구성 작업을 실행하기 위해 필요합니다.

  • mgr-cfg-client: 구성 관리 시스템의 클라이언트 기능에 명령줄 인터페이스 제공

  • mgr-cfg-management: SUSE Manager 구성을 관리할 수 있는 명령줄 인터페이스 제공

시스템  활성화 키로 이동하여 부트스트랩 중에 사용하려는 활성화 키를 클릭하고 구성 파일 배포 옵션 확인란을 선택하여 부트스트랩 프로세스 중에 이 패키지를 설치할 수 있습니다. 활성화 키에 대한 자세한 내용은 활성화 키를 참조하십시오.

2. 구성 채널 생성

새로운 중앙 구성 채널을 생성하려면:

절차: 중앙 구성 채널 생성
  1. SUSE Manager Web UI에서 구성  채널로 이동하여 구성 채널 생성을 클릭합니다.

  2. 채널의 이름을 입력합니다.

  3. 채널의 레이블을 입력합니다. 이 필드는 글자, 숫자, 하이픈(-), 밑줄(_)만 포함해야 합니다.

  4. 다른 채널과 구별할 수 있게 해주는 채널 설명을 입력합니다.

  5. 구성 채널 생성을 클릭하여 새 채널을 생성합니다.

구성 채널을 사용해 Salt 클라이언트에서 Salt 상태를 관리할 수도 있습니다.

절차: Salt 상태 채널 생성
  1. SUSE Manager Web UI에서 구성  채널로 이동하여 상태 채널 생성을 클릭합니다.

  2. 채널의 이름을 입력합니다.

  3. 채널의 레이블을 입력합니다. 이 필드는 글자, 숫자, 하이픈(-), 밑줄(_)만 포함해야 합니다.

  4. 다른 채널과 구별할 수 있게 해주는 채널 설명을 입력합니다.

  5. init.sls 파일에 대해 SLS 컨텐트를 입력합니다.

  6. 구성 채널 생성을 클릭하여 새 채널을 생성합니다.

3. 구성 파일, 디렉토리 또는 심볼 링크 추가

구성 채널을 생성했으면 이제 구성 파일, 디렉토리 또는 심볼 링크를 추가할 수 있습니다.

절차: 구성 파일, 디렉토리 또는 심볼 링크 추가
  1. SUSE Manager Web UI에서 구성  채널로 이동하여 구성 파일을 추가하려는 구성 채널의 이름을 클릭한 후, 파일 추가  파일 생성 하위 탭으로 이동합니다.

  2. 파일 형식 필드에서 텍스트 파일, 디렉토리, 심볼 링크 중 생성하려는 것을 선택합니다.

  3. 파일 이름/경로 필드에 파일을 배포해야 하는 위치의 절대 경로를 입력합니다.

  4. 심볼 링크를 생성하려면 심볼 링크 대상 파일 이름/경로 필드에 대상 파일 및 경로를 입력하십시오.

  5. 소유권 필드에서 파일의 사용자 이름그룹 이름을 입력하고 파일 권한 모드를 입력합니다.

  6. 클라이언트가 SELinux를 활성화한 경우 SELinux 컨텍스트를 구성하여 필수 파일 속성(예: 사용자, 역할, 파일 형식)을 활성화할 수 있습니다.

  7. 구성 파일에 매크로가 포함된 경우 매크로의 시작과 끝을 표시하는 기호를 입력하십시오.

  8. 파일 내용 텍스트 상자에 구성 파일 내용을 입력합니다. 이때 스크립트 드롭다운 상자를 사용해 적절할 스크립팅 언어를 선택합니다.

  9. 구성 파일 생성을 클릭합니다.

4. 클라이언트를 구성 채널에 가입

시스템  시스템 목록으로 이동하여 가입하려는 클라이언트를 선택하고 구성 탭으로 이동하여 개별 클라이언트를 구성 채널에 가입할 수 있습니다. 여러 클라이언트를 구성 채널에 가입하려면 시스템 세트 관리자(SSM)를 사용하면 됩니다.

절차: 여러 클라이언트를 구성 채널에 가입
  1. SUSE Manager Web UI에서 시스템  시스템 목록으로 이동하여 작업하려는 클라이언트를 선택합니다.

  2. 시스템  시스템 세트 관리자로 이동하여 구성  채널에 가입 하위 탭에서 사용 가능한 구성 채널의 목록을 확인합니다.

  3. 옵션: 현재 가입된 시스템 열의 숫자를 클릭하여 현재 어떤 클라이언트가 구성 채널에 가입되어 있는지 확인합니다.

  4. 가입하려는 구성 채널을 확인하고 계속을 클릭합니다.

  5. 위 및 아래 방향 화살표를 사용해 구성 채널의 순위를 지정합니다. 설정이 구성 채널 간에 서로 충돌하는 경우 목록 상단에 더 가까이 있는 채널이 우선합니다.

  6. 선택한 클라이언트에 채널이 적용되는 방식을 결정합니다. 최하위 우선순위로 가입을 클릭하여 새 채널을 현재 가입된 채널보다 낮은 우선순위로 추가합니다. 최상위 우선순위로 가입을 클릭하여 새 채널을 현재 가입된 채널보다 높은 우선순위로 추가합니다. 기존 구독 대체를 클릭하여 기존 채널을 제거하고 새 채널로 교체합니다.

  7. 구독 적용을 클릭합니다.

새 구성 채널 우선순위가 기존 채널과 충돌하는 경우 중복 채널이 제거되고 새로운 우선순위에 따라 교체됩니다. 작업에 의해 클라이언트의 구성 우선순위가 변경되는 경우 Web UI는 작업을 진행하기 전에 이러한 변경을 확인하도록 사용자에게 요구합니다.

5. 구성 파일 비교

또한 시스템 세트 관리자(SSM)를 사용해 클라이언트에 배포된 구성 파일을 SUSE Manager 서버에 저장된 구성 파일과 비교할 수 있습니다.

절차: 구성 파일 비교
  1. SUSE Manager Web UI에서 시스템  시스템 목록으로 이동하여 비교하려는 구성 파일에 가입된 클라이언트를 선택합니다.

  2. 시스템  시스템 세트 관리자로 이동하여 구성  파일 비교 하위 탭에서 사용 가능한 구성 채널의 목록으로 이동합니다.

  3. 옵션: 시스템 열의 숫자를 클릭하여 현재 어떤 클라이언트가 구성 파일에 가입되어 있는지 확인합니다.

  4. 비교할 구성 파일을 확인하고 파일 비교 작업 일정 잡기를 클릭합니다.

6. Salt 클라이언트에서 Jinja 템플릿

Salt 클라이언트에서 Jinja 템플릿을 사용할 수 있습니다. Jinja는 열 또는 입자에서 변수를 제공합니다. 이러한 변수는 구성 파일 또는 Salt 상태에서 사용할 수 있습니다.

자세한 내용은 다음 예제와 함께 https://docs.saltproject.io/salt/user-guide/en/latest/topics/jinja.html에서 확인할 수 있습니다.

{% if grains.os_family == 'RedHat' %}
  {% set dns_cfg = '/etc/named.conf' %}
{% elif grains.os_family == 'Debian' %}
  {% set dns_cfg = '/etc/bind/named.conf' %}
{% else %}
  {% set dns_cfg = '/etc/named.conf' %}
{% endif %}
dns_conf:
  file.managed:
    - name: {{ dns_cfg }}
    - source: salt://dns/files/named.conf

7. 기존 클라이언트의 구성 파일 매크로

1개의 파일을 저장하고 동일한 구성을 공유할 수 있다는 점이 유용하지만, 경우에 따라 동일한 구성 파일의 여러 변형이 필요하거나 호스트 이름 및 MAC 주소와 같은 시스템별 세부 정보만 다른 구성 파일이 필요할 수 있습니다. 이러한 경우에는 구성 파일 내에서 매크로 또는 변수를 사용할 수 있습니다. 이 작업을 통해 변형이 수백 또는 수천 개인 1개의 파일을 업로드 및 배포할 수 있습니다. 사용자 정의 시스템 정보를 위한 변수뿐만 아니라 다음 표준 매크로도 지원됩니다.

rhn.system.sid
rhn.system.profile_name
rhn.system.description
rhn.system.hostname
rhn.system.ip_address
rhn.system.custom_info(key_name)
rhn.system.net_interface.ip_address(eth_device)
rhn.system.net_interface.netmask(eth_device)
rhn.system.net_interface.broadcast(eth_device)
rhn.system.net_interface.hardware_address(eth_device)
rhn.system.net_interface.driver_module(eth_device)

이 기능을 사용하려면 구성 채널 정보 페이지를 통해 구성 파일을 업로드하거나 생성합니다. 그리고 구성 파일 정보 페이지를 열고 선택한 지원 매크로를 포함합니다. 변수를 오프셋하기 위해 사용되는 구분 기호가 매크로 시작 구분 기호매크로 끝 구분 기호 필드에 설정된 구분 기호와 일치하고 파일의 다른 문자와 충돌하지 않는지 확인합니다. 구분 기호의 길이는 2자이며 퍼센트(%) 기호를 포함하지 않는 것이 좋습니다.

예를 들어, IP 주소와 호스트 이름만 다른 모든 서버에 적용할 수 있는 파일이 있을 수 있습니다. 각 서버에 대해 별도의 구성 파일을 관리하는 대신 IP 주소 및 호스트 이름 매크로가 포함된 1개의 파일(예: server.conf)을 생성할 수 있습니다.

hostname={| rhn.system.hostname |}
ip_address={| rhn.system.net_interface.ip_address(eth0) |}

파일이 SUSE Manager Web UI 또는 SUSE Manager 구성 클라이언트(mgrcfg-client)의 명령줄에서 예약된 작업을 통해 개별 시스템에 전달되는 경우 변수는 SUSE Manager의 시스템 프로파일에 기록된 시스템의 호스트 이름 및 IP 주소로 대체됩니다. 이 예에서 배포된 버전은 다음과 같습니다.

hostname=test.example.domain.com
ip_address=177.18.54.7

사용자 정의 시스템 정보를 수집하려면 사용자 정의 정보 매크로(rhn.system.custom_info)에 키 레이블을 삽입합니다. 예를 들어, "asset"이라는 레이블의 키를 개발한 경우 구성 파일의 사용자 정의 정보 매크로에 추가하여 이 키를 포함한 모든 시스템에서 값을 대체할 수 있습니다. 매크로는 다음과 같습니다.

asset={@ rhn.system.custom_info(asset) @}

해당 키에 대한 값을 포함한 시스템으로 파일이 배포되면 매크로가 번역되어 다음과 유사한 문자열이 제공됩니다.

asset=Example#456

예를 들어, 오류를 방지하기 위해 기본값이 필요한 경우 기본값을 포함하려면 다음과 같이 사용자 정의 정보 매크로에 추가할 수 있습니다.

asset={@ rhn.system.custom_info(asset) = 'Asset #' @}

이 기본값은 해당 값을 포함한 모든 시스템의 값으로 덮어쓰기됩니다.

SUSE Manager 구성 관리자(mgrcfg-manager)는 SUSE Manager 클라이언트 시스템에서 시스템 관리를 지원하기 위해 사용할 수 있습니다. 이 도구는 시스템 기반이 아니므로 파일을 변환하거나 수정하지 않습니다. mgrcfg-manager 명령은 시스템 설정과 관계가 없습니다. 바이너리 파일은 보간할 수 없습니다.