Packages

Create cloud portable Elixir and Phoenix apps. Write once, use everywhere!

Current section

Files

Jump to
nomad lib mix tasks deployment remote_setup_script.ex
Raw

lib/mix/tasks/deployment/remote_setup_script.ex

defmodule Nomad.RemoteSetupScript do
@behaviour Script
@moduledoc """
Builds and deletes the script for the setup of the remote host.
"""
@doc """
Builds the script for the setup of the remote host.
The script installs all the necessary packages for Elixir/Phoenix and MySQL.
"""
def build_script do
{:ok, script} = File.open "remote_setup.sh", [:write]
:ok = IO.binwrite script, bs
File.close script
end
### JUST FOR MYSQL FOR NOW ####
### NEEDS TO RECEIVE THE MYSQL PASSWORD ###
defp bs do
"""
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
sudo apt-get install -y build-essential
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get update
sudo apt-get install -y erlang-asn1 erlang-base erlang-crypto erlang-inets erlang-mnesia
sudo apt-get install -y erlang-public-key erlang-runtime-tools erlang-solutions erlang-ssl
sudo apt-get install -y erlang-dev erlang-base-hipe erlang-eunit erlang-syntax-tools
sudo apt-get install -y elixir
echo mysql-server mysql-server/root_password password root | sudo debconf-set-selections
echo mysql-server mysql-server/root_password_again password root | sudo debconf-set-selections
sudo -E apt-get -q -y install mysql-server
sudo apt-get -y install nginx
"""
end
@doc """
Deletes the remote setup script from the local directory.
"""
def delete_script do
File.rm "remote_setup.sh"
end
end