You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Description

Acsenv allows you to deploy acs development environments with ease. It can set up:

  • one or more virtual machines, all of them connected to the same internal network
  • one or more docker containers, all of them connected to same network

Virtual Machines requires more computers resources. At a minimum, each VM should be at least 4GB (4096) of memory, to allow for ACS to run. So be careful that the amount of VM resources matches the ones available on you local host. Though VM are slower to spin up and consumes your resources, they are great to provide isolation and are able to truly build up the final environment your application will run. Along with it, VM are able to display your graphical applications, so anything related to GUI a VM is your tool.

On the other hand, light weight development environments can be created through Docker. That setup comes handy when you need to edit files and perform compilation from command line. Docker containers are great to run your TAT tests. Your development cycle can be speed up through the use of containers.


How it works?

Often, when it is time to develop code for ACS, you end up trying to mixed up these elements:

  • The ACS Distribution (acs_binary) with all the base system already compiled. You want to develop code on top of that release.
  • Your git local repository  (acs_repo)
  • A working repository with patches (INTROOT) to be shared between nodes. (acs_working)

All these elements are not suitable to be stored inside the VM or Docker container, because of the space they use (Several GB) and that we want to recreate the environment several times during the development cycle. For that reason, that elements are kept inside the local host and they are shared with the environment through:

  • NFS (network File Sharing)  between the VM (guest) and the host
  • Docker Volumes (between container and host)





Development Workflow



  • Install Guide


  • VirtualBox 6.1



  • Vagrant 


  • Docker (not need for Virtual Machines only setup)


  • pyenv (recommended)


  • Python required packages

Install python requirement with pip

pip install -r requirements.txt


  • Setting up a Development Environment


Create .acsenv in your home folder

mkdir $HOME/.acsenv/

create yml file boxes_config.yml. An example can be downloaded boxes_config.yml

---
memory: 4096
cpus: 2
gui: false
boxes:
- name: acs01
ip_private: 10.10.10.10
ip_public: 192.168.1.155
- name: acs02
ip_private: 10.10.10.11
ip_public: 192.168.1.156


Warning: acs needs at least 4GB (4096MB) of memory.




Setting up your development environment



Virtual Machine

The cycle for a dev environment with virtual machine: build→ provision→destroy


Once the


  • VPN Install on Centos 7 VM






  • No labels