Projects - nihole/PSEFABRIC GitHub Wiki

One of the most important advantages of PSEFABRIC is flexibility. This means that we can quite easily implement this approach to the network infrastructures with different designs, vendors, equipment, topologies, routing ...

To demonstrate this principle, 3 different projects have been created:

  • p000

    • This is a project with a base configuration and may be used as a template for a new project creation. If you want to create a project new_project copy all files and folders from $PSEFABRIC/PROJECTS/p000 to a new folder $PSEFABRIC/PROJECTS/new_project and change these files in accordance with requirements of new project.
  • p001

    • Equipment: Cisco routers/switches, Cisco ASA, Juniper FW
    • Topology: 3 data-centers
    • Management: security policies, ACL, subnets
  • p002

    • Equipment: Cisco ACI, Palo Alto FWs managed via Palo Alto Panorama
    • Topology: 2 data-centers
    • Management: security rules, contracts

Project specific and common configuration files

See also Folders Tree

All projects have common Configuration Analyser (2) and Demultiplexer (3) layers (Psefabric Management Data Flow Model). Usually, we don't need to change anything in these layers and this, of course, is a very good news. Only one Demultiplexer (3) layer file that we need to modify is the file responsible for Global Logic (psef_logic.py).

All scripts which are common for all projects are located in the folder $PSEFABRIC/PSEF_SCRIPT.

Project specific files are located in the folder $PROJECT.

Project Switching

To switch between projects

  • go in $PSEFABRIC folder

cd $PSEFABRIC

  • remove all PSEFABRIC configuration

sh psef_clean.sh

  • change variable PROJECT in the file env
vi env
export PROJECT=$PSEFABRIC/PROJECTS/new_project

for example, for the project p001 it should be

export PROJECT=$PSEFABRIC/PROJECTS/p001

  • copy environment variables in /etc/profile.d/ and install new CONFD interface (YANG)

sh psef_conf.sh

  • for all open terminal sessions execute
cd $PSEFABRIC
source ./enc
  • ensure that you are in the correct project

echo $PROJECT