1
두 가지 가능한 역할, 하나는 시스템 부트 스트랩, 다른 하나는 OS 업데이트 및 재부팅입니다.사용자가 게임 북의 일부로 액세스 권한을 잃을 때 Idempotency가 정상적으로 유지되지 않을 수 있습니다.
이러한 역할은 master.yml
파일에 의해 시작되고있다 :
---
- hosts: all
remote_user: root
roles:
- rh_bootstrap
- hosts: all
remote_user: devops
become: true
roles:
- os_update
...
부트 스트랩 역할은 SELinux를 위해 필요한 패키지를 설치하는 개발 운영, 사용자, 복사 SSH 키를 추가하고, SSH를 경화.
---
- name: Ensure that libselinux is installed
yum:
name: libselinux-python
state: installed
- name: Create devops user
user:
name: devops
state: present
comment: Create devops user
- name: Install SSH key for devops user
authorized_key:
user: devops
key: "ssh-rsa MYKEYHERE"
state: present
- name: Make sure devops user is sudoer with no pw requirements
lineinfile:
dest: /etc/sudoers
state: present
regexp: '^devops ALL\='
line: 'devops ALL=(ALL) NOPASSWD:ALL'
validate: 'visudo -cf %s'
- name: Ensure SELinux is Enforcing
selinux:
policy: targeted
state: enforcing
- name: Disable empty password login
lineinfile: dest={{ sshd_config }} regexp="^#?PermitEmptyPasswords" line="PermitEmptyPasswords no"
notify: restart sshd
- name: Disable root SSH login
lineinfile: dest={{ sshd_config }} regexp="^#?PermitRootLogin" line="PermitRootLogin no"
notify: restart sshd
- name: Disable password login
lineinfile: dest={{ sshd_config }} regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
notify: restart sshd
...
이 시점에서 master.yml은 devops 사용자로 전환합니다. devops 사용자는 anicial.cfg 기본값으로 정의 된 키를 가지고 있습니다.
master.yml
을 다시 실행하려고하면 루트 로그인을 완전히 비활성화하여 더 이상 호스트에 연결할 수 없으므로 오류가 발생합니다. 로그인에 실패한 사용자를 처리하는 데 유익한 방법이 있습니까? 한마디로
도움을 주셔서 감사합니다. 오늘 밤 직장에서 집에 돌아와서이 접근 방식을 사용하겠습니다. 나는 lineinfile보다는 템플릿 사용을 고려하지 않았지만 확실히 이해가된다. rh_bootstrap을 "다시 실행 가능"하게 만드는 방법에 대한 아이디어가 있으십니까? 새로운 greenfield 호스트를 사용하고 루트로 로그인하고 루트가 아닌 CM 사용자를 설정 한 다음 루트 로그인을 허용하는 것이 좋지 않은 것으로 간주되기 때문에 루트를 잠그려고합니다. 수행 된 작업의 성격 상, 두 번 실행할 수있는 방법을 어떻게 만들 수 있는지 확신 할 수 없습니다. – Matthew
'rh_bootstrap'에서 나중의 실행에서 사용할 수없는 작업을 볼 수 없습니다. 그냥 해. – techraf
재생이 루트 연결을 사용하지 않으면 나중에 실행시 루트 사용자로 연결할 수 없습니다. 따라서 다시 실행하려고하면 SSH 연결 실패가 발생합니다 (오해가 아닌 한). – Matthew