Comments (8)
Can you take a look at the 2.0.0 agent: https://github.com/WindowsAzure/WALinuxAgent/tree/2.0
It is now much easier to add support for new distributions. Take a look at the "AbstractDistro" class and how other distribution classes (i.e. redhatDistro, debianDistro, etc.) inherit this class and override functions to properly specialize the distribution. This avoids all that "isDebian()" or "isSUSE()" etc. boolean logic we had sprinkled everywhere in the 1.x agent.
This allows you to create your own class to specialize your own distro without potentially impacting other distributions (or having to test multiple distributions if you make even a small change).
As for testing, you can do some testing locally by commenting things and adding print statements. But in the cloud if you run into a provisioning failure and cannot log into the host the best way to troubleshoot is to spin up another working VM and mount the VHD of the failed VM to the working VM. This will allow you to get access to the logs (i.e. /var/log/waagent.log). You can also download the VHD locally and mount it, but that is much more time consuming (and costs bandwidth).
Lastly, if this is free a distribution we can download (i.e. not a proprietary Linux appliance or similar) then let me know and we can possibly take a look and provide some hints as to what will/won't work or what may need changing.
I hope this helps. Please let me know how it goes or if you have questions.
Thanks,
Steve
from walinuxagent.
Hello !
From my side, I would like to port WALinuxAgent to debian squeeze. I know this is an old release but I need to make it work on Azure...
I will try to follow your instructions but if parts of that job is already done or if you have some clue, I would be very interrested !
Best regards,
Julien
from walinuxagent.
There will probably be a couple issues here, primarily around ensuring the LIS drivers are installed and up-to-date. Otherwise, I don't think the agent will have too much trouble specializing the image, as long as it runs.
- What version of Python are you running? We'll want v2.5 or higher for the agent.
- Availability of our Linux Integration Services drivers. AFAIK, Debian 7.0 was the first to have these integrated easily into the kernel (because the drivers are now all upstream). The drivers were available with older Debian releases, but it took more time to get working and any older Debian packages containing our drivers may not be maintained. If possible I might recommend testing with a newer kernel that has our drivers available.
Thanks,
Steve
from walinuxagent.
I tried squeeze in February this year and it was pretty hopeless. if you try it,make sure to use the backports kernel.
Wheezy works, but you need to compile your own isc-dhcp-client in case you want to use it because it has a bug, that is triggered by the Azure DNS.
I am not sure whether it is really needed but if you want to test it you also have to compile the hyperv part of the linux tools.
I put my stuff on https://build.opensuse.org/project/show/home:gkr but you probably don't want to use these repos, as I do not maintain the stuff frequently. i.e. no security updates etc.
if you need to use the resource disk (its much faster than vhds) make sure you access it only after the hook has been triggered (i.e. the disk is mounted)
if you want multiple machines to play together you probably want to parse the topology file and adapt your /etc/hosts accordingly. I am using xmlstarlet for this but since i do not have a description of the format it may break with any azure update.
Good luck.
@szarkos Steve, do you have a Roadmap for walinuxagent and a documentation of the retrieved xml files somewhere ? Will MS at some point maintain a Debian wheezy package ?
from walinuxagent.
For the XML files, the docs we have right now are what's in the readme and the code comments. Honestly, I'll have to check to see if we have anything more that is external facing. Did you have any specific questions about these files or the contents?
As far as the roadmap, to be clear are you interested specifically in new features we might add to the agent, or more of a high-level Azure roadmap regarding support for specific distributions (i.e. Wheezy)? Assuming the former we will try to do most development in the open in a feature branch, and the 2.0 agent was all about being able to support more distributions better/easier. But now that 2.0 is out I don't yet have a 6-12 month list of features I could post. But I'll make that a todo so we communicate changes better/sooner.
The packages themselves are typically managed by someone in the community. Canonical has donated much of the Debian packaging (which we've pushed into the repo to hopefully help Debian and other derivatives), and we've worked with OpenLogic and SUSE on the RPM packaging. But generally the packages are maintained by someone else in that community.
AFAIK, the Debian package is maintained by Arnaud Patard. I believe he was going to update the package to use the 1.4.0 agent at some point. If the agent or the packaging isn't working correctly on the latest Wheezy please file an issue and I'll take a look.
Some of this discussion may be off topic for this issue. Feel free to open a new issue, or if you like shoot me an email ([email protected]) and we can discuss any of the above in more detail.
Thanks!
Steve
from walinuxagent.
Hi
Thank you for your answers. I'm still working on that project and I'll keep you updated if I have significant results.
To answer you Steve, I'm under Python 2.6.6. I've ensured that all our packages are in accordance with the requierements of the wheezy.
@g-k-r could you create a download account on your opensuse project please ? I would like to see your linux-tools stuff...
Thanks !
Julien
from walinuxagent.
@jsimbola i think everyone logged in can download the source. if it doesn't work send me an email with your obs login name so i can add you explicitly.
from walinuxagent.
@szarkos I'll try to put it into an email but might take some time
from walinuxagent.
Related Issues (20)
- [FR] Best practice for packaging the WALinuxAgent for Nix/NixOS HOT 4
- [BUG] Installation fails on unendorsed distribution HOT 3
- Deprecation of distutils HOT 1
- Tried to create VMs in azure Across availability zone and got this error: No python interpreter found HOT 4
- [BUG] waagent missing ipv6.addr-gen-mode eui64 from nmcli command HOT 1
- [BUG] DNS issue where deprovisioning sets the hostname to localhost.localdomain HOT 1
- Running collect-logs HOT 2
- Log collection: Memory limit HOT 1
- [BUG] CPU credits drain on B1ls after update to 2.10.0.3 HOT 16
- Issue with extensions when Lib.Dir is modifiend in /etc/waagent.conf HOT 6
- How to disable Azure Portal to automatically install OmsAgentForLinux on my VM? HOT 2
- [BUG] the agent go offline randomly. ERROR ExtHandler ExtHandler Error fetching the goal state in waagent.log HOT 1
- [BUG] WALinuxAgent not updating to latest on Ubuntu HOT 3
- [BUG] VMAccess does not work for FreeBSD HOT 1
- [BUG] Ubuntu versions >= 18.04 checking for dhclient lease files
- [BUG] Flatcar Linux 3602.2.1 Boot Errors HOT 2
- [BUG] udev path mappings for data disks broken in Rocky Linux 9.1 image HOT 2
- [BUG] OpenBSD Deployment Failed HOT 1
- [BUG] Ubuntu22: MonitorHostname does not update iDNS
- [BUG] Ubuntu 2204 & Azure Linux v2: v2.9.1.1 fails to assign IP address for IB interface HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from walinuxagent.