31.2. 부트로더 RHEL 시스템 역할을 사용하여 암호로 부팅 메뉴 보안
부트로더
RHEL 시스템 역할을 사용하여 암호를 자동화된 방식으로 GRUB 부팅 메뉴로 설정할 수 있습니다. 이렇게 하면 권한이 없는 사용자가 부팅 매개변수를 수정하지 못하도록 효율적으로 시스템 부팅을 제어할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
프로세스
중요한 변수를 암호화된 파일에 저장합니다.
자격 증명 모음을 생성합니다.
$ ansible-vault create vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
ansible-vault create
명령이 편집기를 열고 <key > : < value
> 형식으로 중요한 데이터를 입력합니다.pwd: <password>
- 변경 사항을 저장하고 편집기를 종료합니다. Ansible은 자격 증명 모음의 데이터를 암호화합니다.
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.--- - name: Configuration and management of GRUB boot loader hosts: managed-node-01.example.com vars_files: - vault.yml tasks: - name: Set the bootloader password ansible.builtin.include_role: name: rhel-system-roles.bootloader vars: bootloader_password: "{{ pwd }}" bootloader_reboot_ok: true
예제 플레이북에 지정된 설정은 다음과 같습니다.
bootloader_password: "{{ pwd }}"
- 변수는 암호를 사용하여 부팅 매개 변수를 보호합니다.
bootloader_reboot_ok: true
- 이 역할은 변경 사항을 적용하는 데 재부팅이 필요하다는 것을 감지하고 관리 노드를 다시 시작합니다.
중요부트 로더 암호 변경은 멱등 트랜잭션이 아닙니다. 즉, 동일한 Ansible 플레이북을 다시 적용하면 결과가 동일하지 않으며 관리 노드의 상태가 변경됩니다.
플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.bootloader/README.md
파일을 참조하십시오.플레이북 구문을 확인합니다.
$ ansible-playbook --syntax-check --ask-vault-pass ~/playbook.yml
이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
$ ansible-playbook --ask-vault-pass ~/playbook.yml
검증
GRUB 부팅 메뉴 화면 중에 관리형 노드에서 e 키를 눌러 편집합니다.
사용자 이름과 암호를 입력하라는 메시지가 표시됩니다.
사용자 이름: root 입력
-
부트 로더 사용자 이름은 항상
root
이므로 Ansible 플레이북에서 지정할 필요가 없습니다. 암호 입력: < password>
-
부트 로더 암호는
vault.yml
파일에 정의된pwd
변수에 해당합니다.
특정 부트 로더 항목의 구성을 보거나 편집할 수 있습니다.
추가 리소스
-
/usr/share/ansible/roles/rhel-system-roles.bootloader/README.md
file -
/usr/share/doc/rhel-system-roles/bootloader/
directory