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