We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

BibOS Admin - a web-based, easy to use admin system for Ubuntu

00:00

Formal Metadata

Title
BibOS Admin - a web-based, easy to use admin system for Ubuntu
Subtitle
Because Landscape is too expensive
Title of Series
Number of Parts
199
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
The public libraries in Denmark wanted an admin system for their new BibOS-system, which is an Ubuntu-based GNU/Linux distribution for audience PCs. To achieve this, we built a completely new and completely free administration system for Debian-based PCs. The public libraries in several Danish municipalities are in the process of switching their audience PCs from Windows to Ubuntu. They needed a central administration system to manage it, and Canonical's Landscape product was unacceptable for them; they needed the system to be completely free/open source, and Canonical's licensing when running Landscape as software-as-a-service was too expensive. The available free alternatives are either too technical for library staff, or they don't support Debian-based systems well. In response, we created "BibOS Admin", a completely new administration system for all Debian-like systems. It enables users to remotely manage, maintain and upgrade PCs and run arbitrary, centrally defined scripts on them. The system is designed to be easy to use for non-technical staff who can rely on a set of pre-defined scripts, which should be set up as part of the setup for each organization (source code available here: https://github.com/magenta-aps/bibos_admin). In the talk, I will discuss the technical and organizational challenges of building a new management from scratch in collaboration with the public libraries in Aarhus and Silkeborg, who kindly funded the effort
65
Thumbnail
1:05:10
77
Thumbnail
22:24
78
Thumbnail
26:32
90
115
Thumbnail
41:20
139
Thumbnail
25:17
147
150
Thumbnail
26:18
154
158
161
Thumbnail
51:47
164
Thumbnail
17:38
168
Thumbnail
24:34
176
194
Thumbnail
32:39
195
Thumbnail
34:28
Server (computing)FreewareElectronic mailing listUser interfaceSystem programmingWebsiteSoftware developerData managementMultiplication signMathematicsProcess (computing)Client (computing)SoftwareScripting languageTouchscreenPolar coordinate systemDampingIn-System-ProgrammierungCloningDifferent (Kate Ryan album)Object (grammar)Translation (relic)NeuroinformatikSoftware bugPhase transition2 (number)Revision controlWindowTheoryScreensaverScaling (geometry)Source codeProduct (business)Software testingWebdesignInformationSoftware industryFunctional (mathematics)Self-organizationCanonical ensembleLocal GroupCodeOrder (biology)Sheaf (mathematics)ComputerAlpha (investment)RootkitCentralizer and normalizerConfiguration spaceSoftware engineeringExtension (kinesiology)Open sourceSystem callComputer programmingParameter (computer programming)Web 2.0Gateway (telecommunications)FrequencyCoordinate systemMetropolitan area networkExterior algebraInteractive kioskFirewall (computing)Staff (military)Row (database)Moment (mathematics)Operator (mathematics)Computer fileEntropie <Informationstheorie>VarianceTopological vector spaceDescriptive statisticsVideo gameObject-oriented analysis and designResultantWeb pageSpeciesBinary codeState of matterWeb browserSet (mathematics)ProgrammierstilPersonal digital assistantArithmetic meanGroup actionSound effectLink (knot theory)Computer scienceKernel (computing)Semiconductor memoryFlow separationMereologyCumulative distribution functionSocial classSign (mathematics)PhysicistProjective planeService (economics)Thermal radiationPersonal computerSpacetimeCondition numberSummierbarkeitLecture/Conference
Transcript: English(auto-generated)
This is going to be by Carsten Ager, who is going to talk about our web-based, easy-to-use admin system for Ubuntu. Yes, this is true. First, by way of introduction, I want to say that I am a software engineer that was originally trained as a theoretical physicist,
and I also did some courses in computer science, but now I've been working with administrative computer systems for the last 18 years. In my spare time, I volunteer as a local group coordinator for the Free Software Foundation Europe, but I am presently employed as a Python developer at Magenta, and I've been doing that for the last two years.
Magenta is a Danish free software company which is specialising in always delivering everything to the customer under a free license. Some of our developers will use proprietary software like Mac if they want to, especially designers,
but we'll never deliver anything to a customer unless it's under a free license. We have 15 employees, about 45 customers, mainly small government organisations, charities, municipalities, the University of Copenhagen, and we develop software in Plone, Drupal, Alfresco, Django, Obvios, and programming
in Java, JavaScript, Python, and Perl, and PHP, and web design and stuff. Well, that covers it more or less. So why are we doing this? The public libraries in Aarhus had a lot of old PCs with Windows XP, and Microsoft was pulling the support,
so they thought there was no way they could run Windows 7 on these PCs, and they didn't want to throw them out, so they said, why don't we go open source and put Ubuntu on all those PCs? So they asked us to develop BIPOS, which is a kiosk-like desktop.
It does not store any user data for their audience PCs. Now, to maintain all these PCs, they wanted a centralized admin system, and the requirement for this admin system was that it must be easy to use,
and it must also be easy to use for non-technical stuff, because a library has a lot of non-technical stuff. Actually, they don't have any technical stuff to speak of, so that was very important. So we started working with them, and in December 2011, we delivered the first version,
which was the 1.0 Alpha based on Ubuntu 11.10, and we delivered it to them using Canonical's landscape product as an admin system. They liked the landscape system, it was overloaded for them,
it has too much functionality and they found it a bit confusing, but they could use it and they liked to use it, but it's $100 per seat per year, that was too expensive for them. It destroyed the economy in their project, and it's proprietary, that means they could no longer say they had an open source solution, so it was not acceptable for them.
In May 2013, the libraries asked us to deliver BIPOS 2.0, including a new admin system, which was to be free software. So we delivered an update of the desktop kiosk system, together with a new admin system, which we designed and coded from scratch.
Basically, it's an ordinary web app, which is written in Python and using Django. We coded that in May, June, July, and in August we started rolling out the system,
and in January we have finished the trial period and the testing period, and they are officially in production. BIPOS 1.5 was a bit clutchy, rough around the edges, as you can see from the improvised splash screen,
but that is a clone sealer splash screen, because the desktop is based on clone sealer. Now, BIPOS 2.0 is slicker and more mature, as you can see from the improved and redesigned clone sealer splash screen. And they have a very slick background image, too, for their audience PCs,
and they advertise Ubuntu L3 software, that's very nice, too. And actually, this background was deployed to all their PCs using the admin system we built for them. So that's nice, I think. So how does it all work? Maybe I should just show you the system for a moment, if I can find the browser window.
So this is the admin system as it looks if you log in as a super user. And you see various sites that you administer sites for different cities using the system.
This is a test site, but actually Aarhus and another town called Silgeborg are in full production with this system. But if you enter one of these sites, you come in, you see a status window,
you see some new computers joined, on some computer a job has failed, there is a slot for global site configuration, you can set parameters that are valid for the whole site, you can see a list of computers, you can manage the computers individually,
the computers have configuration parameters, there's packages on them and I'll show you some, well maybe someone will...
Anyway, this contains the packages that have changed from the original distribution, this has no additional packages and if the computer has packages available for update,
for upgrade, this slot will contain a list of those packages. And then what's important here is that you can manage these computers, you can manage them by, if there are packages to be upgraded, you can revise the package list and you can tell it to upgrade it,
so the computer can have the newest versions for the packages, but you can also define scripts and run them on all the computers. So I can take one script which is here, a global script, and this one is called ActivateScreenSaver.
If I look at this script, I can see it has details, description, it has code, and the code is basically an executable file, normally a bash script, could also be a Python script, could also be a compile C program, but we don't do pre-use of binary for it, but basically it's a bash script, and then you can change it, you can add parameters,
but this script takes no parameters, but you can also run it. And I can say, I want to run this on all the computers in the adult section of this library, that is what Roxner means in Danish, then I say next, then it says specify parameters,
but there are no parameters, but we have this step anyway because we want the user to think just once before pressing hit, pressing run, and then you say query, which means run, and then the script is to be run on all the PCs in that group, and it is scheduled to be run on two PCs in that group
because on this test side there are only two PCs in that group, but that's basically how it works. The architecture is like this, if you want to attach a client to this system, you install a Python package which is called bibos-client,
and call a script called register new bibos-client, and this activates a process which is called the job manager, and the job manager runs every five minutes and asks the server for instructions, so every five minutes the job manager waits and says, what are my orders?
And then it makes an XML RPC call over HTTPS, and receives its orders which can be, upgrade this package, run this script, please update all your package info and send it to me, the server decides everything,
and the job manager executes its orders and tells the server how it went and sends results back, and then that's it, and then the job manager falls asleep for the next five minutes,
and if some PCs are behind a firewall and they are in Aarhus, and that's why we handled this, we can say to one of the bibos desktops, you are our gateway, so everybody can communicate with our server through this gateway, the only thing that's required is that the gateway is allowed to speak to our server through the firewall,
so an overview of the architecture is here, you have the central server, and here you have a library which has a lot of desktops which are not attached, which don't go through a gateway which speak directly to the server,
here you have a library which are talking through an internal gateway, and there you have a library which is talking to the server through an external gateway, which may be placed at a third party, which may be their ISP or whatever,
and our principles for coding this is, to make it all we made an object oriented analysis, and we made a lot of classes, and we made a lot of Django classes, and then we made some mockups and sent to our HTML designer, and the HTML designer retaliated and sent us a lot of HTML,
and then a lot of nice pages, and we started coding everything, so the principles, everything is free software, and all the admin clients are pushed to PyPy, so you can download them from there or install them from there,
the server source code is available on GitHub, and our normal development, we don't use it for normal development, each time we take a release we push it to GitHub, and we have a coding style, strict PEP8, we have an automated test which will test that all the code is PEP8,
apart from that we don't bother with making automated tests, because we think this is very complex, and it's about the user experience, and we don't think the automated test proves enough to justify the expense of making them, but basically this was made in three months by two developers,
and one user interface designer, and around 500 man hours, and we identified some challenges on the way, now the scripting interface and the package interface, it must be very easy for non-technical users to understand,
for us developers it's easy, we write the script, upload the script and run the script, but many of our users don't really have a conception of what it means to run a script, they don't always understand the difference between running a script and installing a package, and they expect scripts to be something you can undo,
like you can undo the installation of a package, so the scripting interface has to be very point and click, it must be easy for script developers to upload new scripts, but it must also be very easy for users to just point at the script, which says something like activate screen saver or change background image,
and then execute it, and without having to understand anymore, then now I am pointing, clicking and doing this on 100 PCs, and how do we keep the list of packages on the server always synchronized with that on the PC, without drowning the server in information from the PCs,
and this should be easy, it should be very easy, but it has proved challenging, and actually a couple of weeks ago we were just about tearing our server down by sending too many package lists, and performance, well, which brings along its best if,
the theory is that normally there will never be instructions for a computer, or very rarely, so if there is a lot of traffic, then this scales very poorly, because there is only one central server, and if you have a job bug in a script,
please do not make the job manager crash, because if you make the job manager crash, then the computer is lost to the admin system, and if the computer is lost to the admin system, it needs to be restored manually, and that's bad when you want to have a centralized admin system, and if you do this on your home network, please note that by joining this server,
you are giving the server root access to your computer, and so this is for organizations who logically own the computers they are running. And the status is, it is currently in production, 200 attached PCs, and we have two or three outstanding critical blocks,
more will be found I think. We consider this a user-friendly and lightweight alternative to landscapes, or spacewalk, or puppets, and currently only for Debian systems, and we think it could be used by libraries, schools, people with server parks, hospitals, whoever have large amounts of Debian-based desktops or servers,
and you can use it too if you want. You can go to GitHub, download the source code, and there are very readable instructions which can get you started in five minutes. It's an advantage if you've worked with Django before,
and it's only in Danish, if you want to make an English translation you're welcome, contributions are welcome, and yeah, we expect to do a new phase this year, but we really don't know, we don't have any funding, we expect the libraries to fund a couple of hundred hours more this year,
but well, we are a company, we can't do anything without funding, we don't have too much right now, but we are hopeful, we think it will grow slowly, but steadily, and I want to thank the Danish Agency for Culture and the public libraries in August in Singapore for funding this and for being our customers, and any questions?
Questions for Carsten everyone? No? Yes, one at the back, give me a second.
You said it's only in Danish currently, however translations are welcome, now I don't speak any Danish, a lot of people, well, obviously Danes, but is the code itself in English and common in English to the extent that you could translate it without actually understanding necessarily every translation?
Yeah, I think anybody who would want to volunteer a translation would have to figure out what all the user interface tags are doing, or who would translate them, or look them up in the dictionary, but I don't think that's too hard, but the code is in Danish and is in English,
and all comments in the code are in English, and the developer documentation on GitHub is in English. Any other questions for Carsten? No? Okay, fantastic, once again if you have any questions please chase them up at the front of the room now, or outside, just after the talk. It was whilst Carsten Nagar everyone,
thank you for your talk. And the next talk will start at 11.