포트 변경
ssh 접속할 수 있는 포트를 지정해야 ansible 코어 서버에서 접근 가능
기본은 22번 포트
$ vi /etc/ansible/ansible.cfg remote_port = 22000 #remote_port = 22
출력되는 내용의 양식 결정
기본은 skippy
debug로 표시하면 조금 더 가독성이 좋아짐
json으로 표시하면 json 파일 형태로 표시되어서 향후 웹서버에서 이용하기 편리함
$ vi /etc/ansible/ansible.cfg stdout_callback = skippy #stdout_callback = debug #stdout_callback = json
json 파일을 적용하려면 stdout_callback = json으로 지정하고 난 뒤에 아래 부분도 변경해줘야함
$ vi /etc/ansible/ansible.cfg #callback_whitelist = timer, mail callback_whitelist = json, timer
접속하는 서버의 /root/,ssh/known_hosts 파일에 접근 자동 저장
처음 접속하는 서버는 known_hosts에 저장할 것인지 질의 → 질의에 대한 응답으로 yes를 해야만 ssh 접속이 가능
수 많은 서버를 관리하는 입장에서 지속적으로 known_hosts에 저장하는 것은 번거로운 일이다.
처음 서버에 접속하는 것에 대한 질의를 없애고 바로 known_hosts에 저장할 수 있도록 설정
$ vi /etc/ansible/ansible.cfg ## 주석처리된 것을 삭제하면 됨 ## host key checking setting above. record_host_keys=False ## 주석처리된 것을 삭제하면 됨 ## uncomment this to disable SSH key host checking host_key_checking = False
root로 직접 서버에 접속할 수 없는 경우 su 권한을 얻어서 서버에 적용
become: 권한 상승 여부 (기본: True)
become_method: 권한 상승 방법 (기본: sudo) →전체 적용되기에 보안상 위험해서 yml파일에 필요시 대입
become_user: 권한 상승할 사용자 (기본: root)
become_ask_pass: 권한 상승 방법의 패스워드 요청/입력 여부 (기본: false) -> yes로 변경해야 root 비밀번호도 입력 가능
$ vi /etc/ansible/ansible.cfg ## 주석처리된 것을 삭제하면서 아래 내용과 같이 수정 [privilege_escalation] become=True #become_method=su become_user=root become_ask_pass=True
ansible pipeline 설정
파이프라인은 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조
기존 (총 3번의 통신 필요)
- ssh 통신 : ~/.ansible/tmp 의 임시 저장 공간 생성
- sftp, scp, piped 통신 : 실행될 파일을 전달 (ansible-playbook )
- ssh 통신 : 실행
파이프라이닝 옵션 적용 후
ssh 로 파일을 보냄과 동시에 실행
적용 방법 → # pipelining = False의 주석을 제거하고 True로 변경
$ vi /etc/ansible/ansible.cfg # 주석처리된 것을 삭제하면서 아래 내용과 같이 수정 # Enabling pipelining reduces the number of SSH operations required to # execute a module on the remote server. This can result in a significant # performance improvement when enabled, however when using "sudo:" you must # first disable 'requiretty' in /etc/sudoers # # By default, this option is disabled to preserve compatibility with # sudoers configurations that have requiretty (the default on many distros). # pipelining = True
ansible forks 설정
한번에 실행하는 값
운영체제에서는 System Call(fork)을 통해서 하나의 프로세스에서 자식 프로세스로 분기를 의미
pipelining을 통해 실행할때 forks = 5가 기본값으로 설정 (통로가 5개 만들어짐)
forks를 늘리면 자식 프로세스가 많아져서, 부하가 많이 발생할 수 있기에, 적절한 개수 설정이 필요
부하 관련 참고 URL : https://medium.com/devops-srilanka/difference-between-forks-and-serial-in-ansible-48677ebe3f36
적용 방법 → # pipelining = False의 주석을 제거하고 True로 변경
$ vi /etc/ansible/ansible.cfg # 주석처리된 것을 삭제하면서 아래 내용과 같이 수정 forks = 10
'Ansible(앤서블)' 카테고리의 다른 글
ansible 서버에서 비밀번호 없이 로그인 → authorized_keys 파일 저장 (0) | 2022.07.24 |
---|---|
ansible의 플레이북(playbook) (0) | 2022.07.24 |
ansible 명령어 간단한 사용 예시 (0) | 2022.07.24 |
ansible 명령어 옵션 정리 (계속 업데이트 예정) (0) | 2022.07.24 |
ansible 설치 및 구성 (0) | 2022.07.24 |