Red Hat Training
A Red Hat training course is available for RHEL 8
30.2. kernel_settings 역할을 사용하여 선택한 커널 매개변수 적용
다음 단계에 따라 Ansible 플레이북을 준비하고 적용하여 여러 관리 운영 체제에 미치는 영향을 유지하여 커널 매개 변수를 원격으로 구성합니다.
사전 요구 사항
-
root
권한이 있습니다. -
RHEL 서브스크립션에서 권한을 부여하면 컨트롤 시스템에
ansible-core
및rhel-system-roles
패키지를 설치했습니다. - 관리 호스트의 인벤토리는 제어 시스템에 있으며 Ansible은 연결할 수 있습니다.
RHEL 8.0 - 8.5에서는 Ansible을 기반으로 자동화를 위해 Ansible Engine 2.9가 포함된 별도의 Ansible 리포지토리에 대한 액세스 권한을 제공했습니다. Ansible Engine에는 ansible ,
, ansible
-playbookdocker
및 podman
과 같은 커넥터, 플러그인 및 모듈 전체와 같은 명령줄 유틸리티가 포함되어 있습니다. Ansible Engine을 확보하고 설치하는 방법에 대한 자세한 내용은 How do I download and Install Red Hat Ansible Engine 을 참조하십시오.
RHEL 8.6 및 9.0에서는 Ansible Core(Ansible 명령줄 유틸리티, 명령 및 소규모 Ansible 플러그인 세트가 포함된 Ansible 코어
RPM 제공)를 도입했습니다. AppStream 리포지토리는 제한된 지원 범위가 있는 ansible-core
를 제공합니다. RHEL 9 AppStream에 포함된 ansible-core 패키지에 대한 지원 범위를 검토하여 자세한 내용을 확인할 수 있습니다.
절차
필요한 경우 그림 목적으로
인벤토리
파일을 검토합니다.# cat /home/jdoe/<ansible_project_name>/inventory [testingservers] pdoe@192.168.122.98 fdoe@192.168.122.226 [db-servers] db1.example.com db2.example.com [webservers] web1.example.com web2.example.com 192.0.2.42
파일은
[testingservers]
그룹 및 기타 그룹을 정의합니다. 이를 통해 특정 시스템 집합에 대해 Ansible을 더 효과적으로 실행할 수 있습니다.구성 파일을 생성하여 Ansible 작업에 대한 기본값 및 권한 에스컬레이션을 설정합니다.
새 YAML 파일을 생성하고 텍스트 편집기에서 엽니다. 예를 들면 다음과 같습니다.
# vi /home/jdoe/<ansible_project_name>/ansible.cfg
파일에 다음 내용을 삽입합니다.
[defaults] inventory = ./inventory [privilege_escalation] become = true become_method = sudo become_user = root become_ask_pass = true
[defaults]
섹션은 관리 호스트의 인벤토리 파일의 경로를 지정합니다.[privilege_escalation]
섹션은 지정된 관리 호스트에서 사용자 권한을root로
전환하도록 정의합니다. 커널 매개 변수를 성공적으로 구성하려면 이 작업이 필요합니다. Ansible 플레이북이 실행되면 사용자 암호를 묻는 메시지가 표시됩니다. 사용자는 관리 호스트에 연결한 후sudo
를 통해 자동으로root
로 전환합니다.
kernel_settings
역할을 사용하는 Ansible 플레이북을 생성합니다.새 YAML 파일을 생성하고 텍스트 편집기에서 엽니다. 예를 들면 다음과 같습니다.
# vi /home/jdoe/<ansible_project_name>/kernel-roles.yml
이 파일은 플레이북을 나타내며 일반적으로
인벤토리
파일에서 선택한 특정 관리 호스트에 대해 실행되는 플레이 라고도 하는 정렬된 작업 목록을 포함합니다.파일에 다음 내용을 삽입합니다.
--- - hosts: testingservers name: "Configure kernel settings" roles: - rhel-system-roles.kernel_settings vars: kernel_settings_sysctl: - name: fs.file-max value: 400000 - name: kernel.threads-max value: 65536 kernel_settings_sysfs: - name: /sys/class/net/lo/mtu value: 65000 kernel_settings_transparent_hugepages: madvise
name
키는 선택 사항입니다. 임의의 문자열과 플레이를 레이블로 연결하고 플레이의 용도를 식별합니다. 플레이의hosts
키는 플레이를 실행할 호스트를 지정합니다. 이 키의 값 또는 값은 관리 호스트의 개별 이름으로 제공되거나인벤토리
파일에 정의된 호스트 그룹으로 제공할 수 있습니다.vars
섹션은 선택한 커널 매개 변수 이름과 설정해야 하는 값을 포함하는 변수 목록을 나타냅니다.roles
키는vars
섹션에 언급된 매개 변수 및 값을 구성하기 위해 수행할 시스템 역할을 지정합니다.참고필요에 맞게 플레이북에서 커널 매개변수와 해당 값을 수정할 수 있습니다.
필요한 경우 플레이의 구문이 올바른지 확인합니다.
# ansible-playbook --syntax-check kernel-roles.yml playbook: kernel-roles.yml
이 예는 플레이북의 성공적인 확인을 보여줍니다.
플레이북을 실행합니다.
# ansible-playbook kernel-roles.yml ... BECOME password: PLAY [Configure kernel settings] ********************************************************************************** PLAY RECAP ******************************************************************************************************** fdoe@192.168.122.226 : ok=10 changed=4 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0 pdoe@192.168.122.98 : ok=10 changed=4 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0
Ansible이 플레이북을 실행하기 전에 암호를 입력하라는 메시지가 표시되고 관리 호스트의 사용자가 커널 매개 변수를 구성하는 데 필요한
root
으로 전환할 수 있습니다.recap 섹션에는 플레이가 모든 관리 호스트에 대해 성공적으로 완료(
failed=0
)되고 4개의 커널 매개 변수가 적용되었음을 보여줍니다(changed=4
).- 관리 호스트를 다시 시작하고 영향을 받는 커널 매개변수를 확인하여 변경 사항이 적용되었는지 확인하고 재부팅 후에도 지속되는지 확인합니다.
추가 리소스
- RHEL 시스템 역할을 사용하도록 제어 노드 및 관리형 노드 준비
-
/usr/share/doc/rhel-system-roles/kernel_settings/
디렉토리의README.html
및 README.md - 인벤토리 빌드
- Ansible 구성
- 플레이북으로 작업
- 변수 사용
- 역할