CloudFormation + Ansible로 IaC (Infrastructure as Code)로 구성
Git 소스 위치 : https://github.com/Justin-ad-Park/EffectiveDevOpsTemplates
CLI 설치 및 권한 설정
1. PyPA 파이썬 패키지 관리자 설치
#Windows
$ sudo apt install python-pip
#MAC
$ sudo easy_install pip
[Trouble shooting]
aws command not found
$ which python
==> /usr/bin/python
$ echo $SHELL
==> /usr/local/bin/zsh
2. pip로 AWS CLI 설치
sudo pip install --upgrade --user awscli
또는 직접 설치
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
AWS CLI 권한 설정
# AWS CLI 권한 설정하기
more credentials.csv
# AWS 계정 Access Key Id, Secret Access Key 확인
$aws configure
Key ID : ****aaaa
Access Key : ****bbbb
Default region name : ap-northeast-2
#아시아 태평양 서울
앤서블(Ansible) 설치
sudo pip install ansible
# 테스트
sudo ansible --private-key ~/.ssh/pmo_aws.pem ec2 -m ping
13.209.70.116 | SUCCESS => {
"changed": false,
"ping": "pong"
}
# pyyaml 에러가 나면
sudo pip install pyyaml
# 다른 테스트
sudo ansible --private-key ~/.ssh/pmo_aws.pem '13.209.70.*' -a 'df -h'
Filesystem Size Used Avail Use% Mounted on
devtmpfs 483M 60K 483M 1% /dev
tmpfs 493M 0 493M 0% /dev/shm
/dev/xvda1 7.9G 1.7G 6.1G 22% /
AMI image ID 확인
방법 1 : aws cli 명령어를 이용
$ aws ec2 describe-images --filters "Name=description,Values=Amazon Linux AMI * x86_64 HVM GP2" --query 'Images[*].[CreationDate, Description, ImageId]' --output text | sort -k 1 | tail
방법 2 : AWS Console -> EC2 생성에서 이미지 검색
CloudFormation template에 AMI image ID 수정
/../EffectiveDevOpsTemplates/jenkins-v1.2-settime-template.py
t.add_resource(ec2.Instance(
"instance",
ImageId="ami-0be3e6f84d3b968cd",
InstanceType="t2.micro",
SecurityGroups=[Ref("SecurityGroup")],
KeyName=Ref("KeyPair"),
UserData=ud,
IamInstanceProfile=Ref("InstanceProfile"),
))
수정한 템플릿 파일 컴파일
> ./11.compile_jenkin-v1.2-settime-template.sh
# troposphere 에러가 발생하는 경우
> sudo pip install troposphere
#awacs library 관련 에러가 발생하는 경우
> sudo pip install awacs
AWS cloudformation 으로 stack(EC2, Jenkins 설치)을 생성
❯ ./12.jenkins-v1.2-createstack.sh
Stack 생성 완료를 확인
❯ ./13.jenkins_waiting4Stack.sh
생성된 EC2의 인스턴스 Public IP 확인
❯ ./14.jenkins_getIpAddress.sh
Public IP로 SSH 접속해 Jenkins InitialAdminPassword 조회
ssh -i ~/.ssh/pmo_aws.pem ec2-user@xxx.xxx.xxx.xxx sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Jenkin 접속
초기 비밀번호 입력
추천 Plug-in 설치
'AWS_NCP' 카테고리의 다른 글
AWS 클라이언트 VPN 생성 (0) | 2021.03.08 |
---|---|
AWS RDS 교차 리전간 VPC Peering (0) | 2019.08.20 |
2. VPC와 Subnet 생성 실습 (0) | 2019.03.02 |
1. VPC의 완벽 이해 (0) | 2019.03.02 |