You are browsing a read-only backup copy of Wikitech. The live site can be found at wikitech.wikimedia.org
Puppet coding/Todo: Difference between revisions
|Line 1:||Line 1:|
= Ongoing Puppet work =
= Ongoing Puppet work =
Latest revision as of 07:57, 4 January 2019
This page is 'orphaned' as no other pages link to it. Please link to it in appropriate pages or navigation boxes. Build the web!
This page was last updated in 2014 and may be outdated. Please update it if you can.
Ongoing Puppet work
This page will keep track of current and future refactors in our puppet codebase.
CI and Testing
The page tracking progress on our CI infrastructure is here.
Manifest file: generic-definitions.pp
I've exhaustively listed all the classes and defines present in this manifest to make sure we don't miss anything. I don't mean to imply that there will be anything like a 1:1 relationship between present and future classes; only that these are all the bits that must be moved, purged, or replaced. andrew (talk) 22:31, 1 July 2013 (UTC)
- define apache_site($name, $prefix="", $ensure="link")
- define apache_module($name)
- define apache_confd($install="false", $enable="true", $ensure="present")
Remove in favor of the new apache module.
Team: Ori Livneh, Alexandros Kosiaris, Giuseppe Lavagetto
- define lighttpd_config($install="false")
Create a new simple lighttpd module or, better yet, replace all current uses with
- define nginx_site($install=false, $template="", $enable=true)
Move to existing nginx module
Team: Ryan Lane, Ariel
- define interface_ip($interface, $address, $prefixlen="32")
- define interface_manual($interface, $family="inet")
- define interface_up_command($interface, $command)
- define interface_setting($interface, $setting, $value)
- define interface_tun6to4($remove=undef)
- define interface_tagged($base_interface, $vlan_id, $address=undef, $netmask=undef, $family="inet", $method="static", $up=undef, $down=undef, $remove=undef)
- define interface_aggregate_member($master)
- define interface_aggregate($orig_interface=undef, $members=, $lacp_rate="fast", $hash_policy="layer2+3")
- define interface_add_ip6_mapped($interface=undef, $ipv4_address=undef)
- define interface_offload($interface="eth0", $setting, $value)
This is a subject that I know nothing about, but these things seem related!
- define system_role($description, $ensure=present)
- define systemuser($name, $home=undef, $managehome=true, $shell="/bin/false", $groups=undef, $default_group=$name, $ensure=present)
- class generic::wikidev-umask
(Possible 'users' module for those last two?)
- define upstart_job($install="false", $start="false")
- define generic::debconf::set($value)
- class generic::sysfs::enable-rps
- class generic::locales::international
There are lots of definitions and classes that are too small or simple to warrant their own module. I propose that they be dumped into a module called 'wmf-defines.' I don't care about the name, so bikeshedding is welcome!
- How about generic? :) As that's what's used now. Only drawback to that name that I can see is that it's not very clear that it's not generic beyond WMF. -- mark (talk)
- class generic::packages::ant18
- class base::mwclient
Ideally almost nothing will land here as most packages will fit into other modules. We're going to need this as a grab-bag though.
Obviously these are not actually WMF packages, so what should this module be called?
- define git::clone
- define git::init($directory)
Moved into new, tiny 'git' module
class generic::gluster-client class generic::gluster-server
Create or import a new module
Copy-paste solution here: https://gerrit.wikimedia.org/r/#/c/91884/
Team: Ryan Lane
- class generic::apparmor::service
This is only used by mysql.pp which is, hopefully, deprecated in favor of the mysql module. However, the mysql module makes no mention of app-armor. Not sure what's going on here.
Manifest file: base.pp
moved into base module!
- puppetmaster.pp: Alex is working on a new Puppet architecture, work includes moving it into a module and rearranging it
- misc/install-server.pp: Alex has a refactor in progress
- dns.pp: Faidon is working on new AuthDNS infrastructure in a module, will move recursor DNS into a module as well
- ganglia.pp: Mark already created modules/ganglia_new, transition needs to finish. Alex working on this.
- nagios.pp: Alex working on this.
- nrpe.pp, nagios.pp, misc/icinga.pp: Alex to modularize those
- backups.pp: Alex is working on a new backup infrastructure, perhaps this will become obsolete as part of that work
- geoip.pp: https://gerrit.wikimedia.org/r/#/c/53714/5 needs restoring and merging
- iptables.pp, misc/firewall.pp: these need to be completely ripped out and replaced with (to be merged) https://gerrit.wikimedia.org/r/#/c/61744/
- search.pp: this can likely wait until the deployment of the new search infrastructure
- mysql.pp: Much of this is about to be moved to mysql_wmf https://gerrit.wikimedia.org/r/#/c/88666/ -- the fate of the remaining classes remains in flux
- imagescaler.pp:matanya is converting into a module.
- misc/irc.pp: mutante started converting into a module (https://gerrit.wikimedia.org/r/#/c/94407/)
- misc/wikistats.pp mutante started converting into a module (https://gerrit.wikimedia.org/r/#/c/94409/)
- misc/bugzilla.pp mutante started converting into a module (https://gerrit.wikimedia.org/r/#/c/94075/)
- misc/download.pp matanya converted into a module (https://gerrit.wikimedia.org/r/#/c/95460/) (but merge in role changes from https://gerrit.wikimedia.org/r/#/c/94408/)
- misc/planet.pp mutante is working on it: (https://gerrit.wikimedia.org/r/#/c/108674/)
Existing modules that need work (done)
- Mongodb depends on 'apt' but is expecting puppet labs apt, totally different from our apt. Ori is going to tear out/fix these dependencies.