-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript-centosvm.sh
executable file
·246 lines (215 loc) · 6.97 KB
/
script-centosvm.sh
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
#!/bin/bash
# Função para atualizar o sistema
update_system() {
echo "Updating system packages..."
sudo yum update -y && yum install -y
}
# Função para instalar ferramentas de desenvolvimento
install_development_tools() {
echo "Installing development tools..."
sudo dnf install -y git
}
# Função para instalar o utilitário yum-config-manager
install_yum_config_manager() {
echo "Installing yum-config-manager..."
sudo yum install -y yum-utils
}
# Função para instalar o Neofetch
install_neofetch() {
echo "Installing Neofetch..."
sudo dnf clean all
sudo dnf -y install epel-release
sudo dnf update
sudo dnf -y install neofetch
}
# Função para instalar o Neovim
install_neovim() {
echo "Installing Neovim..."
sudo yum install -y neovim python3-neovim
}
# Função para configurar o repositório do Docker
configure_docker_repository() {
echo "Configuring Docker repository..."
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
}
# Função para instalar o Docker e componentes adicionais
install_docker() {
echo "Installing Docker and additional components..."
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start docker
sleep 8
}
# Função para adicionar o usuário ao grupo Docker
add_user_to_docker_group() {
echo "Adding user to Docker group..."
sudo usermod -aG docker $USER
}
# Função para configurar o firewall para a porta 1521
configure_firewall() {
echo "Configuring firewall for port 1521..."
sudo firewall-cmd --add-port=1521/tcp --permanent
sudo firewall-cmd --reload
}
# Função para criar redes Docker
create_docker_networks() {
echo "Creating Docker networks..."
docker network create REDEORCL
docker network create REDEMSQL
docker network create REDEMONGO
docker network create REDEPGSQL
}
# Função para instalar o SDKMAN!
install_sdkman() {
echo "Installing SDKMAN!..."
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
}
# Função para instalar uma versão específica do JDK usando o SDKMAN!
install_jdk_with_sdkman() {
echo "Installing a specific JDK version using SDKMAN!..."
sdk install java 17.0.10-tem
}
# Função para instalar o Oh My Posh
install_oh_my_posh() {
echo "Installing Oh My Posh..."
curl -s https://ohmyposh.dev/install.sh | sudo bash
oh-my-posh font install DaddyTimeMono
}
# Função para atualizar o cache de fontes
update_font_cache() {
echo "Updating font cache..."
fc-cache -vf
}
# Função para adicionar configuração do Oh My Posh ao .bashrc
configure_oh_my_posh() {
echo "Configuring Oh My Posh in .bashrc..."
echo 'eval "$(oh-my-posh init bash --config https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/amro.omp.json)"' | tee -a ~/.bashrc
}
# Função para reiniciar o shell
restart_shell() {
echo "Restarting shell to apply changes..."
exec bash
sleep 8
}
# Função para executar contêineres Docker com parâmetros específicos
run_docker_containers() {
echo "Running Docker containers with specific parameters..."
# Oracle Database
echo "Running Oracle Database container..."
docker run -d \
--name oracledb_dev \
-p 51521:1521 \
-e ORACLE_PASSWORD=password \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-v oracle-volume:/opt/oracle/oradata \
--network REDEORCL \
gvenzl/oracle-free
# MySQL
echo "Running MySQL container..."
docker run -d \
--name mysql_dev \
-p 33306:3306 \
-e MYSQL_ROOT_PASSWORD=password \
-v mysql-database:/var/lib/mysql \
--network REDEMSQL \
mysql:latest
# MongoDB
echo "Running MongoDB container..."
docker run -d --name mongo_dev --network REDEMONGO -v $(pwd)/db_data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=password \
--label com.docker.volume.name=mongo_dev \
-p 27017:27017 \
mongo:latest --blind_ip_all
# Mongo Express
echo "Running Mongo Express container..."
docker run -d --name mongo_ui --network REDEMONGO -p 8081:8081 \
-e ME_CONFIG_MONGODB_ADMINUSERNAME=root \
-e ME_CONFIG_MONGODB_ADMINPASSWORD=password \
-e ME_CONFIG_MONGODB_URL=mongodb://root:password@mongo_dev:27017/ \
--label com.docker.volume.name=mongo_ui \
mongo-express:latest
# PostgreSQL
echo "Running PostgreSQL container..."
docker run -d \
--name postgre_dev \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgress \
-p 5432:5432 \
--network REDEPGSQL \
-v postgres_data:/var/lib/postgresql/data \
postgres:latest
# pgAdmin
echo "Running pgAdmin container..."
docker run -d \
--name pgadmin_ui \
-e PGADMIN_DEFAULT_EMAIL=admin@example.com \
-e PGADMIN_DEFAULT_PASSWORD=admin \
-p 5050:80 \
--network REDEPGSQL \
--link postgre_dev:postgres \
dpage/pgadmin4:latest
# Tomcat
echo "Running Tomcat container..."
docker run -d \
--name tomcat_dev \
-p 8085:8080 \
tomcat:latest
# Jenkins
echo "Running Jenkins container..."
docker run --name meu_jenkins \
-p 8080:8080 -p 50000:50000 \
--restart=on-failure \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts-jdk17
# WildFly
echo "Running WildFly container..."
docker run -d --name wildfly_dev \
-p 8081:8080 -p 9991:9990 \
-e WILDFLY_USERNAME=admin \
-e WILDFLY_PASSWORD=password \
-v wildfly-deployments:/opt/bitnami/wildfly/standalone/deployments \
bitnami/wildfly:latest
# MailDev
echo "Running MailDev container..."
docker run -d --name maildev_dev \
-p 1080:1080 \
-p 1025:1025 \
-e MAILDEV_WEB_USER=developer\
-e MAILDEV_WEB_PASS=password \
maildev/maildev:latest
# PegaSystems
echo "Running PegaSystems container..."
docker run -d --name pega_dev \
-p 8082:8080 \
-e PEGA_ADMIN_PASSWORD=password \
-e PEGA_DATABASE_PASSWORD=password \
-e PEGA_DATABASE_URL=jdbc:postgresql://postgre_dev:5432/pega \
-e PEGA_DATABASE_USERNAME=postgres \
-e PEGA_RULES_SCHEMA=pega_rules \
-e PEGA_DATA_SCHEMA=pega_data \
-e PEGA_SEARCH_SCHEMA=pega_search \
-e PEGA_BLOB_SCHEMA=pega_blob \
pegasystems/pega:latest
}
main() {
update_system
install_development_tools
install_yum_config_manager
install_neofetch
install_neovim
configure_docker_repository
install_docker
add_user_to_docker_group
configure_firewall
create_docker_networks
install_sdkman
install_jdk_with_sdkman
install_oh_my_posh
update_font_cache
configure_oh_my_posh
run_docker_containers
restart_shell
}
main