Skip to content

Commit b91724f

Browse files
authored
Add elastic search installation into Vagrantfile (mastodon#26512)
1 parent 34f5b90 commit b91724f

File tree

2 files changed

+43
-4
lines changed

2 files changed

+43
-4
lines changed

.env.vagrant

+4
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@ VAGRANT=true
22
LOCAL_DOMAIN=mastodon.local
33
BIND=0.0.0.0
44
DB_HOST=/var/run/postgresql/
5+
6+
ES_ENABLED=true
7+
ES_HOST=localhost
8+
ES_PORT=9200

Vagrantfile

+39-4
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,37 @@ sudo usermod -a -G rvm $USER
6060
6161
SCRIPT
6262

63+
$provisionElasticsearch = <<SCRIPT
64+
# Install Elastic Search
65+
sudo apt install openjdk-17-jre-headless -y
66+
sudo wget -O /usr/share/keyrings/elasticsearch.asc https://artifacts.elastic.co/GPG-KEY-elasticsearch
67+
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/elasticsearch.asc] https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
68+
sudo apt update
69+
sudo apt install elasticsearch -y
70+
71+
sudo systemctl daemon-reload
72+
sudo systemctl enable --now elasticsearch
73+
74+
echo 'path.data: /var/lib/elasticsearch
75+
path.logs: /var/log/elasticsearch
76+
network.host: 0.0.0.0
77+
http.port: 9200
78+
discovery.seed_hosts: ["localhost"]
79+
cluster.initial_master_nodes: ["node-1"]' > /etc/elasticsearch/elasticsearch.yml
80+
81+
sudo systemctl restart elasticsearch
82+
83+
# Install Kibana
84+
sudo apt install kibana -y
85+
sudo systemctl enable --now kibana
86+
87+
echo 'server.host: "0.0.0.0"
88+
elasticsearch.hosts: ["http://localhost:9200"]' > /etc/kibana/kibana.yml
89+
90+
sudo systemctl restart kibana
91+
92+
SCRIPT
93+
6394
$provisionB = <<SCRIPT
6495
6596
source "/etc/profile.d/rvm.sh"
@@ -102,10 +133,8 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
102133

103134
config.vm.provider :virtualbox do |vb|
104135
vb.name = "mastodon"
105-
vb.customize ["modifyvm", :id, "--memory", "2048"]
106-
# Increase the number of CPUs. Uncomment and adjust to
107-
# increase performance
108-
# vb.customize ["modifyvm", :id, "--cpus", "3"]
136+
vb.customize ["modifyvm", :id, "--memory", "8192"]
137+
vb.customize ["modifyvm", :id, "--cpus", "3"]
109138

110139
# Disable VirtualBox DNS proxy to skip long-delay IPv6 resolutions.
111140
# https://github.com/mitchellh/vagrant/issues/1172
@@ -141,9 +170,15 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
141170
config.vm.network :forwarded_port, guest: 3000, host: 3000
142171
config.vm.network :forwarded_port, guest: 4000, host: 4000
143172
config.vm.network :forwarded_port, guest: 8080, host: 8080
173+
config.vm.network :forwarded_port, guest: 9200, host: 9200
174+
config.vm.network :forwarded_port, guest: 9300, host: 9300
175+
config.vm.network :forwarded_port, guest: 9243, host: 9243
176+
config.vm.network :forwarded_port, guest: 5601, host: 5601
144177

145178
# Full provisioning script, only runs on first 'vagrant up' or with 'vagrant provision'
146179
config.vm.provision :shell, inline: $provisionA, privileged: false, reset: true
180+
# Run with elevated privileges for Elasticsearch installation
181+
config.vm.provision :shell, inline: $provisionElasticsearch, privileged: true
147182
config.vm.provision :shell, inline: $provisionB, privileged: false
148183

149184
config.vm.post_up_message = <<MESSAGE

0 commit comments

Comments
 (0)