summaryrefslogtreecommitdiff
path: root/config/chef_apply.rb
blob: 2121a5164b7470930567bfc7aed9aca34daa5810 (plain)
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
execute "yum update -y"
execute "yum upgrade -y"
execute "yum groupinstall -y 'Development Tools'"

file "/etc/yum.repos.d/datastax.repo" do
  content <<-CONTENT
[datastax]
name=DataStax Repo for Apache Cassandra
baseurl=http://rpm.datastax.com/community
enabled=1
gpgcheck=0
  CONTENT
end
file "/etc/yum.repos.d/mongodb.repo" do
  content <<-SCRIPT
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
enabled=1
gpgcheck=0
  SCRIPT
end

execute "rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc"

remote_file "/tmp/erlang-18.1-1.el7.centos.x86_64.rpm" do
  source "https://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el7.centos.x86_64.rpm"
end
execute "yum install -y /tmp/erlang-18.1-1.el7.centos.x86_64.rpm" do
  not_if "erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().'  -noshell | grep 18"
end

remote_file "/tmp/rabbitmq-server-3.5.6-1.noarch.rpm" do
  source "https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_5_6/rabbitmq-server-3.5.6-1.noarch.rpm"
end
execute "yum install -y /tmp/rabbitmq-server-3.5.6-1.noarch.rpm" do
  not_if "sudo rabbitmqctl status | grep '{rabbit,' | grep '3.5.6'"
end

remote_file "/tmp/kafka_2.11-0.9.0.0.tgz" do
  source "http://apache.mirror.iweb.ca/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz"
end

bash "install_kafka" do
  cwd "/tmp"
  code <<-BASH
  tar -xzvf kafka_2.11-0.9.0.0.tgz
  mv kafka_2.11-0.9.0.0 /opt/
  ln -s /opt/kafka_2.11-0.9.0.0 /opt/kafka
  BASH
  not_if { ::Dir.exist?("kafka_2.11-0.9.0.0") }
end

package "epel-release"
execute "yum clean all"

package %w{
  autoconf
  automake
  bison
  bzip2
  ca-certificates
  dsc21
  gcc-c++
  git
  java-1.8.0-openjdk
  libffi-devel
  libtool
  libxml2
  libxml2-devel
  libxslt
  libxslt-devel
  make
  mongodb-org
  openssl-devel
  opscenter
  patch
  pygpgme
  rabbitmq-server
  readline
  readline-devel
  statsd
  yum-utils
  zlib
  zlib-devel
}.to_a

[
  "rabbitmq_sharding-3.5.x-fe42a9b6.ez",
].each do |plugin|
  remote_file "/usr/lib/rabbitmq/lib/rabbitmq_server-3.5.6/plugins/#{plugin}" do
    source "https://www.rabbitmq.com/community-plugins/v3.5.x/#{plugin}"
  end
end

[
  "rabbitmq_consistent_hash_exchange",
  "rabbitmq_management",
  "rabbitmq_sharding",
].each do |plugin|
  execute "rabbitmq-plugins enable #{plugin}" do
    not_if "rabbitmq-plugins list -E | grep #{plugin}"
  end
end

[
  "cassandra",
  "mongod",
  "rabbitmq-server",
].each do |service_name|
  service service_name do
    action [:start, :enable]
  end
end

git "/usr/local/rbenv" do
  repository "https://github.com/sstephenson/rbenv.git"
  action :sync
end

file "/etc/profile.d/rbenv.sh" do
  content <<-CONTENT
export RBENV_ROOT="/usr/local/rbenv"
export PATH="/usr/local/rbenv/bin:$PATH"
eval "$(rbenv init -)"
  CONTENT
end

directory "/usr/local/rbenv/plugins"
git "/usr/local/rbenv/plugins/ruby-build" do
  repository "https://github.com/sstephenson/ruby-build.git"
  action :sync
end

ruby_version = "2.2.3"
bash "install_ruby" do
  user "root"
  ignore_failure true
  code <<-EOH
source /etc/profile.d/rbenv.sh
rbenv install #{ruby_version}
rbenv global #{ruby_version}
rbenv install jruby-9.0.5.0
  EOH
end

bash "install_bundler" do
  code <<-EOH
    source /etc/profile.d/rbenv.sh
    gem install bundler --no-ri --no-rdoc
  EOH
end