When I installed the roof lights on the FJ Cruiser, I ran the wires back through one of the steel tubes of the roof rack. At the time, I tried installing rubber grommets and running the wires through them, but that didn't work out at all – the wires couldn't be pushed through the starting grommet (rubber-on-rubber is a lot of friction!), and I couldn't fish them out of the ending grommet (that danged hole was too small!). So I just ran them through the bare metal, and figured I'd do something afterwards to fix them up.
Grommets (the rubber kind) serve several useful purposes. They help weatherproof the penetration, though generally grommets aren't completely waterproof on their own. But the most important thing they do is to keep the wire's insulation from being scraped off by the sharp metal of the penetration. That's vital, and I didn't want to drive very much without solving that issue.
My first idea was to somehow suspend the wires so they didn't touch the metal, then form some silicone RTV around them. Once the RTV cured, in effect I would have manufactured a custom (and completely weatherproof) grommet. But I know from experience that RTV doesn't stand up all that well under full sun and weather exposure, so I searched around and found another similar material that is supposed to handle outdoors exposure better. This material starts out with the consistency of Duco glue, though – not as viscous as RTV, and therefore not quite as “moldable”.
Then a crazy idea occurred to me. What if...I took an ordinary rubber grommet and snipped through it, so that I could thread it onto the wire already in place? Then I should be able to stuff it into the hole, surrounding the wire. Then I could coat it with this new-fangled sealant and I'd have the best of all worlds.
So I tried it. Bottom line: it worked. The details: oh, man, is it a pain in the patoot to stuff a rubber grommet into a hole already occupied by wires! I used a small flat-blade screwdriver to get enough pressure on it to pop it in, one tiny little piece at a time. It took me about 20 minutes per grommet to get them in, and I had 6 grommets to do. Once I had all the grommets in place, sealing them up was easy. The new sealant seems to stick to the rubber material just fine, and it wicked up all the spaces between the grommets and the wires quite nicely. Should be watertight now!