I’m planning to upgrade Asterisk version on several hosts. I want to to minimize downtime and off-hours work.
Sometimes, running Asterisk version is the one packaged by the OS. Often, this running version comes from locally compiled source code. For all hosts, target Asterisk will be the latest available 22.X with “casual” compilation options. All hosts are amd_64 Debian hosts.
I was thinking on the following alternatives:
local compilation
compiling on one host and pushing binaries on target hosts
compiling on one host and pulling binaries from target hosts
Have you ever experiment options 2 or 3 above ? Would you recommend any ?
When recompling locally, I usualy:
download source code
stop Asterisk
./configure, make && make install
start Asterisk
Can I (safely) optimize these steps ? Specifically, I was thinking of having several Asterisk instances on each host and switching from one to an other using symbolic links.
I use FreePBX but on one of them I have a locally compiled Asterisk.
In order to eliminate downtime on all my PBXes I virtualize the PBX. When building a new PBX I always start with a virgin virtual image, compile it, test it, make sure everything is gold, run the backup and restore to it - then swap IPs with the 2 VMs.
This also makes backups a snap - just shut down the PBX VM, make a copy, restart the VM. I use KVM+qemu.
I would bet all your PBXes are running on hosts that are loafing along with tons of unused resources. Unless you are running antique servers or something ridiculous like a Raspberry Pi.
The PBX is not the only server in my enterprise that is like this. In fact the only servers I have that are bare metal are fileservers - all application servers are VM’s and other than the fileservers, all other hoses are hypervisors - usually Ubuntu some Windows Server.
Though using VM has strong advantages, in my question, I was inclined to explore `m̀ake` options, if such options exist, so that I could compile sources into parallel directories and use symbolic links to select the appropriate Asterisk version as with