Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejemplo 1: Instalación de paquetes
importante
El AWS OpsWorks Stacks servicio llegó al final de su vida útil el 26 de mayo de 2024 y se ha desactivado tanto para los clientes nuevos como para los actuales. Recomendamos encarecidamente a los clientes que migren sus cargas de trabajo a otras soluciones lo antes posible. Si tienes preguntas sobre la migración, ponte en contacto con el AWS Support equipo en AWS Re:post
La instalación de paquetes suele ser uno de los usos que se da con más frecuencia a las recetas y, según el paquete, puede ser bastante sencillo. Por ejemplo, la siguiente receta instala Git en un sistema Linux.
package 'git' do action :install end
El recurso package
package_name
que identifica el paquete. La acción install
indica al proveedor que debe instalar el paquete. Puede simplificar aún más el código omitiendo install
, que es la acción predeterminada del recurso package
. Cuando ejecuta la receta, Chef utiliza el proveedor adecuado para instalar el paquete. En el sistema Ubuntu que va a utilizar para el ejemplo, el proveedor instala Git llamando a apt-get
.
nota
Para instalar software en un sistema Windows debe seguirse otro procedimiento algo diferente. Para obtener más información, consulte Instalación de software de Windows.
Si desea utilizar Test Kitchen para ejecutar esta receta en Vagrant, primero debe configurar un libro de recetas e inicializar y configurar Test Kitchen. El procedimiento siguiente se aplica en un sistema Linux, pero es prácticamente el mismo para sistemas Windows y Macintosh. Primero abra una ventana del terminal; todos los ejemplos de este capítulo utilizan herramientas de línea de comandos.
Para preparar el libro de recetas
-
En el directorio principal, cree un subdirectorio denominado
opsworks_cookbooks
que contendrá todos los libros de recetas de este capítulo. A continuación, cree un subdirectorio para este libro de recetas denominadoinstallpkg
y desplácese hasta él. -
En
installpkg
, cree un archivo denominadometadata.rb
que contenga el código siguiente.name "installpkg" version "0.1.0"
Para facilitar su comprensión, los ejemplos de este capítulo solo indican el nombre y la versión del libro de recetas, pero
metadata.rb
puede contener varios metadatos de libro de recetas. Para obtener más información, consulte Acerca de los metadatos de libros de recetas. nota
Compruebe que
metadata.rb
esté creado antes de inicializar Test Kitchen, ya que esta herramienta utiliza los datos para crear el archivo de configuración predeterminado. -
En
installpkg
, ejecutekitchen init
, que inicializa Test Kitchen e instala el controlador Vagrant predeterminado. -
El
kitchen init
comando crea un archivo YAML de configuración llamado.installpkg
.kitchen.yml
Abra el archivo en el editor de texto que prefiera. El archivo.kitchen.yml
tiene una secciónplatforms
que especifica en qué sistemas deben ejecutarse las recetas. Test Kitchen crea una instancia y ejecuta las recetas específicas en cada plataforma.nota
De forma predeterminada, Test Kitchen ejecuta las recetas en una plataforma a la vez. Si añade un argumento
-p
a cualquier comando que cree una instancia, Test Kitchen ejecutará las recetas en todas las plataformas, en paralelo.Para este ejemplo, basta con una única plataforma; así que edite
.kitchen.yml
para eliminar la plataformacentos-6.4
. El archivo.kitchen.yml
debe tener un aspecto similar al siguiente:--- driver: name: vagrant provisioner: name: chef_solo platforms: - name: ubuntu-12.04 suites: - name: default run_list: - recipe[installpkg::default] attributes:
Test Kitchen solo ejecuta las recetas que se encuentran en la lista de ejecución
.kitchen.yml
. Las recetas se identifican mediante el[
formato, donde secookbook_name
::recipe_name
]recipe_name
omite la.rb
extensión. Al principio, la lista de ejecución.kitchen.yml
contiene la receta predeterminada del libro de recetas,installpkg::default
. Es la receta que va a implementar, por lo que no necesitará modificar la lista de ejecución. -
Cree un subdirectorio de
installpkg
llamadorecipes
.Si un libro de recetas contiene recetas, como suele ser el caso, estas deben encontrarse en el subdirectorio
recipes
.
Ahora puede añadir la receta al libro de recetas y usar Test Kitchen para ejecutarla en una instancia.
Para ejecutar la receta
-
Cree un archivo denominado
default.rb
que contenga el código de ejemplo de instalación de Git del principio de la sección y guárdelo en el subdirectoriorecipes
. -
En el directorio de
installpkg
, ejecutekitchen converge
. Este comando comienza una nueva instancia de Ubuntu en Vagrant, copia los libros de recetas en la instancia y comienza una ejecución de Chef para ejecutar las recetas en la lista de ejecución.kitchen.yml
. -
Para comprobar que la receta se ha realizado correctamente, ejecuta
kitchen login
, lo que abre una SSH conexión con la instancia. A continuación, ejecutegit --version
para verificar que Git se haya instalado correctamente. Para volver a la estación de trabajo, ejecuteexit
. -
Cuando haya terminado, ejecute
kitchen destroy
para cerrar la instancia. En el ejemplo siguiente se utiliza otro libro de recetas.
Este ejemplo era un buen punto de partida, pero era demasiado sencillo. La instalación de otros paquetes puede ser más compleja; en dicho caso, puede que necesite ejecutar algunas de las operaciones siguientes:
-
Crear y configurar un usuario.
-
Crear uno o varios directorios de datos, registros, etc.
-
Instalar uno o varios archivos de configuración.
-
Especificar otro nombre de paquete u otros valores de atributos para sistemas operativos diferentes.
-
Iniciar un servicio y después reiniciarlo cuando sea necesario.
En los ejemplos siguientes se describe cómo afrontar estos problemas, junto con algunas otras operaciones útiles.