Picture of Caspar  3621
Registered 7 years 184 days
Caspar 3621 Friday, 15 June 2018, 01:39 PM
General update server approach
Good afternoon,

We offer Cloud based PBX solutions and now I'm looking for a good update solution like I use on premise so all devices run the latest software.

My first thought was to use one update script for all customers.. however this might turn out problematic in the future when some customers do not want to upgrade.

So on second thought, I wanted to use a firewall/IP whitelist solution so I could exclude customers. However this doesn't allow you making a custom upgrade sciprt. So my last thought is using a predefined naming method "update-pbxname.htm" and always using the same naming method to keep some kind of order.

I'm wondering if other users / engineers encountered this situation and I'm interested in getting to know their solution.

Thanks in advance,
Caspar
Picture of André 1752
Registered 10 years 191 days
André 1752 Friday, 15 June 2018, 01:49 PM
3 of 3 users consider this post helpful
Re: General update server approach
We use the update script variant for our customer.
Each client has it's own folder with the update scripts for the differnt hardware types.

The firmware itself is stored only once and referenced in the update scripts.

The directory layout is like this:

/
/client1/vm
/client1/update <- update scripts
/client1/backup <- config backups are stored there
/client1/announcements
/client2/vm
/client2/update <- update scripts
/client2/backup <- config backups are stored there
/client2/announcements
/public/firmware/v11.....
/public/firmware/v12.....


Picture of Ole 60
Registered 15 years 301 days
Ole 60 Friday, 15 June 2018, 05:23 PM in response to Caspar 3621
1 of 1 users consider this post helpful
Re: General update server approach
We are also using a directory layout, but with a little other system.
First, we use project name and project id from my.innovaphone to find the correct client folder. Example:

https://update.skypbx.no/test/update/#(r-prj-name)/#(r-prj-id).txt

https://update.skypbx.no/test/update/t-pbx-vcom07020/14184.txt

Then we have also possibilities to create client sub folders based on hardware type and mac address, if we need special settings for special devices.
You should have a talk with my collegua Tomas.
Picture of Muschelpuster
Registered 8 years 109 days
Muschelpuster Friday, 15 June 2018, 10:53 PM in response to Caspar 3621
1 of 1 users consider this post helpful
Re: General update server approach
We have also different folders for every customer. Right now we don't have any active scripts like PHP-Update-Server. We host the files at the IPVA of the customer.
Different files are also importand for staging, not only for the software.
The software-files are hosted on a central webserver.
Right now we do the upgrade for the customer by editing the files. If I remember my problems in upgrading IP222 (bootloop) I don't want this at all customers in the same time and I think it's ok at oure actual project status.
We test every new software at oure own system.
With a growing cloud it will take a lot of time to do the upgrade for every customer by editing the special customer script-files. So I thinking about new concept. I will keep the customer specific files but I will include central software-files. So I can create upgrade-waves and can assign customers to a special wave. For example:
1. wave: small, not very sensible customers
2. wave: normal customers
3. wave: very importand and sensible customers

Niels
Picture of Richard 184
Registered 13 years 31 days
Richard 184 Friday, 15 June 2018, 11:10 PM in response to Caspar 3621
1 of 1 users consider this post helpful
Re: General update server approach
Hi Casper,

It depends on the skills you have in your development team.
We did build a webserver based on PHP and MySQL.

Every Innovaphone device has a "call-me-home function" which means at first boot with internet access, the device will do a lookup at Innovaphone if there is a provisioningserver available.

As described by Ole, you can combine this with the my Innovaphone portal.

The MySQL design can be simple, MAC address, customername, customer ID, given commands etc.

When the device does a initial lookup @ Innovaphone, Innovaphone will forward the request to (for example) http://www.a3bc.eu/innoupdate/index.php?mac=#m

From there you can present a custom php page to the device with the correct commands, completely database driven.

You can make it as intellegent as you want, for example, if one IP Phone is firmware updating, the other ones of the same customer shouldnt receive update commands. when the updated IP phone is back and reports with the correct firmware, you can proceed by updating a new IP Phone.


Hope this helps in your journey.

Best regards

Richard Hubers

Picture of Muschelpuster
Registered 8 years 109 days
Muschelpuster Saturday, 16 June 2018, 10:37 AM
1 of 1 users consider this post helpful
Re: General update server approach
Additional to the 'call me home' you can distribute a update-URL via DHCP. Off course this is only possible in closed networks. In this case you have only the devices outside this networks to administrate at my.innovaphone.com. Or you make a policy that every fresh device needs a first staging at such closed network.
I'm to lazy to administrate every device at my.innovaphone.com and most of my devices have no Internet.

Niels
Picture of Christoph Künkel (innovaphone)
Moderator Registered 15 years 124 days
Christoph Künkel (innovaphone) Saturday, 16 June 2018, 04:02 PM in response to Caspar 3621
1 of 1 users consider this post helpful
Re: General update server approach
Caspar,

You may also want to have a look at the fish-help.png PHP based Update Server V2. This is an Implementation of an Update Server which gives you a Bunch of Features and Flexibility and Does Not require you to Code anything yourself. Only If you want to, you Can add your own Code.

smile Christoph

PS sorry for the Strange spelling, My (german) iPhone wants it Like this ;)

Picture of Muschelpuster
Registered 8 years 109 days
Muschelpuster Sunday, 17 June 2018, 10:30 AM
1 of 1 users consider this post helpful
Re: General update server approach
Christoph,

Until now I did'nt find a possibility to serve different customers with 1 PHP-Update-Server at the Wiki without administration of serials of any device. Did I not read enough?
I like to seperate my customers by the called URL or the called domain.

Niels

PS: I type on IPhone and IPad too and I know your problemwink
Picture of Christoph Künkel (innovaphone)
Moderator Registered 15 years 124 days
Christoph Künkel (innovaphone) Monday, 18 June 2018, 09:05 AM
2 of 2 users consider this post helpful
Re: General update server approach
Hi Niels,

I think the idea here would be to use one (ore more) fish-help.png environments for each customer.

This qualifies somehow as "separate url per customer" smile

Would that work for you?

Christoph
Picture of Muschelpuster
Registered 8 years 109 days
Muschelpuster Monday, 18 June 2018, 10:20 AM
1 of 1 users consider this post helpful
Re: General update server approach
Hi Christoph,

I think I need a PHP-Update-Server-Workshop wink
Yes, of course this will work as separate ulr per customer. Maybe not for our private cloud with limited access to the internet, because I can't rule at the reverse-proxy which customer-scripts are public reachable and which not - but for the 'normal' cloud it will work fine.

Niels
Picture of Caspar  3621
Registered 7 years 184 days
Caspar 3621 Thursday, 5 July 2018, 08:33 AM
Re: General update server approach
I've been quite busy lately, but I really like the approaches and information. My colleague has also followed an InnovaPhone training in Germany and I'll look into this subject very soon and I'll let you guys know. approve
Picture of Sydney 4037
Registered 6 years 316 days
Sydney 4037 Wednesday, 31 October 2018, 07:44 AM
Re: General update server approach
Hi all,

I am looking into this with my collegue Caspar,
I am running the Php Update Server 2 on our Linux Appliance,
But it’s not working,

Tried to set it up with the wiki,
But i was wondering if someone can share their configuration with us so i can compare both

Thank you

King regards,
Sydney
← You can define your color theme preference here