[Ansible] 세션 관리자를 통해 SSH 연결
세션 매니저를 통해 SSH를 방문하면 어떤 기쁨이 생길까
계정 EC2 인스턴스 설정
SSM 관리자를 설치해야 합니다.Amazon Linux2의 AMI를 시작할 때 이미 설치되었으니 다음 단계로 넘어가십시오.
설치 방법은 문서를 참조하십시오.
Manually install SSM Agent on EC2 instances for Linux - AWS Systems Manager
연결 소스 설정(로컬 환경)
세션 관리자 플러그인을 설치해야 합니다.설치 방법은 다음 문서를 참조하십시오.
(Optional) Install the Session Manager plugin for the AWS CLI - AWS Systems Manager
정적 재고 시
EC2 인스턴스가 인벤토리 파일에 기재된 경우 다음과 같습니다.
4
; static_ec2.ini
[instance]
instance1 ansible_host=i-xxxxxxxxxxxx
[all:vars]
ansible_ssh_common_args=-o StrictHostKeyChecking=no -o ProxyCommand="sh -c \"aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'\""
ansible_user='ec2-user'
ansible_become=true
ansible_ssh_private_key_file='~/.ssh/<KEY_PAIR>.pem'
다음 명령을 사용하여 재생본을 실행할 수 있습니다.$ ansible-playbook -i static_ec2.ini <プレイブックファイル>
동적 재고 시
동적 EC2 인스턴스를 가져오고 관리할 때 동적 인벤토리를 사용합니다.동적 재고에 관해서는 아래의 문장을 참고하시오.
[Ansible] 인벤토리 플러그인을 사용하여 EC2 인스턴스 정보를 동적으로 가져오기
재고 서류는 아래와 같다.
3
# aws_ec2.yml
plugin: aws_ec2
regions:
- ap-northeast-1
# フィルタの設定
# 起動しているEC2インスタンスのみを対象とする
filters:
instance-state-name: running
# グルーピングの設定
# タグ毎にEC2インスタンスのグループをまとめる
keyed_groups:
- key: tags.Application
prefix: tag_Name_
separator: ""
# inventory_hostnameの設定項目の優先順位
# 上から優先され、取得できなければ下にいく
hostnames:
- tag:Name
- private-ip-address
compose:
# SSM Session Managerでホストに接続するためansible_hostをEC2インスタンスIDにする
ansible_host: instance_id
게임북은 다음과 같다vars
에 연결 정보를 기재합니다.4
# example.yml
---
- name: Example dynamic inventory
hosts: "{{ target_hosts }}"
vars:
ansible_ssh_common_args: "-o StrictHostKeyChecking=no -o ProxyCommand='aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p''"
ansible_user: ec2-user
ansible_ssh_private_key_file: ~/.ssh/<KEY PAIR>.pem
tasks:
- name: Print Name tag
debug:
msg: "{{ tags.Name }}"
다음 명령을 사용하여 재생본을 실행할 수 있습니다.$ ansible-playbook -i aws_ec2.yml example.yml
참고 자료
Reference
이 문제에 관하여([Ansible] 세션 관리자를 통해 SSH 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ohsawa0515/articles/ansible-ssh-using-aws-session-manager텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)