GSoC 2020 Samba Experience

Alexander Bokovoy ab at samba.org
Wed Sep 9 15:29:50 UTC 2020


On ke, 09 syys 2020, hezekiah maina via samba-technical wrote:
> Hello everyone,
> 
> I finally came to the end of Google Summer of Code 2020 program. I'm glad
> to have passed the program.
> I learned a lot of things which before the program I didn't have much
> knowledge about. I will outline some of those new things that I learned and
> give some feedback on areas I think could be improved to make Samba
> even better.
> One of the things that I learned in the program was using Samba Active
> Directory Domain Controller. I didn't know much about working with an AD
> DC. From having to set a server as an AD DC to having one that is
> functioning well was a great learning experience. Making mistakes is vital
> to learning how to work with something and I did a whole lot of them. DNS
> configuration and setting up Kerberos admin server was particularly hard
> for me but with time I have figured how to work with them. I'm glad to have
> had great mentors who led me through every step of the learning process.
> 
> Another thing I learned was to develop Cockpit plugins.Cockpit (
> https://cockpit-project.org/) gives linux server administrators a visual
> interface to interact with a server using a web browser. One of the most
> important features of Cockpit is that it provides an API for developing
> plugins to extend its capabilities. I was working on developing one of
> these plugins for samba-tool command line utility. Samba-tool helps
> administrators manage their Samba Active Directory Controller. So, which
> problem were we trying to solve? Using a command line tool is mostly prone
> to making spelling mistakes and a lot of repetitive typing to achieve some
> functionality. Having a visual interface reduces the mistakes users can
> make, improves the user's productivity and is a much more appealing way to
> onboard new users. You can find documentation about the plugin and how to
> install it for your operating system here:
> https://wiki.samba.org/index.php/GSOC_cockpit_samba_ad_dc.
> 
> I primarily used React and Javascript to develop the plugin. There are many
> other tools that are provided by the team at Cockpit for starting a new
> project including a starter kit with most of the files for the project
> already included. (https://github.com/cockpit-project/starter-kit)
> 
> Another Open Source tool that I learned to work with was Open Build Service
> (https://openbuildservice.org/). Through OBS I was able to write some
> config files which when pushed to build.opensuse.org builds packages for
> the different distributions and makes a package available for the end
> users. Leveraging the OBS, I was able to develop the plugin for users of
> Fedora 32, Debian 10 and Ubuntu 20.04 (
> https://build.opensuse.org/package/show/home:Hezekiah/samba-ad-dc)
> 
> One of the areas I found to be really hard was installing provisioning a
> Samba Active Directory Domain Controller. The Samba documentation for
> installing and working with an AD DC is pretty comprehensive but not really
> that straight forward for new users. Some of the concepts in the
> documentation require some prior knowledge of working in an AD DC
> environment and I think it is an area that could be improved to easily
> onboard new users coming to Samba. As outlined earlier some of these
> concepts include setting up Kerberos admin server and DNS configuration
> though the Samba documentation on troubleshooting DNS problems is truly
> priceless.
> 
> Another area that I also found to be really difficult was packaging for the
> various operating systems distributions. This might not be part of what
> Samba does but I hope it could be improved. There wasn't any comprehensive
> documentation I could find to help with the packaging of the plugin and had
> to depend on my mentors for guidance most of the time. Through trial and
> error I was able to understand how to package for the 3 linux distributions
> but I really hope this could be made easier for new developers.
> 
> Lastly I found the Samba codebase on GitLab really scarely :). Having the
> entire codebase in one repository is really hard to figure out which part
> does what. I'm not sure if it could be subdivided into various projects but
> if this is not possible a little bit of code commenting and maybe readmes
> could be used to help new developers understand how the various pieces fit
> together.
> 
> I'm really thankful to the entire Samba community for having me as part of
> the GSoC 2020 program. I'm particularly thankful to Alexander Bokovoy and
> Andrew Bartlet. They both were my mentors for the program and were glad to
> help me resolve problems I encountered along the way. I'm also thankful to
> members who used the plugin, discovered bugs and informed me and my mentors
> about them and to all those that answered and clarified my questions on
> samba-technical.
> 
> Samba has really been instrumental to my start of the journey of
> contributing to Open Source Software and will continue being part of this
> amazing community.
> I will continue contributing to the organization and improve the plugin. It
> has been a really good learning experience and will continue to learn more
> about Samba and the various OSS projects the community develops.
> 
> Thank you all and have a great day!

Thank you, Hezekiah!

It was a good experience in bridging two seemingly separate worlds
(contemporary Web development and 'legacy' enterprise software). I am
glad that you not only picked up the challenge but also really made an
impact with it. I am planning to package the plugin to Fedora in
upcoming weeks.

If you'd have time, please open bugs at bugs.samba.org for documentation
improvements as you see. It might take time but getting this addressed
is definitely important.



-- 
/ Alexander Bokovoy



More information about the samba-technical mailing list