Ok, I think I have come up with a solution for this. It is pretty convoluted, but given the way a fortigate with vdoms works, it is the only way I could get it to work. Here is how I did it:
1. you must configure RANCID to back up each VDOM separately. This needs to include the root vdom. You must also back up config global. to do this, I created separate RANCID device type configurations for each VDOM and in the #Main section added the following:
# Main
@commandtable = (
{' config vdom' => ' GetSystem' },
{' edit root' => ' GetSystem' },
{' get system status' => ' GetSystem' },
{' show full-configuration' => ' GetConf' }
);
Note that for my other vdoms, I created RANCID device types replacing root with the name of each vdom.
So, since I have 2 vdoms, I had to create 4 separate RANCID device types, one for global, one for root, and one for each of my VDOMs.
I used the fnrancid device type as the template for each of these. Note that after creating all of these, you must edit the rancid-fe file to include them.
2. I configured RANCID to back up each of these separately. This gives me 4 backups for my device (since I have 2 vdoms).
3. to restore, I have to combine all 4 backups following these steps:
1. Create a new file with the following commands to the top of the file:
config vdom
edit root
end
config vdom
edit vdom1
end
config vdom
edit vdom2
end
config global
2. Paste the output of the global backup next.
3. Paste the following commands into the file after the output of global:
end
config vdom
edit root
4. Paste the output of the root backup next.
5. Paste the following commands into the file after the output of root:
end
config vdom
edit vdom1
6. Paste the output of the vdom1 backup next.
7. Paste the following commands into the file after the output of vdom1:
end
config vdom
edit vdom2
8. Paste the output of the vdom2 backup next.
9. Paste the following commands into the file after the output of vdom2:
end
end
10. Save this newly created text document and restore it to the firewall and you should be good to go.
If anyone can come up with a better way to do this, please let me konw.