운영 Ansible - 권한 에스컬레이션
페이지 정보
본문
Ansible은 권한 에스컬레이션 시스템을 사용하여 루트 권한 또는 다른 사용자의 권한으로 작업을 실행할 수 있습니다.
play나 task 내에서 become 옵션을 사용하거나 변수 활용, 혹은 명령 줄에서 직접 사용 가능합니다.
become : 특정 사용자로 전환할지 여부. yes 설정 시 활성화 가능.
become_user : 원하는 권한을 가진 사용자로 설정. 즉, 현재 로그인되어 있는 사용자가 아닌, 권한을 에스컬레이션할 사용자.
( default - root )
become_method : 특정 사용자 전환 명령. sudo / su / pbrun / doas / dzdo / ksu 중 선택 가능하며 default는 sudo 이다.
become_flags : become_method 명령 실행 시 함께 줄 옵션 설정.
[코드 예시]
> root 권한이 필요한 작업 수행 시, 권한 에스컬레이션 허용
> apache 유저로 작업 수행
> su 명령으로 사용자를 변경하여 작업 수행
각 노드, 그룹에 대해 become 관련 연결 옵션 변수를 다르게 설정할 수 있습니다. 이러한 변수는 인벤토리에 정의하거나 일반 변수로 사용할 수 있습니다.
ansible_become : become 옵션과 동일함. 특정 사용자로 전환할지 여부
ansible_become_method : 특정 사용자 전환 시 사용할 명령
ansible_become_user : 전환할 사용자.
ansible_become_password : 사용자 전환 시 필요한 권한 상승 암호.
[코드 예시 - inventory]
> webserver 라는 이름의 서버에 현재 manager 사용자로 연결되어 있으며, root 사용자로 전환하여 작업 수행하고 싶을 경우
--ask-become-pass, -K : 권한 상승 암호 요청.
--become, -b : become 옵션으로 작업 수행
--become-method=BECOME_METHOD : 사용할 권한 에스컬레이션 방법. ( default - sudo )
--become-user=BECOME_USER : 작업을 수행할 사용자.
1. Become 옵션 사용
play나 task 내에서 become 옵션을 사용하거나 변수 활용, 혹은 명령 줄에서 직접 사용 가능합니다.
become : 특정 사용자로 전환할지 여부. yes 설정 시 활성화 가능.
become_user : 원하는 권한을 가진 사용자로 설정. 즉, 현재 로그인되어 있는 사용자가 아닌, 권한을 에스컬레이션할 사용자.
( default - root )
become_method : 특정 사용자 전환 명령. sudo / su / pbrun / doas / dzdo / ksu 중 선택 가능하며 default는 sudo 이다.
become_flags : become_method 명령 실행 시 함께 줄 옵션 설정.
[코드 예시]
1 2 3 4 5 | - name: Ensure the httpd service is running service: name: httpd state: started become: yes | cs |
> root 권한이 필요한 작업 수행 시, 권한 에스컬레이션 허용
1 2 3 4 | - name: Run a command as the apache user command: somecommand become: yes become_user: apache | cs |
> apache 유저로 작업 수행
1 2 3 4 5 6 | - name: Run a command as nobody command: somecommand become: yes become_method: su become_user: nobody become_flags: '-s /bin/sh' | cs |
> su 명령으로 사용자를 변경하여 작업 수행
2. become 연결 변수
각 노드, 그룹에 대해 become 관련 연결 옵션 변수를 다르게 설정할 수 있습니다. 이러한 변수는 인벤토리에 정의하거나 일반 변수로 사용할 수 있습니다.
ansible_become : become 옵션과 동일함. 특정 사용자로 전환할지 여부
ansible_become_method : 특정 사용자 전환 시 사용할 명령
ansible_become_user : 전환할 사용자.
ansible_become_password : 사용자 전환 시 필요한 권한 상승 암호.
[코드 예시 - inventory]
1 | webserver ansible_user=manager ansible_become=yes | cs |
> webserver 라는 이름의 서버에 현재 manager 사용자로 연결되어 있으며, root 사용자로 전환하여 작업 수행하고 싶을 경우
3. 명령줄 옵션
--ask-become-pass, -K : 권한 상승 암호 요청.
--become, -b : become 옵션으로 작업 수행
--become-method=BECOME_METHOD : 사용할 권한 에스컬레이션 방법. ( default - sudo )
--become-user=BECOME_USER : 작업을 수행할 사용자.
- 이전글Ansible - tags 활용 21.01.28
- 다음글Ansible 운영 - 3. Role 활용 및 예제 20.10.22
댓글목록
등록된 댓글이 없습니다.