실습 ansible - Tomcat 설치
페이지 정보

본문
1. Ansible로 Tomcat 최신 버전 설치하기
이 게시글에서는 Ansible로 Tomcat 최신 버전 설치에 대한 예시만 안내드리는 글입니다.
2. Playbook
```yaml
|
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
---
- name: Setup Apache Tomcat on RedHat-based system
hosts: all
become: yes
vars:
admin_username: "admin"
admin_password: "admin_pass"
tomcat_version: "10.1.39"
tomcat_archive: "apache-tomcat-10.1.39.tar.gz"
tomcat_install_dir: "/opt"
tomcat_symlink: "/usr/share/tomcat"
tomcat_extracted_dir: "/opt/apache-tomcat-7.0.61" # creates 조건 때문에 필요
tomcat_actual_dir: "/opt/apache-tomcat-10.1.39"
tasks:
# OpenJDK 11 설치
- name: Install OpenJDK 11
yum:
name: java-11-openjdk-devel
state: present
# tomcat 그룹 생성
- name: Add group "tomcat"
group:
name: tomcat
# tomcat 사용자 생성 (home 디렉토리 생성 안함)
- name: Add user "tomcat"
user:
name: tomcat
group: tomcat
home: /usr/share/tomcat
create_home: no
# Tomcat tar.gz 파일 다운로드
- name: Download Tomcat archive
get_url:
url: "https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.39/bin/{{ tomcat_archive }}"
dest: "{{ tomcat_install_dir }}/{{ tomcat_archive }}"
# Tomcat 압축 해제
- name: Extract Tomcat archive
command: >
/bin/tar xvf {{ tomcat_install_dir }}/{{ tomcat_archive }} -C {{ tomcat_install_dir }}
args:
chdir: /usr/share
creates: "{{ tomcat_extracted_dir }}"
# 심볼릭 링크 생성 (/usr/share/tomcat → 실제 설치 경로)
- name: Create symbolic link to Tomcat directory
file:
src: "{{ tomcat_actual_dir }}"
path: "{{ tomcat_symlink }}"
state: link
# Tomcat 디렉토리의 소유자/그룹을 tomcat으로 변경
- name: Change ownership of Tomcat directory
file:
path: "{{ tomcat_symlink }}/"
owner: tomcat
group: tomcat
state: directory
recurse: yes
# 기존 tomcat-users.xml 백업
- name: Backup original tomcat-users.xml
copy:
src: "{{ tomcat_symlink }}/conf/tomcat-users.xml"
dest: "{{ tomcat_symlink }}/conf/tomcat-users.xml.origin"
remote_src: yes
mode: '0644'
# tomcat-users.xml 설정 (관리자 계정 추가)
- name: Configure Tomcat users
copy:
dest: "{{ tomcat_symlink }}/conf/tomcat-users.xml"
content: |
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<user username="{{ admin_username }}" password="{{ admin_password }}" roles="manager-gui" />
</tomcat-users>
owner: root
group: root
mode: '0644'
# Tomcat systemd 서비스 유닛 생성
- name: Create Tomcat systemd service unit
copy:
dest: /etc/systemd/system/tomcat.service
owner: root
group: root
mode: '0644'
content: |
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/usr/share/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/share/tomcat
Environment=CATALINA_BASE=/usr/share/tomcat
ExecStart=/usr/share/tomcat/bin/startup.sh
ExecStop=/usr/share/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
# Tomcat 서비스 시작 및 부팅 시 자동 시작 설정
- name: Start and enable Tomcat service
service:
name: tomcat
state: started
enabled: yes
# 방화벽 규칙 추가 (HTTP - 8080 포트 허용)
- name: Allow port 8080/tcp in firewalld (HTTP)
firewalld:
port: 8080/tcp
permanent: true
state: enabled
immediate: yes
when: ansible_os_family == "RedHat" and ansible_distribution_major_version | int >= 7
# 방화벽 규칙 추가 (HTTPS - 8443 포트 허용)
- name: Allow port 8443/tcp in firewalld (HTTPS)
firewalld:
port: 8443/tcp
permanent: true
state: enabled
immediate: yes
when: ansible_os_family == "RedHat" and ansible_distribution_major_version | int >= 7
# Tomcat 서버 시작 대기 (포트 8080 응답 대기)
- name: Wait for Tomcat to start
wait_for:
port: 8080
|
cs |
```
- 이전글Ansible - Navigator 도구 설치 25.06.05
- 다음글Ansible Playbook 실습 - Ansible AWX - Ansible AWX 설치 자동화 - 구현 1 25.02.27
댓글목록
등록된 댓글이 없습니다.