Repository: incubator-myriad Updated Branches: refs/heads/master edabc8986 -> 6af9d3713
MYRIAD-267 Mount local Myriad development folder into build VM In order to make easier the development, an improvement is mount the local (laptop) development repository of Myriad into the "build" VM. So you can edit out of the VM and you get the build output within the VM for using it. JIRA: [MYRIAD-267] https://issues.apache.org/jira/browse/MYRIAD-267 Pull Request: Closes #112 Author: Javi Roman <jroman.espi...@gmail.com> Date: Wed Jun 6 15:40:59 2018 +0200 Project: http://git-wip-us.apache.org/repos/asf/incubator-myriad/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-myriad/commit/6af9d371 Tree: http://git-wip-us.apache.org/repos/asf/incubator-myriad/tree/6af9d371 Diff: http://git-wip-us.apache.org/repos/asf/incubator-myriad/diff/6af9d371 Branch: refs/heads/master Commit: 6af9d371329fef2a602236f592089dd85efd467f Parents: edabc89 Author: Javi Roman <jroman.espi...@gmail.com> Authored: Wed Jun 6 15:40:59 2018 +0200 Committer: Javi Roman <javiro...@apache.org> Committed: Wed Jun 6 17:16:16 2018 +0200 ---------------------------------------------------------------------- vagrant/libvirt/mesos/README.md | 36 ++++++++++++++++++-- vagrant/libvirt/mesos/Vagrantfile | 11 ++++-- vagrant/libvirt/mesos/check-env.sh | 1 + .../provisioning/group_vars/all/defaults.yml | 1 + .../provisioning/roles/devel/tasks/main.yml | 8 +++++ vagrant/libvirt/mesos/setup-env | 1 + 6 files changed, 53 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/6af9d371/vagrant/libvirt/mesos/README.md ---------------------------------------------------------------------- diff --git a/vagrant/libvirt/mesos/README.md b/vagrant/libvirt/mesos/README.md index 02d6584..a2939d2 100644 --- a/vagrant/libvirt/mesos/README.md +++ b/vagrant/libvirt/mesos/README.md @@ -232,14 +232,44 @@ The Myriad web interface can be accessd via the URL: http://100.0.10.101:8192 -# Happy Hacking +# Export local repository to VM environment -At this point you have a local development environment ready for Myriad -Framework hacking! +For an useful development environment, we can sync a local folder into the VM +named "build". We can export our Myriad local repository by means of the following +environment variable: + +export MYRIAD_SOURCES=/home/user/incubator-myriad +This folder will be mounted (NFS mount) from the host machine to the guest +machine ("build" VM in our case). +Vagrant has built-in support to orchestrate the configuration of the NFS server +on the host and guest for you. + +Before using synced folders backed by NFS, the host machine must have NFS +server installed. The following an example for a RPM based machine: + +``` +sudo yum install nfs-utils libnfsidmap +sudo systemctl enable rpcbind +sudo systemctl enable nfs-server +sudo systemctl start rpcbind +sudo systemctl start nfs-server +sudo systemctl start rpc-statd +sudo systemctl start nfs-idmapd +sudo firewall-cmd --permanent --add-service=nfs +sudo firewall-cmd --permanent --add-service=mountd +sudo firewall-cmd --permanent --add-service=rpc-bind +sudo firewall-cmd --reload +sudo firewall-cmd --list-all +``` + +# Happy Hacking + +At this point you have a local development environment ready for Myriad +Framework hacking! http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/6af9d371/vagrant/libvirt/mesos/Vagrantfile ---------------------------------------------------------------------- diff --git a/vagrant/libvirt/mesos/Vagrantfile b/vagrant/libvirt/mesos/Vagrantfile index c5cc2af..e9e8eaf 100644 --- a/vagrant/libvirt/mesos/Vagrantfile +++ b/vagrant/libvirt/mesos/Vagrantfile @@ -56,8 +56,6 @@ else end Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| - # Disabling the default /vagrant share - config.vm.synced_folder ".", "/vagrant", disabled: true config.ssh.insert_key = false i = 0 @@ -66,6 +64,15 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define servers["name"] do |node| node.vm.box = servers["box"] node.vm.hostname = servers["name"] + + if node.vm.hostname == 'build' && !ENV['MYRIAD_SOURCES'].nil? + node.vm.synced_folder ENV['MYRIAD_SOURCES'], "/mnt", type:"nfs", + linux__nfs_options: ['rw','no_subtree_check','no_root_squash','async'], + nfs_udp: false + else + config.vm.synced_folder ".", "/vagrant", disabled: true + end + node.vm.network "private_network", ip: servers["ip"] node.vm.provider :libvirt do |domain| domain.uri = 'qemu+unix:///system' http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/6af9d371/vagrant/libvirt/mesos/check-env.sh ---------------------------------------------------------------------- diff --git a/vagrant/libvirt/mesos/check-env.sh b/vagrant/libvirt/mesos/check-env.sh index c51ae75..23f32e9 100644 --- a/vagrant/libvirt/mesos/check-env.sh +++ b/vagrant/libvirt/mesos/check-env.sh @@ -23,6 +23,7 @@ echo [ -z $MESOS_ARCH ] || echo "- MESOS_ARCH: $MESOS_ARCH" [ -z $HADOOP_VERSION ] || echo "- HADOOP_VERSION: $HADOOP_VERSION" [ -z $ZOOKEEPER_VERSION ] || echo "- ZOOKEEPER_VERSION: $ZOOKEEPER_VERSION" +[ -z $MYRIAD_SOURCES ] || echo "- MYRIAD_SOURCES: $MYRIAD_SOURCES" echo echo "'vagrant up --provider=libvirt' and happy hacking!" http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/6af9d371/vagrant/libvirt/mesos/provisioning/group_vars/all/defaults.yml ---------------------------------------------------------------------- diff --git a/vagrant/libvirt/mesos/provisioning/group_vars/all/defaults.yml b/vagrant/libvirt/mesos/provisioning/group_vars/all/defaults.yml index a509c11..aa3b06e 100644 --- a/vagrant/libvirt/mesos/provisioning/group_vars/all/defaults.yml +++ b/vagrant/libvirt/mesos/provisioning/group_vars/all/defaults.yml @@ -93,6 +93,7 @@ hadoop_namenode_folder: "{{ hadoop_data_root_folder }}/nn" hadoop_logs_folder: "{{ nfs_shared_folder }}/hadoop/logs" hadoop_etc_folder: "{{ nfs_shared_folder }}/hadoop/etc/hadoop" +with_local_sources: "{{ lookup('env','MYRIAD_SOURCES') }}" http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/6af9d371/vagrant/libvirt/mesos/provisioning/roles/devel/tasks/main.yml ---------------------------------------------------------------------- diff --git a/vagrant/libvirt/mesos/provisioning/roles/devel/tasks/main.yml b/vagrant/libvirt/mesos/provisioning/roles/devel/tasks/main.yml index 67bfc8e..9aa3a62 100644 --- a/vagrant/libvirt/mesos/provisioning/roles/devel/tasks/main.yml +++ b/vagrant/libvirt/mesos/provisioning/roles/devel/tasks/main.yml @@ -45,6 +45,14 @@ dest: "{{ nfs_shared_folder }}/{{ myriad_cloned_folder }}" version: "{{ myriad_repo_branch }}" update: no + when: with_local_sources | trim == '' + +- name: Apache Myriad repo + file: + src: "/mnt" + dest: "/opt/myriad" + state: link + when: with_local_sources | trim != '' - name: Copy exports file. template: http://git-wip-us.apache.org/repos/asf/incubator-myriad/blob/6af9d371/vagrant/libvirt/mesos/setup-env ---------------------------------------------------------------------- diff --git a/vagrant/libvirt/mesos/setup-env b/vagrant/libvirt/mesos/setup-env index d17d2a7..b42d34c 100644 --- a/vagrant/libvirt/mesos/setup-env +++ b/vagrant/libvirt/mesos/setup-env @@ -19,5 +19,6 @@ export MESOS_ARCH=1m4a export HADOOP_VERSION=2.7.0 export ZOOKEEPER_VERSION=3.4.11 +# export MYRIAD_SOURCES=/home/user/incubator-myriad/ sh check-env.sh