In this chapter, we used Ruby to extend Facter and define custom facts. Custom facts can be used in Hiera hierarchies to reduce complexity and organize our nodes. We then began writing our own custom modules and ran into a few problems with multiple defined resources. Two solutions were presented: virtual resources and refactoring the code.
In the next chapter, we will be making our custom modules more useful with custom types.