...
To log on to a virtual machine, use the
vagrant ssh
command; for example:Code Block vagrant ssh c7001 LMBP:centos7.0 lkg$ vagrant ssh c7001 Last login: Tue Jan 12 11:20:28 2016 [vagrant@c7001 ~]$
From this point onward, this terminal window operates within the virtual machine until you exit the virtual machine. All commands go to the VM, not to your Mac.
Recommendation: Open a second terminal window for your Mac. This is useful when accessing the Ambari Web UI. To distinguish between the two, terminal windows typically list the computer name or VM hostname on each command-line prompt and at the top of the terminal window.When you first access the VM you will be logged in as user
vagrant
. Switch to theroot
user:Code Block [vagrant@c7001 ~]$ sudo su - Last login: Sun Sep 25 01:34:28 AEST 2016 on pts/0 root@c7001:~#
- When you are finished using the VM:
- Use the
logout
command to log out of root - Use the
exit
command to return to your host machine (Mac).
- Use the
At this point, the VMs are still running in the background. You can either suspend or remove the virtual machines; for more information, see the Vagrant and snapshot commands described later in this post. (Note: http://help.skytap.com/VM_Sequencing.html, and best practices?)
...
Install Ambari on the Virtual Machines
...
From the terminal window on the VM where you want to run the main Ambari service, download the Ambari repository. The following commands download Ambari version 2.4.1.0 and install
ambari-server
. To install a different version of Ambari, specify the appropriate repo URL. Choose the appropriate commands for the operating system on your VMs:OS Commands CentOS 6 wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.4.1.0/ambari.repo -O /etc/yum.repos.d/ambari.repo
yum install ambari-server -yCentOS 7 wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0/ambari.repo -O /etc/yum.repos.d/ambari.repo
yum install ambari-server -yUbuntu 12 wget -nv http://public-repo-1.hortonworks.com/ambari/ubuntu12/2.x/updates/2.4.1.0/ambari.list -O /etc/apt/sources.list.d/ambari.list
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
apt-get update
apt-get install ambari-server -yUbuntu 14 wget -nv http://public-repo-1.hortonworks.com/ambari/ubuntu14/2.x/updates/2.4.1.0/ambari.list -O /etc/apt/sources.list.d/ambari.list
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
apt-get update
apt-get install ambari-server -yTo install Ambari with default settings, set up and start
ambari-server
:Code Block ambari-server setup -s ambari-server start
For more information about installation options and settings, see see Apache Ambari User Guides.
(Optional) For frontend developers only: see "Frontend Development" (later on this page) for extra setup instructions.
After Ambari Server has Once Ambari Server is started, access the Ambari Web UI at
http://<hostname>.ambari.apache.org:8080
. For example:Code Block http://c6401c7001.ambari.apache.org:8080
The URL depends on the OS and the node where you installed Ambari.
Note: The Ambari Server can take some time to launch and be ready to accept connections. Keep trying the URL until you see the login page.Login using default username
admin
, passwordadmin
.Choose "Launch Install Wizard."
Name Specify a name for your cluster.
On the Install Options page, list the FQDNs of the VMsvirtual machines. For example:
Code Block c6401c7001.ambari.apache.org c6402c7002.ambari.apache.org c6403c7003.ambari.apache.org
Alternatively, you can use a range expression:
Code Block c64c70[01-03].ambari.apache.org
Upload the
insecure_private_key
file that you created earlier.Specify non-root SSH user
vagrant
.Follow the onscreen Continue stepping through on-screen instructions to install your cluster.
...
This enables the “vagrant snapshot” command. Note that the above installs vesion 0.0.2. if you install the latest plugin version 0.0.3 does not allow taking snapshots of the whole cluster at the same time (you have to specify a VM name).
Run vagrant snapshot to see the syntax.
Note that the plugin tries to take a snapshot of all VMs configured in Vagrantfile. If you are always using 3 VMs, for example, you can comment out c64[04-10] in Vagrantfile so that the snapshot commands only operate on c64[01-03].
Note: Upon resuming a snapshot, you may find that time-sensitive services may be down (e.g, HBase RegionServer is down, etc.)
Tip: After starting the VMs but before you do anything on the VMs, run "vagrant snapshot take init". This way, you can go back to the initial state of the VMs by running "vagrant snapshot go init"; this only takes seconds (much faster than starting the VMs up from scratch by using up.sh or "vagrant up"). Another advantage of this is that you can always go back to the initial state without destroying other named snapshots that you created.
Misc
To test OS’s other than what’s currently in the ambari-vagrant repo, please see http://www.vagrantbox.es/ for the readily available OS images you can test. Note that Ambari currently works on RHEL 5/6, CentOS 5/6, Oracle Linux 5/6, SUSE 11, and SLES 11. Ubuntu support is work in progress.
Pre-Configured Development Environment
Simply edit Vagrantfile to launch a VM with all the tools necessary to build Ambari from source.
Code Block |
---|
cd ambari-vagrant/centos6.4
vi Vagrantfile <- uncomment the line with "dev-bootstrap.sh"
vagrant up c6401 |
To build from source, follow the instructions in Ambari Development.
Frontend Development
You can use this set up to develop and test out Ambari Web frontend code against a real Ambari Server on a multi-node environment.
On the host machine:
Code Block |
---|
cd ambari-vagrant/centos6.4
git clone https://git-wip-us.apache.org/repos/asf/ambari.git ambari
cd ambari/ambari-web
npm install
brunch w |
On c6401 (where Ambari Server is installed):
Code Block |
---|
cd /usr/lib/ambari-server
mv web web-orig
ln -s /vagrant/ambari/ambari-web/public web
ambari-server restart |
With this setup, whenever you change the content of ambari-web files (under ambari-vagrant/ambari/) on the host machine, brunch will pick up changes in the background and update ambari-vagrant/ambari/ambari-web/public. Because of the symbolic link, the changes are automatically picked up by Ambari Server. All you have to do is hit refresh on the browser to see the frontend code changes reflected.
Not seeing code changes as expected? If you have run the maven command to build Ambari previously, you will see files called app.js.gz and vendor.js.gz under the public folder. You need to delete these files for the frontend code changes to be effective, as the app.js.gz and vendor.js.gz files take precedence over app.js and vendor.js, respectively.