Marioneta - Función
Puppet admite funciones como cualquier otro lenguaje de programación, ya que el lenguaje de desarrollo base de Puppet es Ruby. Soporta dos tipos de funciones conocidas con el nombre destatement y rvalue funciones.
Statementsson independientes y no tienen ningún tipo de devolución. Se utilizan para realizar tareas independientes como importar otros módulos de Puppet en el nuevo archivo de manifiesto.
Rvalue devuelve valores y solo se puede utilizar cuando la declaración requiere un valor, como una asignación o una declaración de caso.
La clave detrás de la ejecución de la función en Puppet es que solo se ejecuta en Puppet master y no se ejecutan en el cliente ni en el agente Puppet. Por lo tanto, solo tienen acceso a los comandos y datos disponibles en Puppet master. Hay diferentes tipos de funciones que ya están presentes e incluso el usuario tiene el privilegio de crear funciones personalizadas según los requisitos. A continuación se enumeran algunas funciones integradas.
Función de archivo
La función de archivo del recurso de archivo es cargar un módulo en Puppet y devolver la salida deseada en forma de cadena. Los argumentos que busca son la referencia de <nombre del módulo> / <archivo>, que ayuda a cargar el módulo desde el directorio de archivos del módulo Puppet.
Como script / tesingscript.sh cargará los archivos desde <nombre del módulo> /script/files/testingscript.sh. La función tiene la capacidad de leer y aceptar una ruta absoluta, lo que ayuda a cargar el archivo desde cualquier lugar del disco.
Incluir función
En Puppet, la función de inclusión es muy similar a la función de inclusión en cualquier otro lenguaje de programación. Se utiliza para la declaración de una o más clases, lo que resulta en evaluar todos los recursos presentes dentro de esas clases y finalmente agregarlos a un catálogo. La forma en que funciona es que la función de inclusión acepta un nombre de clase, una lista de clases o una lista de nombres de clases separados por comas.
Una cosa a tener en cuenta al usar un includeLa declaración es que se puede usar varias veces en una clase, pero tiene la limitación de incluir una sola clase solo una vez. Si la clase incluida acepta un parámetro, la función de inclusión buscará automáticamente valores para ellos usando <nombre de clase> :: <nombre de parámetro> como clave de búsqueda.
Incluir función no hace que una clase esté contenida en la clase cuando se declaran, para eso necesitamos usar una función contenida. Incluso no crea una dependencia en la clase declarada y las clases que la rodean.
En la función de inclusión, solo se permite el nombre completo de una clase, no se permiten nombres relativos.
Función definida
En Puppet, la función definida ayuda a determinar dónde se define una clase o tipo de recurso dado y devuelve un valor booleano o no. También se puede usar define para determinar si un recurso específico está definido o la variable definida tiene un valor. El punto clave a tener en cuenta al usar la función definida es que esta función toma al menos un argumento de cadena, que puede ser un nombre de clase, nombre de tipo, referencia de recurso o referencia de variable de la forma "$ nombre".
Defina comprobaciones de función para el tipo de función nativo y definido, incluidos los tipos proporcionados por los módulos. El tipo y la clase se corresponden con sus nombres. La función coincide con la desaceleración del recurso utilizando la referencia de recurso.
Definir coincidencias de funciones
# Matching resource types
defined("file")
defined("customtype")
# Matching defines and classes
defined("testing")
defined("testing::java")
# Matching variables
defined('$name')
# Matching declared resources
defined(File['/tmp/file'])