Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 열려있는포트
- Spring
- Java
- Annotation
- ansible
- route53
- port닫기
- 널포인터에러
- instance생성
- string_agg()
- awsconsole
- enum
- 리스트중복제거
- stereotypeannotation
- 리스트중복값
- enumtype
- PostgreSQL
- lightsail
- AWS
- anymatch메서드
- mybatis
- listnull
- conponent
- wordpress블로그
- 중복제거
- 지옥같은git
- db
- WordPress
- 권한정책
- 3tierarchitecture
Archives
- Today
- Total
Anyway
[Ansible] Ansible Install & SSH 연결(원격 접속) 본문
상황 : Private Project를 진행하며 코드 작업 히스토리를 남기며 반복 작업도 줄이고 싶어 Ansible을 사용하게 됐다.
[Infra]
77.88.140.11 | Ubuntu | Ansible Server |
---|---|---|
77.88.140.23 | Ubuntu | nginx_web1 |
77.88.140.24 | Ubuntu | nginx_web2 |
77.88.140.25 | Ubuntu | tomcat_was1 |
77.88.140.26 | Ubuntu | tomcat_was2 |
77.88.140.27 | Ubuntu | mysql_db1 |
77.88.140.28 | Ubuntu | mysql_db1 |
[Ansible Installing]
1. Locating Python
python이 설치되어 있는지 확인
python3 -m pip -V
설치되어 있지 않다면
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --user
python3 -m pip -V
2. Installing Ansible
sudo apt-add-repository ppa:ansible/ansible
enter
sudo apt update
sudo apt install ansible
#버전 확인
ansible --version
#아래와 같이 나오면 완료
ansible [core 2.13.13]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/dyana/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/dyana/.local/lib/python3.8/site-packages/ansible
ansible collection location = /home/dyana/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.8.10 (default, Nov 22 2023, 10:22:35) [GCC 9.4.0]
jinja version = 3.1.4
libyaml = True
✅ Ansible Install success
[SSH 원격 접속을 위한 Settings]
1. 원격 server user 생성
각 원격 서버마다 Ansible Server가 접속할 Ansible 전용 user 생성
#nginx_web1 server의 nginx_server 생성
sudo adduser nginx_server
#Passwd 설정
passwd nginx_server
#nginx_web2 server의 nginx_server 생성
sudo adduser nginx_server
#tomcat_was1 server의 tomcat_server 생성
sudo adduser tomcat_server
.
.
.
#이하생략
2. 원격 server visudo 설정
Ansible server에서 원격 server ssh 접속 시 비밀번호 없이 접속하기 위한 설정
sudo visudo
#추가
nginx_server ALL=(ALL) NOPASSWD:ALL
#저장하고 나가기
(^O > enter > ^X)
- Ansible 전용 user가 sudo 권한을 비밀번호 없이 사용할 수 있도록 설정
3. ssh-keygen 생성
Ansible Server에서 실행
ssh-copy-id [원격 서버 새로 생성한 user]@[원격 서버 IP]
[SSH 원격 접속 Test]
1. hosts 파일 생성(hosts.ini)
[local]
127.0.0.1
[local:vars]
ansible_connection=local
ansible_user=local_user
#nginx
[nginx_server]
77.88.140.23
77.88.140.24
[nginx_server:vars]
ansible_connection=ssh
ansible_user=nginx_user
#tomcat
[tomcat_server]
77.88.140.25
77.88.140.26
[tomcat_server:vars]
ansible_connection=ssh
ansible_user=tomcat_user
#mysql
[mysql_server]
77.88.140.27
77.88.140.28
[mysql_server:vars]
ansible_connection=ssh
ansible_user=mysql_user
master=77.88.140.27
2. Ping Test
Ansible Server에서 원격 서버로 ping test
#Ansible Server에서 실행
#모든 host에 ping
ansible -m ping -i hosts.ini all
#특정 host에 ping
ansible -m ping -i nginx_server
test결과 예시
이렇게 ping test가 완료되면 Ansible Server에서 원격 접속이 가능해진 것이다.
'Ansible' 카테고리의 다른 글
[Ansible] Ansible이란? (0) | 2024.08.23 |
---|