Allocate x IPs to OpenVZ VEs

I ran into an interesting issue today where we had a client migrating to us that needed us to allocated X IPs to each VPS on a node he had with us. X ranged from 1 IP to up to 12 per VE so I wrote a script that took three input files (one with available IPs [newips], one with VEIDs [veids], and one with the number of IPs each VEID was allocated [numips]) and doled out the IPs as needed. Here is the result:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
 
let r=1
let k=1
 
for i in `cat veids`
do
    numips=$(sed -n "$k"p numips)
        for (( c=1; c<=$numips; c++ ))
          do
                ip=$(sed -n "$r"p newips)
                echo "Add $ip to $i"
                vzctl set $i --ipadd $ip --save
                let r=r+1
        done
    let k=k+1
done

Hopefully this will help any others who run into a similar issue.

Have a great day!

Leave a Reply

Your email address will not be published. Required fields are marked *