@@ -1,170 +0,0 @@
|
||||
---
|
||||
title: Acerca de acciones
|
||||
intro: 'Las acciones son tareas individuales que puedes combinar para crear trabajos y personalizar tu flujo de trabajo. Puedes crear tus propias acciones, o utilizar y personalizar a quellas que comparte la comunidad de {% data variables.product.prodname_dotcom %}.'
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
redirect_from:
|
||||
- /articles/about-actions
|
||||
- /github/automating-your-workflow-with-github-actions/about-actions
|
||||
- /actions/automating-your-workflow-with-github-actions/about-actions
|
||||
- /actions/building-actions/about-actions
|
||||
versions:
|
||||
free-pro-team: '*'
|
||||
enterprise-server: '>=2.22'
|
||||
github-ae: '*'
|
||||
type: overview
|
||||
topics:
|
||||
- Action development
|
||||
- Fundamentals
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Acerca de acciones
|
||||
|
||||
Puedes crear acciones escribiendo un código personalizado que interactúe con tu repositorio de la manera que desees, incluida la integración con las API de {% data variables.product.prodname_dotcom %} y cualquier API de terceros disponible públicamente. Por ejemplo, una acción puede publicar módulos npm, enviar alertas por SMS cuando se crean propuestas urgentes o implementar un código listo para producción.
|
||||
|
||||
{% if currentVersion == "free-pro-team@latest" %}
|
||||
Puedes escribir tus propias acciones para usar en tu flujo de trabajo o compartir las acciones que crees con la comunidad de {% data variables.product.prodname_dotcom %}. Para compartir las acciones que creaste, tu repositorio debe ser público.
|
||||
{% endif %}
|
||||
|
||||
Las acciones pueden ejecutarse directamente en una máquina o en un contenedor Docker. Puedes definir las entradas, las salidas y las variables de entorno de una acción.
|
||||
|
||||
### Tipos de acciones
|
||||
|
||||
Puedes crear acciones de contenedor Docker y JavaScript. Las acciones requieren un archivo de metadatos para definir las entradas, salidas y puntos de entrada para tu acción. El nombre del archivo de metadatos debe ser `action.yml` o `action.yaml`. Para obtener más información, consulta "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/articles/metadata-syntax-for-github-actions)"
|
||||
|
||||
| Tipo | Sistema operativo |
|
||||
| ----------------------------- | --------------------- |
|
||||
| Contenedor Docker | Linux |
|
||||
| JavaScript | Linux, MacOS, Windows |
|
||||
| Pasos de ejecución compuestos | Linux, MacOS, Windows |
|
||||
|
||||
#### Acciones del contenedor Docker
|
||||
|
||||
Los contenedores Docker empaquetan el entorno con el código {% data variables.product.prodname_actions %}. Esto crea una unidad de trabajo más consistente y confiable, ya que el consumidor de la acción no necesita preocuparse por las herramientas o las dependencias.
|
||||
|
||||
Un contenedor Docker te permite usar versiones específicas de un sistema operativo, dependencias, herramientas y código. Para las acciones que se deben ejecutar en una configuración de entorno específica, Docker es una opción ideal porque puedes personalizar el sistema operativo y las herramientas. Debido a la latencia para crear y recuperar el contenedor, las acciones del contenedor Docker son más lentas que las acciones de JavaScript.
|
||||
|
||||
Las acciones de contenedor de Docker solo pueden ejecutarse en ejecutores con un sistema operativo Linux. {% data reusables.github-actions.self-hosted-runner-reqs-docker %}
|
||||
|
||||
#### Acciones de JavaScript
|
||||
|
||||
Las acciones de JavaScript pueden ejecutarse directamente en una máquina del ejecutor y separar el código de acción del entorno utilizado para ejecutar el código. El uso de una acción de JavaScript simplifica el código de acción y se ejecuta más rápido que una acción de contenedor Docker.
|
||||
|
||||
{% data reusables.github-actions.pure-javascript %}
|
||||
|
||||
Si estás desarrollando un proyecto Node.js, el conjunto de herramientas de las {% data variables.product.prodname_actions %} te ofrece paquetes que puedes usar en tu proyecto para acelerar el desarrollo. Para obtener más información, consulta el repositorio [actions/toolkit](https://github.com/actions/toolkit).
|
||||
|
||||
#### Acciones compuestas de los pasos de ejecución
|
||||
|
||||
Una acción para los _pasos de ejecución compuestos_ te permite combinar varios pasos de ejecuciónes de flujo de trabajo en una misma acción. Por ejemplo, puedes utilizar esta característica para agrupar varios comandos de ejecución en una acción y después tener un flujo de trabajo que ejecute estos comandos agrupados en un solo paso utilizando esta acción. Para ver un ejemplo, revisa la sección "[Crear una acción de pasos de ejecución compuestos](/actions/creating-actions/creating-a-composite-run-steps-action)".
|
||||
|
||||
### Elegir una ubicación para tu acción
|
||||
|
||||
Si estás desarrollando una acción para que otras personas la utilicen, te recomendamos mantener la acción en su propio repositorio en lugar de agruparla con otro código de aplicación. Esto te permite versionar, rastrear y lanzar la acción como cualquier otro software.
|
||||
|
||||
{% if currentVersion == "free-pro-team@latest" %}
|
||||
Con el almacenamiento de una acción en su propio repositorio es más fácil para la comunidad de {% data variables.product.prodname_dotcom %} descubrir la acción, reduce el alcance de la base de código para que los desarrolladores solucionen problemas y extiendan la acción, y desacopla el control de versiones de otro código de aplicación.
|
||||
{% endif %}
|
||||
|
||||
Si estás creando una acción que no planeas poner a disposición del público, puedes almacenar los archivos de la acción en cualquier ubicación de tu repositorio. Si tienes la intención de combinar la acción, el flujo de trabajo y el código de aplicación en un único repositorio, es recomendable que almacenes las acciones en el directorio `.github`. Por ejemplo, `.github/actions/action-a` y `.github/actions/action-b`.
|
||||
|
||||
### Utilizar la administración de lanzamientos para las acciones
|
||||
|
||||
Para garantizar de que tu acción es compatible con {% data variables.product.prodname_ghe_server %}, debes asegurarte de que no utilices ninguna referencia escrita a mano para las URL de la API de {% data variables.product.prodname_dotcom %}. En vez de esto, utiliza variables de ambiente para referirte a la API de {% data variables.product.prodname_dotcom %}:
|
||||
|
||||
- Crear y validar un lanzamiento en una rama de lanzamiento (tal como `release/v1`) antes de crear la etiqueta de lanzamiento (por ejemplo, `v1.0.2`).
|
||||
- Para el caso de GraphQL, utiliza la variable de ambiente `GITHUB_GRAPHQL_URL`.
|
||||
|
||||
Para obtener más información, consulta la sección "[Variables de ambiente predeterminadas](/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables)."
|
||||
|
||||
### Utilizar la administración de lanzamientos para las acciones
|
||||
|
||||
Esta sección explica cómo puedes utilizar la administración de lanzamientos para distribuir actualizaciones a tus acciones de forma predecible.
|
||||
|
||||
#### Buenas prácticas para la administración de lanzamientos
|
||||
|
||||
Si estás desarrollando una acción para que la utilicen otras personas, te recomendamos utilizar la administración de lanzamientos para controlar cómo distribuyes las actualizaciones. Los usuarios pueden esperar que una versión mayor de una acción incluya correcciones críticas y parches de seguridad necesarios y que se mantenga compatible con los flujos de trabajo existentes. Deberías considerar lanzar una versión mayor cada que tus cambios afecten la compatibilidad.
|
||||
|
||||
Bajo este acercamiento de administración de lanzamientos, los usuarios no deberían referenciar una rama `master` de una acción, ya que es probable que contenga el código más reciente y, en consecuencia, podría ser inestable. En vez de esto, puedes recomendar a tus usuarios que especifiquen una versión mayor cuando utilicen tu acción, y únicamente dirigirlos a una versión más específica si encuentran algún problema.
|
||||
|
||||
Para utilizar una versión específica de la acción, los usuarios pueden configurar su flujo de trabajo de {% data variables.product.prodname_actions %} para apuntar a una etiqueta, el SHA de una confirmación o a una rama denominada para un lanzamiento.
|
||||
|
||||
#### Utilizar etiquetas para la administración de lanzamientos
|
||||
|
||||
Te recomendamos utilizar etiquetas para la administración de lanzamientos de acciones. Al utilizar este acercamiento, tus usuarios pueden distinguir claramente entre las versiones mayores y menores:
|
||||
|
||||
- Crear y validar un lanzamiento en una rama de lanzamiento (tal como `release/v1`) antes de crear la etiqueta de lanzamiento (por ejemplo, `v1.0.2`).
|
||||
- Crear un lanzamiento utilizando un versionamiento semántico. Para obtener más información, consulta "[Creating releases](/articles/creating-a-label/) (Crear lanzamientos)".
|
||||
- Mover la etiqueta de versión mayor (tal como `v1`, `v2`) para apuntar a la referencia de Git en el lanzamiento actual. Para obtener más información, consulta [Conceptos básicos de Git: etiquetas](https://git-scm.com/book/en/v2/Git-Basics-Tagging)".
|
||||
- Introducir una etiqueta de versión mayor (`v2`) para los cambios que modificarán sustancialmente los flujos de trabajo existentes. Por ejemplo, un cambio importante será cambiar las entradas de una acción.
|
||||
- Las versiones mayores pueden lanzarse inicialmente con una etiqueta de `beta` para indicar su estado, por ejemplo, `v2-beta`. La etiqueta `-beta` puede eliminarse entonces cuando esté listo.
|
||||
|
||||
Este ejemplo demuestra como un usuario puede referenciar una etiqueta de un lanzamiento mayor:
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- uses: actions/javascript-action@v1
|
||||
```
|
||||
|
||||
Este ejemplo demuestra como un usuario puede referenciar una etiqueta de un lanzamiento de parche:
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- uses: actions/javascript-action@v1.0.1
|
||||
```
|
||||
|
||||
#### Utilizar ramas para la administración de lanzamientos
|
||||
|
||||
Si prefieres utilizar nombres de rama para la administración de lanzamientos, este ejemplo demuestra como referenciar una rama nombrada:
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- uses: actions/javascript-action@v1-beta
|
||||
```
|
||||
|
||||
#### Utilizar el SHA de las confirmaciones para la administración de lanzamientos
|
||||
|
||||
Cada confirmación de Git recibe un valor calculado de SHA, el cual es único e inmutable. Los usuarios de tus acciones podrían preferir obtener un valor de SHA para la confirmación, ya que este acercamiento puede ser más confiable que especificar una etiqueta, la cual podría borrarse o moverse. Sin embargo, esto significa que los usuarios no recibirán ls actualizaciones posteriores que se hagan a la acción. Utilizar el valor completo de SHA de una confirmación en vez de su valor abreviado puede ayudar a prevenir que las personas utilicen una confirmación malintencionada que utilice la misma abreviación.
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- uses: actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89
|
||||
```
|
||||
|
||||
### Crear un archivo README para tu acción
|
||||
|
||||
Si tienes la intención de compartir públicamente tu acción, te recomendamos crear un archivo README para ayudar a las personas a que aprendan a usar tu acción. Puedes incluir esta información en tu `README.md`:
|
||||
|
||||
- Una descripción detallada de lo que hace la acción.
|
||||
- Argumentos necesarios de entrada y salida.
|
||||
- Argumentos opcionales de entrada y salida.
|
||||
- Secretos que utiliza la acción.
|
||||
- Variables de entorno que utiliza la acción.
|
||||
- Un ejemplo de cómo usar tu acción en un flujo de trabajo.
|
||||
|
||||
### Comparar {% data variables.product.prodname_actions %} para {% data variables.product.prodname_github_apps %}
|
||||
|
||||
{% data variables.product.prodname_marketplace %} ofrece herramientas para mejorar tu flujo de trabajo. Comprender las diferencias y los beneficios de cada herramienta te permitirá seleccionar la mejor herramienta para tu trabajo. Para obtener más información acerca de la creacción de acciones y apps, consulta las secciones "[Acerca de Github Actions](/actions/getting-started-with-github-actions/about-github-actions)" y "[Acerca de las apps](/apps/about-apps/)".
|
||||
|
||||
#### Fortalezas de las acciones y las aplicaciones de GitHub
|
||||
|
||||
Mientras que tanto las {% data variables.product.prodname_actions %} como las {% data variables.product.prodname_github_app %} proporcionan formas de construir herramientas de automatización y flujo de trabajo, cada una tiene fortalezas que las hacen útiles de diferentes maneras.
|
||||
|
||||
{% data variables.product.prodname_github_apps %}:
|
||||
* Se ejecutan de manera persistente y pueden reaccionar rápidamente a los eventos.
|
||||
* Funcionan bien cuando se necesitan datos de manera persistente.
|
||||
* Funcionan mejor con las solicitudes de API que no consumen mucho tiempo.
|
||||
* Se ejecutan en un servidor o infraestructura de computación que proporciones.
|
||||
|
||||
{% data variables.product.prodname_actions %}:
|
||||
* Brindan automatización que puede realizar una integración continua y una implementación continua.
|
||||
* Pueden ejecutarse directamente en máquinas de ejecutor o en contenedores Docker.
|
||||
* Pueden incluir acceso a un clon de tu repositorio, lo que permite que las herramientas de implementación y publicación, los formateadores de código y las herramientas de la línea de comando accedan a tu código.
|
||||
* No necesitan que implementas un código o que sirvas una aplicación.
|
||||
* Tienen una interfaz simple para crear y usar secretos, que permite que las acciones interactúen con servicios de terceros sin la necesidad de almacenar las credenciales de la persona que utiliza la acción.
|
||||
|
||||
### Leer más
|
||||
|
||||
- "[Herramientas de desarrollo para {% data variables.product.prodname_actions %}](/articles/development-tools-for-github-actions)"
|
||||
@@ -1,120 +0,0 @@
|
||||
---
|
||||
title: Crear una acción para pasos de ejecución compuestos
|
||||
intro: En esta guía aprenderás cómo crear una acción para los pasos de ejecución compuestos.
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
versions:
|
||||
free-pro-team: '*'
|
||||
enterprise-server: '>=2.22'
|
||||
github-ae: '*'
|
||||
type: tutorial
|
||||
topics:
|
||||
- Action development
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Introducción
|
||||
|
||||
En esta guía aprenderás sobre los componentes básicos que se requieren para crear y utilizar una acción de pasos de ejecución compuestos empacada. Para centrar esta guía en los componentes necesarios para empaquetar la acción, la funcionalidad del código de la acción es mínima. La acción imprime "Hello World" y después "Goodbye", o si proporcionas un nombre personalizado, imprime "Hello [who-to-greet]" y luego "Goodbye". La acción también mapea un número aleatorio hacia la variable de salida `random-number`, y ejecuta un script denominado `goodbye.sh`.
|
||||
|
||||
Una vez que completes este proyecto, deberás entender cómo construir tu accion para pasos de ejecución compuestos para probarla en un flujo de trabajo.
|
||||
|
||||
### Prerrequisitos
|
||||
|
||||
Antes de que comiences, crearás un repositorio de {% data variables.product.product_name %}.
|
||||
|
||||
1. Crea un repositorio público nuevo en {% data variables.product.product_location %}. Puedes elegir cualquier nombre de repositorio o utilizar el siguiente ejemplo de `hello-world-composite-run-steps-action`. Puedes agregar estos archivos después de que tu proyecto se haya subido a {% data variables.product.product_name %}. Para obtener más información, consulta "[Crear un repositorio nuevo](/articles/creating-a-new-repository)".
|
||||
|
||||
1. Clona el repositorio en tu computadora. Para obtener más información, consulta "[Clonar un repositorio](/articles/cloning-a-repository)".
|
||||
|
||||
1. Desde tu terminal, cambia los directorios en el repositorio nuevo.
|
||||
|
||||
```shell
|
||||
cd hello-world-composite-run-steps-action
|
||||
```
|
||||
|
||||
2. En el repositorio `hello-world-composite-run-steps-action`, crea un archivo nuevo que se llame `goodbye.sh` y agrega el siguiente código de ejemplo:
|
||||
|
||||
```bash
|
||||
echo "Goodbye"
|
||||
```
|
||||
|
||||
1. Desde tu terminal, haz ejecutable a `goodbye.sh` y verifícalo en tu repositorio.
|
||||
|
||||
```shell
|
||||
chmod +x goodbye.sh
|
||||
```
|
||||
|
||||
1. Desde tu terminal, ingresa tu archivo `goodbye.sh`.
|
||||
```shell
|
||||
git add goodbye.sh
|
||||
git commit -m "Add goodbye script"
|
||||
git push
|
||||
```
|
||||
|
||||
### Crear un archivo de metadatos de una acción
|
||||
|
||||
1. En el repositorio `hello-world-composite-run-steps-action`, crea un archivo nuevo que se llame `action.yml` y agrega el siguiente código de ejemplo. Para obtener más información acerca de esta sintaxis, consulta la sección de "[`runs` para encontrar los pasos de ejecución compuestos](/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-composite-run-steps-actions)".
|
||||
|
||||
{% raw %}
|
||||
**action.yml**
|
||||
```yaml
|
||||
name: 'Hello World'
|
||||
description: 'Greet someone'
|
||||
inputs:
|
||||
who-to-greet: # id of input
|
||||
description: 'Who to greet'
|
||||
required: true
|
||||
default: 'World'
|
||||
outputs:
|
||||
random-number:
|
||||
description: "Random number"
|
||||
value: ${{ steps.random-number-generator.outputs.random-id }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- run: echo Hello ${{ inputs.who-to-greet }}.
|
||||
shell: bash
|
||||
- id: random-number-generator
|
||||
run: echo "::set-output name=random-id::$(echo $RANDOM)"
|
||||
shell: bash
|
||||
- run: ${{ github.action_path }}/goodbye.sh
|
||||
shell: bash
|
||||
```
|
||||
{% endraw %}
|
||||
Este archivo define la entrada `who-to-greet`, mapea el número generado aleatoriamente en la variable de salida `random-number` y ejecuta el script de `goodbye.sh`. También le dice al ejecutor cómo ejecutar la acción de los pasos de ejecución compuestos.
|
||||
|
||||
Para obtener más información acerca de cómo administrar las alidas, consulta la secicón "[`outputs` para los pasos de ejecución compuestos](/actions/creating-actions/metadata-syntax-for-github-actions#outputs-for-composite-run-steps-actions)".
|
||||
|
||||
Para obtener más información acerca de cómo utilizar `github.action_path`, consulta la sección "[`github context`](/actions/reference/context-and-expression-syntax-for-github-actions#github-context)".
|
||||
|
||||
1. Crear una etiqueta nueva. Este ejemplo utiliza una etiqueta llamada `v1` para la rama principal. Para obtener más información, consulta la sección "[Crear una etiqueta](/github/managing-your-work-on-github/creating-a-label)".
|
||||
|
||||
### Probar tu acción en un flujo de trabajo
|
||||
|
||||
El siguiente código de flujo de trabajo utiliza la acción completada de "hello world" que hiciste previamente en "[Crear un archivo de metadatos para la acción](/actions/creating-actions/creating-a-composite-run-steps-action#creating-an-action-metadata-file)".
|
||||
|
||||
Copia el código del flujo de trabajo en un archivo `.github/workflows/main.yml` en otro repositorio, pero reemplaza a `actions/hello-world-composite-run-steps-action@v1` con el prepositorio y la etiqueta que creaste. También puedes reemplazar la entrada `who-to-greet` con tu nombre.
|
||||
|
||||
{% raw %}
|
||||
**.github/workflows/main.yml**
|
||||
```yaml
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
hello_world_job:
|
||||
runs-on: ubuntu-latest
|
||||
name: A job to say hello
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- id: foo
|
||||
uses: actions/hello-world-composite-run-steps-action@v1
|
||||
with:
|
||||
who-to-greet: 'Mona the Octocat'
|
||||
- run: echo random-number ${{ steps.foo.outputs.random-number }}
|
||||
shell: bash
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Desde tu repositorio, da clic en la pestaña de **Acciones** y selecciona la última ejecución de flujo de trabajo. La salida deberá incluir "Hello Mona the Octocat", el resultado del script de "Goodbye" y un número aleatorio.
|
||||
@@ -1,236 +0,0 @@
|
||||
---
|
||||
title: Crear una acción de contenedor de Docker
|
||||
intro: Esta guía te muestra los pasos mínimos necesarios para desarrollar una acción de contenedor Docker.
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
redirect_from:
|
||||
- /articles/creating-a-docker-container-action
|
||||
- /github/automating-your-workflow-with-github-actions/creating-a-docker-container-action
|
||||
- /actions/automating-your-workflow-with-github-actions/creating-a-docker-container-action
|
||||
- /actions/building-actions/creating-a-docker-container-action
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
topics:
|
||||
- Action development
|
||||
- Docker
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Introducción
|
||||
|
||||
Esta guía te muestra los pasos mínimos necesarios para desarrollar una acción de contenedor de Docker. Para centrar esta guía en los componentes necesarios para empaquetar la acción, la funcionalidad del código de la acción es mínima. La acción imprime "Hello World" en los registros o "Hello [who-to-greet]"si proporcionas un nombre personalizado.
|
||||
|
||||
Una vez que completes este proyecto, deberías comprender cómo crear tu propia acción de contenedor Docker y probarla en un flujo de trabajo.
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-reqs-docker %}
|
||||
|
||||
### Prerrequisitos
|
||||
|
||||
Puede resultar útil tener un conocimiento básico de las variables de entorno de las {% data variables.product.prodname_actions %} y del sistema de archivos del contenedor de Docker:
|
||||
|
||||
- "[Usar variables de entorno](/actions/automating-your-workflow-with-github-actions/using-environment-variables)"
|
||||
- "[Entornos virtuales para {% data variables.product.prodname_dotcom %}](/actions/automating-your-workflow-with-github-actions/virtual-environments-for-github-hosted-runners#docker-container-filesystem)"
|
||||
|
||||
Antes de comenzar, necesitarás crear un repositorio GitHub.
|
||||
|
||||
1. Crea un repositorio nuevo en {% data variables.product.product_location %}. Puedes elegir cualquier nombre de repositorio o usar "hello-world-docker-action" como este ejemplo. Para obtener más información, consulta "[Crear un repositorio nuevo](/articles/creating-a-new-repository)".
|
||||
|
||||
1. Clona el repositorio en tu computadora. Para obtener más información, consulta "[Clonar un repositorio](/articles/cloning-a-repository)".
|
||||
|
||||
1. Desde tu terminal, cambia los directorios en el repositorio nuevo.
|
||||
|
||||
```shell
|
||||
cd hello-world-docker-action
|
||||
```
|
||||
|
||||
### Crear un Dockerfile
|
||||
|
||||
En tu nuevo directorio `hello-world-docker-action`, crea un nuevo archivo `Dockerfile`. Para obtener más información, consulta al "[Sporte de Dockerfile para {% data variables.product.prodname_actions %}](/actions/creating-actions/dockerfile-support-for-github-actions)".
|
||||
|
||||
**Dockerfile**
|
||||
```dockerfile
|
||||
# Imagen del contenedor que ejecuta tu código
|
||||
FROM alpine:3.10
|
||||
|
||||
# Copias tu archivo de código de tu repositorio de acción a la ruta `/`del contenedor
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
# Archivo del código a ejecutar cuando comienza el contedor del docker (`entrypoint.sh`)
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
```
|
||||
|
||||
### Crear un archivo de metadatos de una acción
|
||||
|
||||
Crear un nuevo archivo `action.yml` en el directorio `hello-world-docker` que creaste anteriormente. Para obtener más información, consulta la sección "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions)".
|
||||
|
||||
{% raw %}
|
||||
**action.yml**
|
||||
```yaml
|
||||
# action.yml
|
||||
name: 'Hello World'
|
||||
description: 'Greet someone and record the time'
|
||||
inputs:
|
||||
who-to-greet: # id of input
|
||||
description: 'Who to greet'
|
||||
required: true
|
||||
default: 'World'
|
||||
outputs:
|
||||
time: # id of output
|
||||
description: 'The time we greeted you'
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'Dockerfile'
|
||||
args:
|
||||
- ${{ inputs.who-to-greet }}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Este metado define un parámetro de entrada `who-to-greet` y uno de salida `time`. Para pasar las entradas al contenedor Docker, debes declarar la entrada usando `inputs` y pasar la entrada a la palabra clave `args`.
|
||||
|
||||
{% data variables.product.prodname_dotcom %} creará una imagen desde tu `Dockerfile` y ejecutar comandos en nuevo contenedor usando esta imagen.
|
||||
|
||||
### Escribir el código de la acción
|
||||
|
||||
Puedes elegir cualquier imagen de Docker base y, por lo tanto, cualquier idioma para tu acción. El siguiente ejemplo de script shell usa la variable de entrada `who-to-greet` para imprimir "Hello [who-to-greet]" en el archivo de registro.
|
||||
|
||||
A continuación, el script obtiene la hora actual y la establece como una variable de salida que pueden usar las acciones que se ejecutan posteriormente en unt rabajo. Para que {% data variables.product.prodname_dotcom %} reconozca las variables de salida, debes usar un comando de flujo de trabajo en una sintaxis específica: `echo ":: set-Output Name =<output name>::<value>"`. Para obtener más información, consulta "[Comandos de flujo de trabajo para {% data variables.product.prodname_actions %}](/actions/reference/workflow-commands-for-github-actions#setting-an-output-parameter)".
|
||||
|
||||
1. Crea un archivo `entrypoint.sh` nuevo en el directorio `hello-world-docker-action`.
|
||||
|
||||
1. Convierte tu archivo `entrypoint.sh` en ejecutable:
|
||||
|
||||
```shell
|
||||
chmod +x entrypoint.sh
|
||||
```
|
||||
|
||||
1. Agrega el siguiente código a tu archivo `entrypoint.sh`.
|
||||
|
||||
**entrypoint.sh**
|
||||
```shell
|
||||
#!/bin/sh -l
|
||||
|
||||
echo "Hello $1"
|
||||
time=$(date)
|
||||
echo "::set-output name=time::$time"
|
||||
```
|
||||
|
||||
Si `entrypoint.sh` se ejecuta sin errores, el estado de la acción se establece en `exitoso`. También puedes establecer explícitamente códigos de salida en el código de tu acción para proporcionar el estado de una acción. Para obtener más información, consulta la sección "[Configurar los códigos de salida para las acciones](/actions/creating-actions/setting-exit-codes-for-actions)".
|
||||
|
||||
### Crear un README
|
||||
|
||||
Puedes crear un archivo README para que las personas sepan cómo usar tu acción. Un archivo README resulta más útil cuando planificas el intercambio de tu acción públicamente, pero también es una buena manera de recordarle a tu equipo cómo usar la acción.
|
||||
|
||||
En tu directorio <`hello-world-docker-action`, crea un archivo `README.md` que especifique la siguiente información:
|
||||
|
||||
- Una descripción detallada de lo que hace la acción.
|
||||
- Argumentos necesarios de entrada y salida.
|
||||
- Argumentos opcionales de entrada y salida.
|
||||
- Secretos que utiliza la acción.
|
||||
- Variables de entorno que utiliza la acción.
|
||||
- Un ejemplo de cómo usar tu acción en un flujo de trabajo.
|
||||
|
||||
**README.md**
|
||||
```markdown
|
||||
# Acción de docker Hello world
|
||||
|
||||
Esta acción imprime "Hello World" o "Hello" + el nombre de una persona a quien saludar en el registro.
|
||||
|
||||
## Entradas
|
||||
|
||||
### `who-to-greet`
|
||||
|
||||
**Obligatorio** El nombre de la persona a quien saludar. Default `"World"`.
|
||||
|
||||
## Outputs
|
||||
|
||||
### `time`
|
||||
|
||||
El tiempo en que lo saludamos.
|
||||
|
||||
## Ejemplo de uso
|
||||
|
||||
uses: actions/hello-world-docker-action@v1
|
||||
with:
|
||||
who-to-greet: 'Mona the Octocat'
|
||||
```
|
||||
|
||||
### Confirmar, etiquetar y subir tu acción a GitHub
|
||||
|
||||
Desde tu terminal, confirma tus archivos `action.yml`, `entrypoint.sh`, `Dockerfile`, y `README.md`.
|
||||
|
||||
También se recomienda agregarles una etiqueta de versión a los lanzamientos de tu acción. Para obtener más información sobre el control de versiones de tu acción, consulta la sección "[Acerca de las acciones](/actions/automating-your-workflow-with-github-actions/about-actions#using-release-management-for-actions)".
|
||||
|
||||
```shell
|
||||
git add action.yml entrypoint.sh Dockerfile README.md
|
||||
git commit -m "Mi primera acción está lista"
|
||||
git tag -a -m "Mi primera versión de acción" v1
|
||||
git push --follow-tags
|
||||
```
|
||||
|
||||
### Probar tu acción en un flujo de trabajo
|
||||
|
||||
Ahora estás listo para probar tu acción en un flujo de trabajo. Cuando una acción esté en un repositorio privado, la acción solo puede usarse en flujos de trabajo en el mismo repositorio. Las acciones públicas pueden ser usadas por flujos de trabajo en cualquier repositorio.
|
||||
|
||||
{% data reusables.actions.enterprise-marketplace-actions %}
|
||||
|
||||
#### Ejemplo usando una acción pública
|
||||
|
||||
El siguiente código de flujo de trabajo usa la acción completa hello world en el repositorio público [`actions/hello-world-docker-action`](https://github.com/actions/hello-world-docker-action). Copia el siguiente código de ejemplo de flujo de trabajo en un archivo `.github/workflows/main.yml`, pero reemplaza `actions/hello-world-docker-action` por tu nombre de repositorio y acción. También puedes reemplazar la entrada `who-to-greet` con tu nombre.
|
||||
|
||||
{% raw %}
|
||||
**.github/workflows/main.yml**
|
||||
```yaml
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
hello_world_job:
|
||||
runs-on: ubuntu-latest
|
||||
name: A job to say hello
|
||||
steps:
|
||||
- name: Hello world action step
|
||||
id: hello
|
||||
uses: actions/hello-world-docker-action@v1
|
||||
with:
|
||||
who-to-greet: 'Mona the Octocat'
|
||||
# Use the output from the `hello` step
|
||||
- name: Get the output time
|
||||
run: echo "The time was ${{ steps.hello.outputs.time }}"
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
#### Ejemplo usando una acción privada
|
||||
|
||||
Copia el siguiente ejemplo de código de flujo de trabajo en un archivo `.github/workflows/main.yml` en tu repositorio de acción. También puedes reemplazar la entrada `who-to-greet` con tu nombre.
|
||||
|
||||
{% raw %}
|
||||
**.github/workflows/main.yml**
|
||||
```yaml
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
hello_world_job:
|
||||
runs-on: ubuntu-latest
|
||||
name: A job to say hello
|
||||
steps:
|
||||
# To use this repository's private action,
|
||||
# you must check out the repository
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Hello world action step
|
||||
uses: ./ # Uses an action in the root directory
|
||||
id: hello
|
||||
with:
|
||||
who-to-greet: 'Mona the Octocat'
|
||||
# Use the output from the `hello` step
|
||||
- name: Get the output time
|
||||
run: echo "The time was ${{ steps.hello.outputs.time }}"
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Desde tu repositorio, da clic en la pestaña de **Acciones** y selecciona la última ejecución de flujo de trabajo. Deberías ver "Hello Mona the Octocat" o el nombre que usaste para la entrada `who-to-greet` y la marcación de hora impresa en el registro.
|
||||
|
||||

|
||||
@@ -1,266 +0,0 @@
|
||||
---
|
||||
title: Crear una acción de JavaScript
|
||||
intro: 'En esta guía, aprenderás como desarrollar una acción de JavaScript usando el kit de herramientas de acciones.'
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
redirect_from:
|
||||
- /articles/creating-a-javascript-action
|
||||
- /github/automating-your-workflow-with-github-actions/creating-a-javascript-action
|
||||
- /actions/automating-your-workflow-with-github-actions/creating-a-javascript-action
|
||||
- /actions/building-actions/creating-a-javascript-action
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
topics:
|
||||
- Action development
|
||||
- JavaScript
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Introducción
|
||||
|
||||
En esta guía, aprenderás acerca de los componentes básicos necesarios para crear y usar una acción de JavaScript empaquetada. Para centrar esta guía en los componentes necesarios para empaquetar la acción, la funcionalidad del código de la acción es mínima. La acción imprime "Hello World" en los registros o "Hello [who-to-greet]"si proporcionas un nombre personalizado.
|
||||
|
||||
Esta guía usa el módulo Node.js del kit de herramientas {% data variables.product.prodname_actions %} para acelerar el desarrollo. Para obtener más información, consulta el repositorio [actions/toolkit](https://github.com/actions/toolkit).
|
||||
|
||||
Una vez que completes este proyecto, deberías comprender cómo crear tu propia acción de JavaScript y probarla en un flujo de trabajo.
|
||||
|
||||
{% data reusables.github-actions.pure-javascript %}
|
||||
|
||||
### Prerrequisitos
|
||||
|
||||
Antes de comenzar, necesitarás descargar Node.js y crear un repositorio GitHub.
|
||||
|
||||
1. Descarga e instala Node.js 12.x, que incluye npm.
|
||||
|
||||
https://nodejs.org/en/download/current/
|
||||
|
||||
1. Crea un repositorio nuevo en {% data variables.product.product_location %}. Puedes elegir cualquier nombre de repositorio o usar "hello-world-javascript-action" como este ejemplo. Puedes agregar estos archivos después de que tu proyecto se haya subido a {% data variables.product.product_name %}. Para obtener más información, consulta "[Crear un repositorio nuevo](/articles/creating-a-new-repository)".
|
||||
|
||||
1. Clona el repositorio en tu computadora. Para obtener más información, consulta "[Clonar un repositorio](/articles/cloning-a-repository)".
|
||||
|
||||
1. Desde tu terminal, cambia los directorios en el repositorio nuevo.
|
||||
|
||||
```shell
|
||||
cd hello-world-javascript-action
|
||||
```
|
||||
|
||||
1. Desde tu terminal, inicializa el directorio con un archivo `package.json`.
|
||||
|
||||
```shell
|
||||
npm init -y
|
||||
```
|
||||
|
||||
### Crear un archivo de metadatos de una acción
|
||||
|
||||
Crea un nuevo archivo `action.yml` en el directorio `hello-world-javascript-action` con el siguiente código de ejemplo. Para obtener más información, consulta la sección "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions)".
|
||||
|
||||
|
||||
**action.yml**
|
||||
```yaml
|
||||
name: 'Hello World'
|
||||
description: 'Greet someone and record the time'
|
||||
inputs:
|
||||
who-to-greet: # id of input
|
||||
description: 'Who to greet'
|
||||
required: true
|
||||
default: 'World'
|
||||
outputs:
|
||||
time: # id of output
|
||||
description: 'The time we greeted you'
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'index.js'
|
||||
```
|
||||
|
||||
Este archivo define la entrada `who-to-greet` y la salida `time`. También informa al ejecutador de la acción cómo empezar a ejecutar esta acción de JavaScript.
|
||||
|
||||
### Añadir paquetes de kit de herramientas de acciones
|
||||
|
||||
El kit de herramientas de acciones es una recopilación de los paquetes Node.js que te permiten desarrollar rápidamente acciones de JavaScript con más consistencia.
|
||||
|
||||
El paquete del kit de herramientas [`@actions/Core`](https://github.com/actions/toolkit/tree/master/packages/core) brinda una interfaz a los comandos del flujo de trabajo, variables de entrada y salida, estados de salida y mensajes de depuración.
|
||||
|
||||
El kit de herramientas también ofrece un paquete [`@actions/github`](https://github.com/actions/toolkit/tree/master/packages/github) que devuelve un cliente autenticado Octokit REST y acceso a los contextos de acciones de GitHub.
|
||||
|
||||
El kit de herramientas ofrece más de un paquete `core` y `github`. Para obtener más información, consulta el repositorio [actions/toolkit](https://github.com/actions/toolkit).
|
||||
|
||||
En tu terminal, instala los paquetes `core` and `github` del kit de herramientas de acciones.
|
||||
|
||||
```shell
|
||||
npm install @actions/core
|
||||
npm install @actions/github
|
||||
```
|
||||
|
||||
Ahora deberías ver un directorio `node_modules` con los módulos que acabas de instalar y un archivo `package-lock.json` con las dependencias del módulo instalado y las versiones de cada módulo instalado.
|
||||
|
||||
### Escribir el código de la acción
|
||||
|
||||
Esta acción usa el kit de herramientas para obtener la variable de entrada `who-to-greet` requerida en el archivo de metadatos de la acción e imprime "Hello [who-to-greet]" en un mensaje de depuración del registro. A continuación, el script obtiene la hora actual y la establece como una variable de salida que pueden usar las acciones que se ejecutan posteriormente en unt rabajo.
|
||||
|
||||
Las Acciones de GitHub proporcionan información de contexto sobre el evento de webhooks, las referencias de Git, el flujo de trabajo, la acción y la persona que activó el flujo de trabajo. Para acceder a la información de contexto, puedes usar el paquete `github`. La acción que escribirás imprimirá el evento de webhook que carga el registro.
|
||||
|
||||
Agrega un archivo nuevo denominado `index.js`, con el siguiente código.
|
||||
|
||||
**index.js**
|
||||
```javascript
|
||||
const core = require('@actions/core');
|
||||
const github = require('@actions/github');
|
||||
|
||||
try {
|
||||
// `who-to-greet` input defined in action metadata file
|
||||
const nameToGreet = core.getInput('who-to-greet');
|
||||
console.log(`Hello ${nameToGreet}!`);
|
||||
const time = (new Date()).toTimeString();
|
||||
core.setOutput("time", time);
|
||||
// Get the JSON webhook payload for the event that triggered the workflow
|
||||
const payload = JSON.stringify(github.context.payload, undefined, 2)
|
||||
console.log(`The event payload: ${payload}`);
|
||||
} catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
```
|
||||
|
||||
Si se lanza un error en el ejemplo anterior `index.js`, `core.setFailed(error.message);` usa el paquete del kit de herramientas de acciones [`@actions/core`](https://github.com/actions/toolkit/tree/master/packages/core) para registrar un mensaje y establecer un código de salida defectuoso. Para obtener más información, consulta la sección "[Configurar los códigos de salida para las acciones](/actions/creating-actions/setting-exit-codes-for-actions)".
|
||||
|
||||
|
||||
### Crear un README
|
||||
|
||||
Puedes crear un archivo README para que las personas sepan cómo usar tu acción. Un archivo README resulta más útil cuando planificas el intercambio de tu acción públicamente, pero también es una buena manera de recordarle a tu equipo cómo usar la acción.
|
||||
|
||||
En tu directorio `hello-world-javascript-action`, crea un archivo `README.md` que especifique la siguiente información:
|
||||
|
||||
- Una descripción detallada de lo que hace la acción.
|
||||
- Argumentos necesarios de entrada y salida.
|
||||
- Argumentos opcionales de entrada y salida.
|
||||
- Secretos que utiliza la acción.
|
||||
- Variables de entorno que utiliza la acción.
|
||||
- Un ejemplo de cómo usar tu acción en un flujo de trabajo.
|
||||
|
||||
**README.md**
|
||||
```markdown
|
||||
# Hello world docker action
|
||||
|
||||
Esta acción imprime "Hello World" o "Hello" + el nombre de una persona a quien saludar en el registro.
|
||||
|
||||
## Entradas
|
||||
|
||||
### `who-to-greet`
|
||||
|
||||
**Obligatorio** El nombre de la persona a quien saludar. Default `"World"`.
|
||||
|
||||
## Outputs
|
||||
|
||||
### `time`
|
||||
|
||||
El tiempo en que lo saludamos.
|
||||
|
||||
## Example usage
|
||||
|
||||
uses: actions/hello-world-javascript-action@v1.1
|
||||
with:
|
||||
who-to-greet: 'Mona the Octocat'
|
||||
```
|
||||
|
||||
### Confirmar, etiquetar y subir tu acción a GitHub
|
||||
|
||||
{% data variables.product.product_name %} descarga cada acción ejecutada en un flujo de trabajo durante el tiempo de ejecución y la ejecuta como un paquete completo de código antes de que puedas usar comandos de flujo de trabajo como `run` para interactuar con la máquina del ejecutor. Eso significa que debes incluir cualquier dependencia del paquete requerida para ejecutar el código de JavaScript. Necesitarás verificar los paquetes `core` y `github` del kit de herramientas para el repositorio de tu acción.
|
||||
|
||||
Desde tu terminal, confirma tus archivos `action.yml`, `index.js`, `node_modules`, `package.json`, `package-lock.json` y `README.md`. Si agregaste un archivo `.gitignore` que enumera `node_modules`, deberás eliminar esa línea para confirmar el directorio `node_modules`.
|
||||
|
||||
También se recomienda agregarles una etiqueta de versión a los lanzamientos de tu acción. Para obtener más información sobre el control de versiones de tu acción, consulta la sección "[Acerca de las acciones](/actions/automating-your-workflow-with-github-actions/about-actions#using-release-management-for-actions)".
|
||||
|
||||
|
||||
```shell
|
||||
git add action.yml index.js node_modules/* package.json package-lock.json README.md
|
||||
git commit -m "Mi primera acción está lista"
|
||||
git tag -a -m "Mi primera versión de acción" v1
|
||||
git push --follow-tags
|
||||
```
|
||||
|
||||
Como alternativa para verificar tu directorio de `node_modules`, puedes utilizar una herramienta que se llama [`@vercel/ncc`](https://github.com/vercel/ncc) para compilar tu código y módulos en un archivo que se utilice para la distribución.
|
||||
|
||||
1. Instala `vercel/ncc` ejecutando este comando en tu terminal. `npm i -g @vercel/ncc`
|
||||
|
||||
1. Compila tu archivo `index.js`. `ncc build index.js --license licenses.txt`
|
||||
|
||||
Verás un nuevo archivo `dist/index.js` con tu código y los módulos compilados. También verás un archivo asociado de `dist/licenses.txt` que contiene todas las licencias de los `node_modules` que estás utilizando.
|
||||
|
||||
1. Cambia la palabra clave `main` en tu archivo `action.yml` para usar el nuevo archivo `dist/index.js`. `main: 'dist/index.js'`
|
||||
|
||||
1. Si ya has comprobado tu directorio `node_modules`, eliminínalo. `rm -rf node_modules/*`
|
||||
|
||||
1. Desde tu terminal, confirma las actualizaciones para tu `action.yml`, `dist/index.js` y `node_modules`.
|
||||
```shell
|
||||
git add action.yml dist/index.js node_modules/*
|
||||
git commit -m "Use vercel/ncc"
|
||||
git tag -a -m "My first action release" v1
|
||||
git push --follow-tags
|
||||
```
|
||||
|
||||
### Probar tu acción en un flujo de trabajo
|
||||
|
||||
Ahora estás listo para probar tu acción en un flujo de trabajo. Cuando una acción esté en un repositorio privado, la acción solo puede usarse en flujos de trabajo en el mismo repositorio. Las acciones públicas pueden ser usadas por flujos de trabajo en cualquier repositorio.
|
||||
|
||||
{% data reusables.actions.enterprise-marketplace-actions %}
|
||||
|
||||
#### Ejemplo usando una acción pública
|
||||
|
||||
El siguiente código de flujo de trabajo usa la acción hello world completada en el repositorio `actions/hello-world-javascript-action`. Copia el código de flujo de trabajo en un archivo `.github/workflows/main.yml`, pero reemplaza el repositorio `actions/hello-world-javascript-action` con el repositorio que creaste. También puedes reemplazar la entrada `who-to-greet` con tu nombre.
|
||||
|
||||
{% raw %}
|
||||
**.github/workflows/main.yml**
|
||||
```yaml
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
hello_world_job:
|
||||
runs-on: ubuntu-latest
|
||||
name: A job to say hello
|
||||
steps:
|
||||
- name: Hello world action step
|
||||
id: hello
|
||||
uses: actions/hello-world-javascript-action@v1.1
|
||||
with:
|
||||
who-to-greet: 'Mona the Octocat'
|
||||
# Use the output from the `hello` step
|
||||
- name: Get the output time
|
||||
run: echo "The time was ${{ steps.hello.outputs.time }}"
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
#### Ejemplo usando una acción privada
|
||||
|
||||
Copia el siguiente ejemplo de código de flujo de trabajo en un archivo `.github/workflows/main.yml` en tu repositorio de acción. También puedes reemplazar la entrada `who-to-greet` con tu nombre.
|
||||
|
||||
{% raw %}
|
||||
**.github/workflows/main.yml**
|
||||
```yaml
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
hello_world_job:
|
||||
runs-on: ubuntu-latest
|
||||
name: A job to say hello
|
||||
steps:
|
||||
# To use this repository's private action,
|
||||
# you must check out the repository
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Hello world action step
|
||||
uses: ./ # Uses an action in the root directory
|
||||
id: hello
|
||||
with:
|
||||
who-to-greet: 'Mona the Octocat'
|
||||
# Use the output from the `hello` step
|
||||
- name: Get the output time
|
||||
run: echo "The time was ${{ steps.hello.outputs.time }}"
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Desde tu repositorio, da clic en la pestaña de **Acciones** y selecciona la última ejecución de flujo de trabajo. Deberías ver "Hello Mona the Octocat" o el nombre que usaste para la entrada `who-to-greet` y la marcación de hora impresa en el registro.
|
||||
|
||||

|
||||
@@ -1,109 +0,0 @@
|
||||
---
|
||||
title: Soporte de Dockerfile para GitHub Actions
|
||||
shortTitle: Docker
|
||||
intro: 'Cuando creas un "Dockerfile" para una acción de un contenedor de Docker, debes estar consciente de cómo interactúan algunas instrucciones de Docker con GitHub Actions y con el archivo de metadatos de la acción.'
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
redirect_from:
|
||||
- /actions/building-actions/dockerfile-support-for-github-actions
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: reference
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Acerca de las instrucciones de Dockerfile
|
||||
|
||||
Un `Dockerfile` contiene instrucciones y argumentos que definen el contenido y comportamiento inicial de un contenedor de Docker. Para obtener más información acerca de las instrucciones compatibles con Docker, consulta la sección "[Dockerfile reference](https://docs.docker.com/engine/reference/builder/)" en la documentación de Docker.
|
||||
|
||||
### Instrucciones e invalidaciones de Dockerfile
|
||||
|
||||
Algunas instrucciones de Docker interactúan con GitHub Actions, y un archivo de metadatos de la acción puede invalidar algunas instrucciones de Docker. Asegúrate de que estás familiarizado con la manera en que tu Dockerfile interactúa con {% data variables.product.prodname_actions %} para prevenir cualquier comportamiento inesperado.
|
||||
|
||||
#### USER
|
||||
|
||||
Las acciones de Docker deben ejecutarse mediante el usuario predeterminado de Docker (root). No utilices la instrucción `USER` en tu `Dockerfile`, ya que no podrás acceder a `GITHUB_WORKSPACE`. Para obtener más información, consulta la sección "[Utilizar variables del ambiente](/actions/configuring-and-managing-workflows/using-environment-variables)" y [USER reference](https://docs.docker.com/engine/reference/builder/#user) en la documentación de Docker.
|
||||
|
||||
#### FROM
|
||||
|
||||
La primera instrucción en el `Dockerfile` debe ser `FROM`, la cual selecciona una imagen base de Docker. Para obtener más información, consulta la sección "[FROM reference](https://docs.docker.com/engine/reference/builder/#from) en la documentación de Docker.
|
||||
|
||||
Estas son algunas de las mejores prácticas para configurar el argumento `FROM`:
|
||||
|
||||
- Se recomienda utilizar imágenes oficiales de Docker. Por ejemplo, `python` o `ruby`.
|
||||
- Utiliza una etiqueta de versión si es que existe, preferentemente con una versión mayor. Por ejemplo, utiliza `node:10` en vez de `node:latest`.
|
||||
- Se recomienda utilizar imágenes de Docker que se basen en el sistema operativo [Debian](https://www.debian.org/).
|
||||
|
||||
#### WORKDIR
|
||||
|
||||
{% data variables.product.product_name %} configura la ruta del directorio de trabajo en la variable de ambiente `GITHUB_WORKSPACE`. No se recomienda utilizar la instrucción `WORKDIR` en tu `Dockerfile`. Antes de que se ejecute la acción, {% data variables.product.product_name %} montará el directorio `GITHUB_WORKSPACE`sobre cualquiera que fuera la ubicación en la imagen de Docker y configurará a `GITHUB_WORKSPACE` como el directorio de trabajo. Para obtener más información, consulta la sección "[Utilizar variables de ambiente](/actions/configuring-and-managing-workflows/using-environment-variables)" y [WORKDIR reference](https://docs.docker.com/engine/reference/builder/#workdir) en la documentación de Docker.
|
||||
|
||||
#### ENTRYPOINT
|
||||
|
||||
Si defines el `entrypoint` en un archivo de metadatos de una acción, este invalidará el `ENTRYPOINT` definido en el `Dockerfile`. Para obtener más información, consulta la sección "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions/#runsentrypoint)".
|
||||
|
||||
La instrucción `ENTRYPOINT` de Docker tiene una forma de _shell_ y una de _exec_. La documentación de `ENTRYPOINT` de Docker recomienda utilizar la forma de _exec_ de la instrucción `ENTRYPOINT`. Para obtener más información acerca de las formas _exec_ y _shell_, consulta la sección [ENTRYPOINT reference](https://docs.docker.com/engine/reference/builder/#entrypoint) en la documentación de Docker.
|
||||
|
||||
Si configuras tu contenedor para que utilice la forma _exec_ de la instrucción `ENTRYPOINT`, entonces el `args` configurado en el archivo de metadatos de la acción no se ejecutará en un shell de comandos. Si el `args` de la accion contiene una variable de ambiente, ésta no se sustituirá. Por ejemplo, utilizar el siguiente formato _exec_ no imprimirá los valores almacenados en `$GITHUB_SHA`, si no que imprimirá `"$GITHUB_SHA"`.
|
||||
|
||||
```
|
||||
ENTRYPOINT ["echo $GITHUB_SHA"]
|
||||
```
|
||||
|
||||
Si quieres la sustitución de variables, entonces puedes utilizar la forma _shell_ o ejecutar el shell directamente. Por ejemplo, al utilizar el siguiente formato _exec_ puedes ejecutar un shell para imprimir el valor almacenado en la variable de ambiente `GITHUB_SHA`.
|
||||
|
||||
```
|
||||
ENTRYPOINT ["sh", "-c", "echo $GITHUB_SHA"]
|
||||
```
|
||||
|
||||
Para proporcionar el `args` que se definió en el archivo de metadatos de la acción en un contenedor de Docker que utiliza la forma _exec_ en el `ENTRYPOINT`, recomendamos crear un script de shell llamado `entrypoint.sh` al que puedas llamar desde la instrucción `ENTRYPOINT`:
|
||||
|
||||
##### *Dockerfile* de ejemplo
|
||||
```
|
||||
# Container image that runs your code
|
||||
FROM debian:9.5-slim
|
||||
|
||||
# Copies your code file from your action repository to the filesystem path `/` of the container
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
# Executes `entrypoint.sh` when the Docker container starts up
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
```
|
||||
|
||||
##### Archivo *entrypoint.sh* de ejemplo
|
||||
|
||||
Al utilizar el Dockerfile de ejemplo que se muestra anteriormente, {% data variables.product.product_name %} enviará el `args` configurado en el archivo de metadatos de la acción como un argumento de `entrypoint.sh`. Agrega el `#!/bin/sh` [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) hasta arriba del archivo `entrypoint.sh` para utilizar explicitamente el shell compilante [POSIX](https://en.wikipedia.org/wiki/POSIX) del sistema.
|
||||
|
||||
``` sh
|
||||
#!/bin/sh
|
||||
|
||||
# `$*` expands the `args` supplied in an `array` individually
|
||||
# or splits `args` in a string separated by whitespace.
|
||||
sh -c "echo $*"
|
||||
```
|
||||
|
||||
Tu código debe ser ejecutable. Asegúrate que el archivo `entrypoint.sh` tiene permisos de `execute` antes de utilizarlo en un flujo de trabajo. Puedes modificar los permisos de tu terminal si utilizas este comando:
|
||||
``` sh
|
||||
chmod +x entrypoint.sh
|
||||
```
|
||||
|
||||
Cuando un script de shell de `ENTRYPOINT` no es ejecutable, recibirás un error similar al siguiente:
|
||||
|
||||
``` sh
|
||||
Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/entrypoint.sh\": permission denied": unknown
|
||||
```
|
||||
|
||||
#### CMD
|
||||
|
||||
Si defines el `args` en el archivo de metadatos de la acción, éste invalidará la instrucción `CMD` especificada en el `Dockerfile`. Para obtener más información, consulta la sección "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#runsargs)".
|
||||
|
||||
Si utilizas `CMD` en tu `Dockerfile`, sigue estos lineamientos:
|
||||
|
||||
{% data reusables.github-actions.dockerfile-guidelines %}
|
||||
|
||||
### Capacidades de Linux compatibles
|
||||
|
||||
{% data variables.product.prodname_actions %} es compatible con las capacidades predeterminadas de Linux que acepta Docker. Estas capacidades no se pueden añadir ni eliminar. Para obtener más información acerca de las capacidades predeterminadas de Linux con las cuales es compatible Docker, consulta "[Runtime priovilege and Linux capabilities](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)" en la documentación de Docker. Para conocer más acerca de las capacidades de Linux, consulta "[Overview of Linux capabilities](http://man7.org/linux/man-pages/man7/capabilities.7.html) en las páginas man de Linux.
|
||||
@@ -1,25 +0,0 @@
|
||||
---
|
||||
title: Crear acciones
|
||||
intro: 'Puedes crear tus propias acciones, usar y personalizar acciones compartidas por la comunidad {% data variables.product.prodname_dotcom %} o escribir y compartir las acciones que construyes.'
|
||||
redirect_from:
|
||||
- /articles/building-actions
|
||||
- /github/automating-your-workflow-with-github-actions/building-actions
|
||||
- /actions/automating-your-workflow-with-github-actions/building-actions
|
||||
- /actions/building-actions
|
||||
- /articles/creating-a-github-action/
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
children:
|
||||
- /about-custom-actions
|
||||
- /creating-a-docker-container-action
|
||||
- /creating-a-javascript-action
|
||||
- /creating-a-composite-action
|
||||
- /metadata-syntax-for-github-actions
|
||||
- /dockerfile-support-for-github-actions
|
||||
- /setting-exit-codes-for-actions
|
||||
- /publishing-actions-in-github-marketplace
|
||||
---
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
@@ -1,761 +0,0 @@
|
||||
---
|
||||
title: Sintaxis de metadatos para acciones de GitHub
|
||||
shortTitle: Sintaxis de metadatos
|
||||
intro: Puedes crear acciones para realizar tareas en tu repositorio. Las acciones requieren un archivo de metadatos que use la sintaxis YAML.
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
redirect_from:
|
||||
- /articles/metadata-syntax-for-github-actions
|
||||
- /github/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions
|
||||
- /actions/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions
|
||||
- /actions/building-actions/metadata-syntax-for-github-actions
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: reference
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Acerca de la nueva sintaxis YAML para {% data variables.product.prodname_actions %}
|
||||
|
||||
Las acciones Docker y JavaScript requieren un archivo de metadatos. El nombre del archivo de metadatos debe ser `action.yml` o `action.yaml`. Los datos del archivo de metadatos definen las entradas, las salidas y el punto de entrada principal para tu acción.
|
||||
|
||||
Los archivos de metadatos de acción usan la sintaxis YAML. Si eres nuevo en YAML, puedes leer "[Aprender YAML en cinco minutos](https://www.codeproject.com/Articles/1214409/Learn-YAML-in-five-minutes)."
|
||||
|
||||
### **`name (nombre)`**
|
||||
|
||||
**Requerido** El nombre de tu acción. {% data variables.product.prodname_dotcom %} muestra el `name` (nombre) en la pestaña **Actions** (Acciones) para ayudarte a identificar visualmente las acciones en cada trabajo.
|
||||
|
||||
### **`autor`**
|
||||
|
||||
**Opcional** El nombre del autor de las acciones.
|
||||
|
||||
### **`descripción`**
|
||||
|
||||
**Requerido** Una descripción breve de la acción.
|
||||
|
||||
### **`inputs (entradas)`**
|
||||
|
||||
**Opcional** Los parámetros de entrada te permiten especificar datos que la acción espera para usar durante el tiempo de ejecución. {% data variables.product.prodname_dotcom %} almacena parámetros de entrada como variables de entorno. Las Id de entrada con letras mayúsculas se convierten a minúsculas durante el tiempo de ejecución. Recomendamos usar Id de entrada en minúsculas.
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
Este ejemplo configura dos entradas: numOctocats y octocatEyeColor. La entrada numOctocats no se requiere y se predeterminará a un valor de '1'. Se requiere la entrada octocatEyeColor y no tiene un valor predeterminado. Los archivos de flujo de trabajo que usan esta acción deben usar la palabra clave `with` (con) para establecer un valor de entrada para octocatEyeColor. Para obtener información sobre la sintaxis `with` (con), consulta "[Sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions/#jobsjob_idstepswith)".
|
||||
|
||||
|
||||
```yaml
|
||||
inputs:
|
||||
numOctocats:
|
||||
description: 'Number of Octocats'
|
||||
required: false
|
||||
default: '1'
|
||||
octocatEyeColor:
|
||||
description: 'Eye color of the Octocats'
|
||||
required: true
|
||||
```
|
||||
|
||||
|
||||
Cuando especificas una entrada para una acción en un archivo de flujo de trabajo o usas un valor de entrada predeterminado, {% data variables.product.prodname_dotcom %} crea una variable de entorno para la entrada con el nombre `INPUT_<VARIABLE_NAME>`. La variable de entorno creada convierte los nombre de entrada en letras mayúscula y reemplaza los espacios con los caracteres `_`.
|
||||
|
||||
Por ejemplo, si un flujo de trabajo definió las entradas numOctocats y octocatEyeColor, el código de acción podría leer los valores de las entradas usando las variables de entorno `INPUT_NUMOCTOCATS` y `INPUT_OCTOCATEYECOLOR`.
|
||||
|
||||
#### **`inputs.<input_id>`**
|
||||
|
||||
**Requerido** Un identificador `string` (cadena) para asociar con la entrada. El valor de `<input_id>` es un mapa con los metadatos de la entrada. `<input_id>` debe ser un identificador único dentro del objeto `inputs` (entradas). El `<input_id>`> debe comenzar con una letra o `_` y debe contener solo caracteres alfanuméricos, `-`, o `_`.
|
||||
|
||||
#### **`inputs.<input_id>.description`**
|
||||
|
||||
**Requerido** Una descripción de `string` del parámetro de entrada.
|
||||
|
||||
#### **`inputs.<input_id>.required`**
|
||||
|
||||
**Requerido** Un `boolean` (booleano) para indicar si la acción requiere el parámetro de entrada. Establecer en `true` cuando se requiera el parámetro.
|
||||
|
||||
#### **`inputs.<input_id>.default`**
|
||||
|
||||
**Opcional** Una `string` que representa el valor predeterminado. El valor predeterminado se usa cuando un parámetro de entrada no se especifica en un archivo de flujo de trabajo.
|
||||
|
||||
### **`outputs (salidas)`**
|
||||
|
||||
**Opcional** Los parámetros de salida te permiten declarar datos que una acción establece. Las acciones que se ejecutan más tarde en un flujo de trabajo pueden usar el conjunto de datos de salida en acciones de ejecución anterior. Por ejemplo, si se realizó una acción además de las dos entradas (x + y = z), la acción podría dar como resultado la suma (z) para que otras acciones la usen como entrada.
|
||||
|
||||
Si no declaras una salida en tu archivo de metadatos de acción, todavía puedes configurar las salidas y utilizarlas en un flujo de trabajo. Para obtener más información acerca de la configuración de salidas en una acción, consulta "[Comandos de flujo de trabajo para {% data variables.product.prodname_actions %}](/actions/reference/workflow-commands-for-github-actions/#setting-an-output-parameter)".
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
```yaml
|
||||
outputs:
|
||||
sum: # id of the output
|
||||
description: 'The sum of the inputs'
|
||||
```
|
||||
|
||||
#### **`outputs.<output_id>`**
|
||||
|
||||
**Requerido** Un identificador `string` para asociar con la salida. El valor de `<output_id>` es un mapa con los metadatos de la salida. `<output_id>` debe ser un identificador único dentro del objeto `outputs` (salidas). El `<output_id>`> debe comenzar con una letra o `_` y debe contener solo caracteres alfanuméricos, `-`, o `_`.
|
||||
|
||||
#### **`outputs.<output_id>.description`**
|
||||
|
||||
**Requerido** Una descripción de `string` del parámetro de salida.
|
||||
|
||||
### **`outputs`** para acciones de pasos de ejecución compuestos
|
||||
|
||||
Los `outputs` **Opcionales** utilizan los mismos parámetros que los `outputs.<output_id>` and los `outputs.<output_id>.description` (consulta la sección "[`outputs` para {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#outputs)"), pero también incluyen el token de `value`.
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
outputs:
|
||||
random-number:
|
||||
description: "Random number"
|
||||
value: ${{ steps.random-number-generator.outputs.random-id }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- id: random-number-generator
|
||||
run: echo "::set-output name=random-id::$(echo $RANDOM)"
|
||||
shell: bash
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
#### **`outputs.<output_id.value>`**
|
||||
**Requerido** El valor al cual se mapeará el parámetro de salida. Puedes configurarlo a una `string` o a una expresión con contexto. Por ejemplo, puedes utilizar el contexto `steps` para configurar el `value` de una salida al valor de salida de un paso.
|
||||
|
||||
Para obtener más información sobre cómo utilizar la sintaxis de contexto y de expresión, consulta la sección "[Sintaxis de contexto y de expresión para {% data variables.product.prodname_actions %}](/actions/reference/context-and-expression-syntax-for-github-actions)".
|
||||
|
||||
### **`runs`** para acciones de JavaScript
|
||||
|
||||
**Requerido** Configura la ruta al código de la acción y a la aplicación que se utiliza para ejecutar dicho código.
|
||||
|
||||
#### Ejemplo usando Node.js
|
||||
|
||||
```yaml
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'main.js'
|
||||
```
|
||||
|
||||
#### **`runs.using`**
|
||||
|
||||
**Requerido** La aplicación utilizada para el código especificado en [`main`](#runsmain).
|
||||
|
||||
#### **`runs.main`**
|
||||
|
||||
**Requerido** El archivo que contiene tu código de acción. La aplicación especificada en [`using`](#runsusing) ejecuta este archivo.
|
||||
|
||||
#### **`pre`**
|
||||
|
||||
**Opcional** Te permite ejecutar un script al inicio de un job, antes de que la acción `main:` comience. Por ejemplo, puedes utilizar `pre:` para ejecutar un script de configuración de pre-requisitos. La aplicación especificada con la sintaxis [using</code>](#runsusing) (mediante) ejecutará este archivo. La acción `pre:` siempre se ejecuta predeterminadamente pero puedes invalidarla utilizando [`pre-if`](#pre-if).
|
||||
|
||||
En este ejemplo, la acción `pre:` ejecuta un script llamado `setup.js`:
|
||||
|
||||
```yaml
|
||||
runs:
|
||||
using: 'node12'
|
||||
pre: 'setup.js'
|
||||
main: 'index.js'
|
||||
post: 'cleanup.js'
|
||||
```
|
||||
|
||||
#### **`pre-if`**
|
||||
|
||||
**Opcional** Te permite definir las condiciones para la ejecución de la acción `pre:`. La acción `pre:` únicamente se ejecutará si se cumplen las condiciones en `pre-if`. Si no se configura, `pre-if` se configurará predefinidamente como `always()`. Nota que el contexto `step` no está disponible, ya que no se ha ejecutado ningún paso todavía.
|
||||
|
||||
En este ejemplo, `cleanup.js` se ejecuta únicamente en los ejecutores basados en linux:
|
||||
|
||||
```yaml
|
||||
pre: 'cleanup.js'
|
||||
pre-if: 'runner.os == linux'
|
||||
```
|
||||
|
||||
#### **`publicación`**
|
||||
|
||||
**Opcional** Te permite ejecutar un script al final de un job, una vez que se haya completado la acción `main:`. Por ejemplo, puedes utilizar `post:` para finalizar algunos procesos o eliminar los archivos innecesarios. La aplicación especificada con la sintaxis [using</code>](#runsusing) (mediante) ejecutará este archivo.
|
||||
|
||||
En este ejemplo, la acción `post:` ejecuta un script llamado `cleanup.js`:
|
||||
|
||||
```yaml
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'index.js'
|
||||
post: 'cleanup.js'
|
||||
```
|
||||
|
||||
La acción `post:` siempre se ejecuta predeterminadamente, pero la puedes invalidar utilizando `post-if`.
|
||||
|
||||
#### **`post-if`**
|
||||
|
||||
**Opcional** Te permite definir condiciones para la ejecución de la acción `post:`. La acción `post` únicamente se ejecutará si se cumplen las condiciones en `post-if`. Si no se configura, `pre-if` se configurará predeterminadamente como `always()`.
|
||||
|
||||
Por ejemplo, este `cleanup.js` únicamente se ejecutará en ejecutores basados en Linux:
|
||||
|
||||
```yaml
|
||||
post: 'cleanup.js'
|
||||
post-if: 'runner.os == linux'
|
||||
```
|
||||
|
||||
### **`runs`** para acciones de pasos de ejecución compuestos
|
||||
|
||||
**Requerido** Configura la ruta a la acción compuesta, y la aplicación que se utiliza para ejecutar el código.
|
||||
|
||||
#### **`runs.using`**
|
||||
|
||||
**Requerido** Para utilizar una acción de pasos de ejecución compuestos, configúrala como `"composite"`.
|
||||
|
||||
#### **`runs.steps`**
|
||||
|
||||
**Requerido** Los pasos de ejecución que planeas ejecutar en esta acción.
|
||||
|
||||
##### **`runs.steps.run`**
|
||||
|
||||
**Requerido** El comando que quieres ejecutar. Este puede estar dentro de la línea o ser un script en tu repositorio de la acción:
|
||||
```yaml
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- run: ${{ github.action_path }}/test/script.sh
|
||||
shell: bash
|
||||
```
|
||||
|
||||
Como alternativa, puedes utilizar `$GITHUB_ACTION_PATH`:
|
||||
|
||||
```yaml
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- run: $GITHUB_ACTION_PATH/script.sh
|
||||
shell: bash
|
||||
```
|
||||
|
||||
Para obtener más información, consulta la sección "[``](/actions/reference/context-and-expression-syntax-for-github-actions#github-context)".
|
||||
|
||||
##### **`runs.steps.shell`**
|
||||
|
||||
**Requerido** El shell en donde quieres ejecutar el comando. Puedes utilizar cualquiera de los shells listados [aquí](/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell).
|
||||
|
||||
##### **`runs.steps.name`**
|
||||
|
||||
**Opcional** El nombre del paso de ejecución compuesto.
|
||||
|
||||
##### **`runs.steps.id`**
|
||||
|
||||
**Opcional** Un identificador único para el paso. Puede usar el `id` para hacer referencia al paso en contextos. Para obtener más información, consulta "[Sintaxis de contexto y expresión para las {% data variables.product.prodname_actions %}](/actions/reference/context-and-expression-syntax-for-github-actions)".
|
||||
|
||||
##### **`runs.steps.env`**
|
||||
|
||||
**Opcional** Configura un `map` de variables de ambiente únicamente para este paso. Si quieres modificar la variable de ambiente en el flujo de trabajo, utiliza `echo "::set-env name={name}::{value}"` en un paso de ejecución compuesto.
|
||||
|
||||
##### **`runs.steps.working-directory`**
|
||||
|
||||
**Opcional** Especifica el directorio de trabajo en donde se ejecuta un comando.
|
||||
|
||||
### **`runs`** para acciones de Docker
|
||||
|
||||
**Requerido** Configura la imagen utilizada para la acción de Docker.
|
||||
|
||||
#### Ejemplo utilizando un Dockerfile en tu repositorio
|
||||
|
||||
```yaml
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'Dockerfile'
|
||||
```
|
||||
|
||||
#### Ejemplo usando un contenedor de registro Docker público
|
||||
|
||||
```yaml
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'docker://debian:stretch-slim'
|
||||
```
|
||||
|
||||
#### **`runs.using`**
|
||||
|
||||
**Requerido** Debes configurar este valor como `'docker'`.
|
||||
|
||||
#### **`pre-entrypoint`**
|
||||
|
||||
**Opcional** Te permite ejecutar un script antes de que comience la acción `entrypoint`. Por ejemplo, puedes utilizar `pre-entrypoint` para ejecutar un script de configuración de pre-requisitos. {% data variables.product.prodname_actions %} utiliza `docker run` para lanzar esta acción, y ejecuta el script dentro de un contenedor nuevo que utiliza la misma imagen base. Esto significa que el estado del tiempo de ejecución difiere de el contenedor principal `entrypoint`, y se deberá acceder a cualquier estado que requieras ya sea en el espacio de trabajo, `HOME`, o como una variable `STATE_`. La acción `pre-entrypoint:` siempre se ejecuta predeterminadamente pero la puedes invalidar utilizando [`pre-if`](#pre-if).
|
||||
|
||||
La aplicación especificada con la sintaxis [using</code>](#runsusing) (mediante) ejecutará este archivo.
|
||||
|
||||
En este ejemplo, la acción `pre.entrypoint:` ejecuta un script llamado `setup.sh`:
|
||||
|
||||
```yaml
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'Dockerfile'
|
||||
args:
|
||||
- 'bzz'
|
||||
pre-entrypoint: 'setup.sh'
|
||||
entrypoint: 'main.sh'
|
||||
```
|
||||
|
||||
#### **`runs.image`**
|
||||
|
||||
**Requerido** La imagen de Docker a utilizar como el contenedor para ejecutar la acción. El valor puede ser el nombre de la imagen base de Docker, un `Dockerfile` local en tu repositorio, o una imagen pública en Docker Hub u otro registro. Para hacer referencia a un `Dockerfile` local en tu repositorio, usa una ruta relativa a tu archivo de metadatos de acción. La aplicación `docker` ejecutará este archivo.
|
||||
|
||||
#### **`runs.env`**
|
||||
|
||||
**Opcional** Especifica mapa clave/de valores de las variables del ambiente para configurar en el ambiente del contenedor.
|
||||
|
||||
#### **`runs.entrypoint`**
|
||||
|
||||
**Opcional** Invalida el `ENTRYPOINT` de Docker en el `Dockerfile`, o lo configura si no se había especificado anteriormente. Utiliza `entrypoint` cuando el `Dockerfile` no especifique un `ENTRYPOINT` o cuando quieras invalidar la instrucción de `ENTRYPOINT`. Si omites el `entrypoint`, se ejecutarán los comandos que especifiques en la instrucción `ENTRYPOINT` de Docker. La instrucción `ENTRYPOINT` de Docker tiene una forma de _shell_ y una de _exec_. La documentación de `ENTRYPOINT` de Docker recomienda utilizar la forma de _exec_ de la instrucción `ENTRYPOINT`.
|
||||
|
||||
Para obtener más información acerca de cómo se ejecuta el `entrypoint`, consulta la sección "[Soporte de Dockerfile para {% data variables.product.prodname_actions %}](/actions/creating-actions/dockerfile-support-for-github-actions/#entrypoint)".
|
||||
|
||||
#### **`post-entrypoint`**
|
||||
|
||||
**Opcional** Te permite ejecutar un script de limpieza una vez que se haya completado la acción de `runs.entrypoint`. {% data variables.product.prodname_actions %} utiliza `docker run` para lanzar esta acción. Ya que {% data variables.product.prodname_actions %} ejecuta el script dentro de un contenedor nuevo utilizando la misma imagen base, el estado de tiempo de ejecución es diferente del contenedor principal de `entrypoint`. Puedes acceder a cualquier estado que necesites, ya sea en el espacio de trabajo, `HOME`, o como una variable `STATE_`. La acción `post-entrypoint:` siempre se ejecuta predeterminadamente, pero puedes invalidarla utilizando [`post-if`](#post-if).
|
||||
|
||||
```yaml
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'Dockerfile'
|
||||
args:
|
||||
- 'bzz'
|
||||
entrypoint: 'main.sh'
|
||||
post-entrypoint: 'cleanup.sh'
|
||||
```
|
||||
|
||||
#### **`runs.args`**
|
||||
|
||||
**Opcional** Una matriz de secuencias que defina las entradas para un contenedor de Docker. Las entradas pueden incluir cadenas codificadas de forma rígida. {% data variables.product.prodname_dotcom %} comunica los `args`en el `ENTRYPOINT` del contenedor cuando se inicia el contenedor.
|
||||
|
||||
Los `args` se usan en el lugar de la instrucción `CMD` en un `Dockerfile`. Si usas `CMD` en tu `Dockerfile`, usa los lineamientos ordenados por preferencia:
|
||||
|
||||
{% data reusables.github-actions.dockerfile-guidelines %}
|
||||
|
||||
Si necesitas pasar variables de ambiente a una acción, asegúrate que ésta ejecute un shell de comandos para realizar la sustitución de variables. Por ejemplo, si se configura tu atributo `entrypoint` como `"sh -c"`, entoces `args` se ejecutará en un shell de comandos. Como alternativa, si tu `Dockerfile` utiliza un `ENTRYPOINT` para ejecutar el mismo comando (`"sh -c"`), entonces `args` se ejecutará en un shell de comandos.
|
||||
|
||||
Para obtener más información sobre el uso de la instrucción `CMD` con {% data variables.product.prodname_actions %}, consulta la sección "[Soporte de Dockerfile para {% data variables.product.prodname_actions %}](/actions/creating-actions/dockerfile-support-for-github-actions/#cmd)".
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
runs:
|
||||
using: 'docker'
|
||||
image: 'Dockerfile'
|
||||
args:
|
||||
- ${{ inputs.greeting }}
|
||||
- 'foo'
|
||||
- 'bar'
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### **`branding (marca)`**
|
||||
|
||||
Puedes usar un color y un icono [Pluma](https://feathericons.com/) para crear un distintivo para personalizar y distinguir tu acción. Las insignias se muestran junto a tu nombre de la acción en [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace?type=actions).
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
```yaml
|
||||
branding:
|
||||
icon: 'award'
|
||||
color: 'green'
|
||||
```
|
||||
|
||||
#### **`branding.color`**
|
||||
|
||||
El color de fondo de la insignia. Puede ser: `blanco`, `amarillow`, `azul`, `verde`, `anaranjado`, `rojo`, `púrpura` o `gris oscuro`.
|
||||
|
||||
#### **`branding.icon`**
|
||||
|
||||
El nombre del icono de [Pluma](https://feathericons.com/) que se debe usar.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>actividad</td>
|
||||
<td>radiodifusión</td>
|
||||
<td>alerta-círculo</td>
|
||||
<td>alerta-octágono</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>alerta-triángulo</td>
|
||||
<td>alinear-centro</td>
|
||||
<td>alinear-justificar</td>
|
||||
<td>alinear-izquierda</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>alinear-derecha</td>
|
||||
<td>ancla</td>
|
||||
<td>apertura</td>
|
||||
<td>archivar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>flecha-abajo-círculo</td>
|
||||
<td>flecha-abajo-izquierda</td>
|
||||
<td>flecha-abajo-derecha</td>
|
||||
<td>flecha-abajo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>flecha-izquierda-círculo</td>
|
||||
<td>flecha-izquierda</td>
|
||||
<td>flecha-derecha-círculo</td>
|
||||
<td>flecha-derecha</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>flecha-arriba-círculo</td>
|
||||
<td>flecha-arriba-izquierda</td>
|
||||
<td>flecha-arriba-derecha</td>
|
||||
<td>flecha-arriba</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>en-cartel</td>
|
||||
<td>premio</td>
|
||||
<td>barra-cuadro-2</td>
|
||||
<td>barra-cuadro</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>batería-carga</td>
|
||||
<td>batería</td>
|
||||
<td>campana-apagado</td>
|
||||
<td>campana</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>bluetooth</td>
|
||||
<td>negrita</td>
|
||||
<td>libro-abierto</td>
|
||||
<td>libro</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>marcador</td>
|
||||
<td>caja</td>
|
||||
<td>maletín</td>
|
||||
<td>calendario</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cámara-apagado</td>
|
||||
<td>cámara</td>
|
||||
<td>molde</td>
|
||||
<td>verificar-círculo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>verificar-cuadrado</td>
|
||||
<td>verificar</td>
|
||||
<td>comilla angular-abajo</td>
|
||||
<td>comilla angular-izquierda</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>comillas angulares-derehca</td>
|
||||
<td>comilla angular- arriba</td>
|
||||
<td>comillas angulares-abajo</td>
|
||||
<td>comillas angulares-izquierda</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>comillas angulares-derecha</td>
|
||||
<td>comillas angulares- arriba</td>
|
||||
<td>círculo</td>
|
||||
<td>portapapeles</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>reloj</td>
|
||||
<td>nube-llovizna</td>
|
||||
<td>nube-rayo</td>
|
||||
<td>nube-apagado</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>nube-lluvia</td>
|
||||
<td>nube-nieve</td>
|
||||
<td>nube</td>
|
||||
<td>código</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>comando</td>
|
||||
<td>brújula</td>
|
||||
<td>copiar</td>
|
||||
<td>ángulo-abajo-izquierdo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ángulo-abajo-derecho</td>
|
||||
<td>ángulo-izquierdo-abajo</td>
|
||||
<td>ángulo-arriba-izquierdo</td>
|
||||
<td>ángulo-derecho-abajo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ángulo-derecho-arriba</td>
|
||||
<td>ángulo-arriba-izquierdo</td>
|
||||
<td>ángulo-arriba-derecha</td>
|
||||
<td>cpu</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>tarjeta-de-crédito</td>
|
||||
<td>cortar</td>
|
||||
<td>punto de mira</td>
|
||||
<td>base de datos</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>eliminar</td>
|
||||
<td>disco</td>
|
||||
<td>dólar-signo</td>
|
||||
<td>descargar-nube</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>descargar</td>
|
||||
<td>gota</td>
|
||||
<td>editar-2</td>
|
||||
<td>editar-3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>editar</td>
|
||||
<td>externo-enlace</td>
|
||||
<td>desviar la mirada</td>
|
||||
<td>ojo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>facebook</td>
|
||||
<td>avance rápido</td>
|
||||
<td>pluma</td>
|
||||
<td>archivo-menos</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>archivo-más</td>
|
||||
<td>archivo-texto</td>
|
||||
<td>archivo</td>
|
||||
<td>película</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>filtro</td>
|
||||
<td>bandera</td>
|
||||
<td>carpeta-menos</td>
|
||||
<td>carpeta-más</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>carpeta</td>
|
||||
<td>obsequio</td>
|
||||
<td>git-rama</td>
|
||||
<td>git-confirmar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>git-fusionar</td>
|
||||
<td>git-solicitud-extracción</td>
|
||||
<td>globo</td>
|
||||
<td>cuadrícula</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>disco-duro</td>
|
||||
<td>hash</td>
|
||||
<td>auriculares</td>
|
||||
<td>corazón</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ayuda-círculo</td>
|
||||
<td>hogar</td>
|
||||
<td>imagen</td>
|
||||
<td>bandeja de entrada</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>info</td>
|
||||
<td>cursiva</td>
|
||||
<td>capas</td>
|
||||
<td>diseño</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>vida-boya</td>
|
||||
<td>enlace-2</td>
|
||||
<td>enlace</td>
|
||||
<td>lista</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cargador</td>
|
||||
<td>bloquear</td>
|
||||
<td>iniciar-sesión</td>
|
||||
<td>cerrar-sesión</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>correo</td>
|
||||
<td>asignar-pin</td>
|
||||
<td>asignar</td>
|
||||
<td>maximizar-2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>maximizar
|
||||
</td>
|
||||
<td>menú</td>
|
||||
<td>mensaje-círculo</td>
|
||||
<td>mensaje-cuadrado</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>mic-apagado</td>
|
||||
<td>mic</td>
|
||||
<td>minimizar-2</td>
|
||||
<td>minimizar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>menos-círculo</td>
|
||||
<td>menos-cuadrado</td>
|
||||
<td>menos</td>
|
||||
<td>monitor</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>luna</td>
|
||||
<td>más-horizontal</td>
|
||||
<td>más-vertical</td>
|
||||
<td>mover</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>música</td>
|
||||
<td>navegación-2</td>
|
||||
<td>navegación</td>
|
||||
<td>octágono</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>paquete</td>
|
||||
<td>sujetapapeles</td>
|
||||
<td>pausa-círculo</td>
|
||||
<td>pausar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>porcentaje</td>
|
||||
<td>llamada-telefónica</td>
|
||||
<td>teléfono-transferencia</td>
|
||||
<td>teléfono-entrante</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>teléfono-perdido</td>
|
||||
<td>teléfono-apagado</td>
|
||||
<td>teléfono-salida</td>
|
||||
<td>teléfono</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>gráfico-circular</td>
|
||||
<td>reproducir-círculo</td>
|
||||
<td>reproducir</td>
|
||||
<td>más-círculo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>más-cuadrado</td>
|
||||
<td>más</td>
|
||||
<td>bolsillo</td>
|
||||
<td>potencia</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>impresora</td>
|
||||
<td>radio</td>
|
||||
<td>actualizar-ccw</td>
|
||||
<td>actualizar-cw</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>repetir</td>
|
||||
<td>retroceder</td>
|
||||
<td>rotar-ccw</td>
|
||||
<td>rotar-cw</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>rss</td>
|
||||
<td>guardar</td>
|
||||
<td>tijeras</td>
|
||||
<td>buscar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>enviar</td>
|
||||
<td>servidor</td>
|
||||
<td>parámetros</td>
|
||||
<td>compartir-2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>compartir</td>
|
||||
<td>escudo-apagar</td>
|
||||
<td>escudo</td>
|
||||
<td>bolsa-de-compras</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>carro-de-compras</td>
|
||||
<td>aleatorio</td>
|
||||
<td>barra lateral</td>
|
||||
<td>omitir-atrás</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>omitir-adelante</td>
|
||||
<td>barra</td>
|
||||
<td>deslizadores</td>
|
||||
<td>smartphone</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>parlante</td>
|
||||
<td>cuadrado</td>
|
||||
<td>estrella</td>
|
||||
<td>detener-círculo</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>sol</td>
|
||||
<td>amanecer</td>
|
||||
<td>atardecer</td>
|
||||
<td>tablet</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>etiqueta</td>
|
||||
<td>destino</td>
|
||||
<td>terminal</td>
|
||||
<td>termómetro</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pulgares-abajo</td>
|
||||
<td>pulgares-arriba</td>
|
||||
<td>alternar-izquierda</td>
|
||||
<td>alternar-derecha</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>papelera-2</td>
|
||||
<td>papelera</td>
|
||||
<td>tendencia-abajo</td>
|
||||
<td>tendencia-arriba</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>triángulo</td>
|
||||
<td>camión</td>
|
||||
<td>TV</td>
|
||||
<td>type</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>paraguas</td>
|
||||
<td>subrayar</td>
|
||||
<td>desbloquear</td>
|
||||
<td>cargar-nube</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cargar</td>
|
||||
<td>usuario-comprobar</td>
|
||||
<td>usuario-menos</td>
|
||||
<td>usuario-más</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>usuario-x</td>
|
||||
<td>usuario</td>
|
||||
<td>usuarios</td>
|
||||
<td>video-apagar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>video</td>
|
||||
<td>correo de voz</td>
|
||||
<td>volumen-1</td>
|
||||
<td>volumen-2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>volumen-x</td>
|
||||
<td>volumen</td>
|
||||
<td>ver</td>
|
||||
<td>wifi-apagar</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>wifi</td>
|
||||
<td>viento</td>
|
||||
<td>x-círculo</td>
|
||||
<td>x-cuadrado</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>x</td>
|
||||
<td>destruir-apagado</td>
|
||||
<td>destruir</td>
|
||||
<td>acercarse</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>alejarse</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</table>
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
title: Publicar acciones en GitHub Marketplace
|
||||
intro: 'Puedes publicar acciones en {% data variables.product.prodname_marketplace %} y compartir acciones que has creado con la comunidad de {% data variables.product.prodname_dotcom %}.'
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
redirect_from:
|
||||
- /github/automating-your-workflow-with-github-actions/publishing-actions-in-github-marketplace
|
||||
- /actions/automating-your-workflow-with-github-actions/publishing-actions-in-github-marketplace
|
||||
- /actions/building-actions/publishing-actions-in-github-marketplace
|
||||
versions:
|
||||
fpt: '*'
|
||||
type: how_to
|
||||
---
|
||||
|
||||
Debes aceptar los términos de servicio para publicar acciones en {% data variables.product.prodname_marketplace %}.
|
||||
|
||||
### Acerca de la publicación de acciones
|
||||
|
||||
Antes de que puedas publicar una acción, deberás crear una acción en tu repositorio. Para obtener más información, consulta la sección "[Crear acciones](/actions/creating-actions)".
|
||||
|
||||
Cuando planeas publicar tu acción en {% data variables.product.prodname_marketplace %}, necesitarás asegurarte de que el repositorio solo incluya el archivo de metadatos, el código y los archivos necesarios para la acción. Crear un repositorio único para la acción te permite etiquetar, lanzar y empaquetar el código en una sola unidad. {% data variables.product.prodname_dotcom %} también usa los metadatos de la acción en tu página de {% data variables.product.prodname_marketplace %}.
|
||||
|
||||
Las acciones se publican en {% data variables.product.prodname_marketplace %} inmediatamente y no son revisadas por {% data variables.product.prodname_dotcom %} siempre que cumplan con estos requisitos:
|
||||
|
||||
- La acción debe estar en un repositorio público.
|
||||
- Cada repositorio debe contener una única acción.
|
||||
- El archivo de metadatos de la acción (`action.yml` o `action.yaml`) debe estar en el directorio raíz del repositorio.
|
||||
- El `Nombre` en el archivo de metadatos de la acción debe ser único.
|
||||
- El `Nombre` no debe coincidir con el nombre de una acción existente publicada en {% data variables.product.prodname_marketplace %}.
|
||||
- El `Nombre` no debe coincidir con un usuario u organización en {% data variables.product.prodname_dotcom %}, excepto que el usuario o el propietario de la organización publique la acción. Por ejemplo, solo la organización {% data variables.product.prodname_dotcom %} puede publicar una acción denominada `Github`.
|
||||
- El `Nombre` no debe coincidir con una categoría existente de {% data variables.product.prodname_marketplace %}.
|
||||
- {% data variables.product.prodname_dotcom %} reserva los nombres de las funciones de {% data variables.product.prodname_dotcom %}.
|
||||
|
||||
### Publicar una acción
|
||||
|
||||
Puedes agregar la acción que has creado para {% data variables.product.prodname_marketplace %} etiquetándola como un lanzamiento nuevo y publicándola.
|
||||
|
||||
Para preparar un nuevo lanzamiento y publicar la acción en {% data variables.product.prodname_marketplace %}, sigue estas instrucciones:
|
||||
|
||||
{% data reusables.repositories.navigate-to-repo %}
|
||||
1. Cuando un repositorio contiene un archivo de metadatos de acción (`action.yml` o `action.yaml`), verás un mensaje emergente para publicar la acción en {% data variables.product.prodname_marketplace %}. Haz clic en **Draft a release (Crear el borrador de un lanzamiento)**. 
|
||||
1. Selecciona **Publish this action to the (Publicar esta acción en) {% data variables.product.prodname_marketplace %}**. Si no puedes seleccionar la casilla de verificación **Publish this action to the (Publicar esta acción en) {% data variables.product.prodname_marketplace %}**, deberás leer y aceptar el acuerdo primero {% data variables.product.prodname_marketplace %}. 
|
||||
1. Si las etiquetas en tu archivo de metadatos contienen algún problema, verás un mensaje de error. 
|
||||
1. Si ves alguna sugerencia en pantalla, la solucionas actualizando tu archivo de metadatos. Una vez que esté completo, verás un mensaje "Everything looks Good" (Todo se ve bien). 
|
||||
1. Elige una "Primary Category" (Categoría principal) y, de manera opcional, "Another Category" (Otra categoría) que ayudará a las personas a encontrar tu acción en {% data variables.product.prodname_marketplace %}. 
|
||||
1. Etiqueta tu acción con una versión y agrega un título de lanzamiento. Esto permite que las personas conozcan qué cambios o características incluye el lanzamiento. Las personas verán la versión en la página dedicada a la acción de {% data variables.product.prodname_marketplace %}. 
|
||||
1. Completa todos los demás campos y haz clic en **Publish release (Publicar versión)**. La publicación requiere que uses la autenticación de dos factores. Para obtener más información, consulta "[Configurar autenticación de dos factores](/articles/configuring-two-factor-authentication/)". 
|
||||
|
||||
### Eliminar una acción de {% data variables.product.prodname_marketplace %}
|
||||
|
||||
Para eliminar una acción publicada del {% data variables.product.prodname_marketplace %}, necesitarás actualizar cada lanzamiento publicado. Realiza los siguientes pasos para cada lanzamiento de la acción que has publicado en {% data variables.product.prodname_marketplace %}.
|
||||
|
||||
{% data reusables.repositories.navigate-to-repo %}
|
||||
{% data reusables.repositories.releases %}
|
||||
3. En la página Lanzamientos, a la derecha del lanzamiento que deseas editar, haz clic en **Editar**. 
|
||||
4. Selecciona **Publish this action to the (Publicar esta acción en) {% data variables.product.prodname_marketplace %}** para eliminar el tilde de la casilla. 
|
||||
5. Haz clic en **Update release (Actualizar versión)** en la parte inferior de la página. 
|
||||
@@ -1,52 +0,0 @@
|
||||
---
|
||||
title: Configurar códigos de salida para acciones
|
||||
shortTitle: Configurar códigos de salida
|
||||
intro: 'Puedes usar códigos de salida para establecer el estado de una acción. {% data variables.product.prodname_dotcom %} muestra los estados para indicar las acciones que se pasan o fallan.'
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
redirect_from:
|
||||
- /actions/building-actions/setting-exit-codes-for-actions
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: how_to
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Acerca de los códigos de salida
|
||||
|
||||
{% data variables.product.prodname_dotcom %} utiliza el código de salida para configurar el estado de verificación de ejecución de las acciones, el cual puede ser `success` o `failure`.
|
||||
|
||||
| Estado de salida | Estado de ejecución de verificación | Descripción |
|
||||
| ---------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `0` | `success` | La acción se completó con éxito y pueden comenzar otras tareas que dependen de ella. |
|
||||
| Valor distinto de cero | `failure` | Cualquier otro código de salida indica que la acción fracasó. Cuando una acción fracasa, todas las acciones simultáneas se cancelan y las acciones futuras se omiten. La ejecución de verificación y el conjunto de verificaciones obtienen un estado `failure`. |
|
||||
|
||||
### Establecer un código de salida fallida en una acción JavaScript
|
||||
|
||||
Si vas a crear una acción JavaScript, puedes usar el paquete del kit de herramientas [`@actions/core`](https://github.com/actions/toolkit/tree/master/packages/core) para registrar un mensaje y establecer un código de salida fallida. Por ejemplo:
|
||||
|
||||
```javascript
|
||||
try {
|
||||
// something
|
||||
} catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
```
|
||||
|
||||
Para obtener más información, consulta "[Crear una acción JavaScript](/articles/creating-a-javascript-action)".
|
||||
|
||||
### Establecer un código de salida fallida en una acción de contenedor Docker
|
||||
|
||||
Si vas a crear una acción de contenedor Docker, puedes establecer un código de salida fallida en tu script `entrypoint.sh`. Por ejemplo:
|
||||
|
||||
```
|
||||
if <condition> ; then
|
||||
echo "Game over!"
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
|
||||
Para obtener más información, consulta "[Crear una acción de contenedor Docker](/articles/creating-a-docker-container-action)".
|
||||
@@ -1,130 +0,0 @@
|
||||
---
|
||||
title: Acerca de los ejecutores autoalojados
|
||||
intro: 'Puedes alojar tus propios ejecutores y personalizar el entorno utilizado para ejecutar trabajos en tus flujos de trabajo de {% data variables.product.prodname_actions %}.'
|
||||
redirect_from:
|
||||
- /github/automating-your-workflow-with-github-actions/about-self-hosted-runners
|
||||
- /actions/automating-your-workflow-with-github-actions/about-self-hosted-runners
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: overview
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Acerca de los ejecutores autoalojados
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-description %} Los ejecutores auto-hospedados pueden ser físicos, virtuales, estar en un contenedor, en los servidores del usuario, o en la nube.
|
||||
|
||||
Puedes agregar ejecutores auto-hospedados en varios niveles dentro de la jerarquía de administración:
|
||||
- Los ejecutores a nivel de repositorio están dedicados a un solo repositorio.
|
||||
- Los ejecutores a nivel de organización pueden procesar jobs para varios repositorios dentro de una organización.
|
||||
- Los ejecutores a nivel de empresa puede asignarse a varias organizaciones en una cuenta empresarial.
|
||||
|
||||
La máquina de tu ejecutor se conecta a{% data variables.product.product_name %} utilizando la aplicación para ejecutores auto-hospedados de {% data variables.product.prodname_actions %}. {% data reusables.github-actions.runner-app-open-source %} Cuando se lanza una nueva versión, la aplicación del ejecutor se actualiza automáticamente cuando se asigna un job al ejecutor, o dentro de una semana de lanzamiento si dicho ejecutor no se ha asignado a ningún job.
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-auto-removal %}
|
||||
|
||||
Para obtener más información acerca de la instalación y el uso de los ejecutores autoalojados, consulta "[Agregar ejecutores autoalojados](/github/automating-your-workflow-with-github-actions/adding-self-hosted-runners)" y "[Usar ejecutores autoalojados en un flujo de trabajo](/github/automating-your-workflow-with-github-actions/using-self-hosted-runners-in-a-workflow)."
|
||||
|
||||
### Diferencias entre ejecutores alojados en {% data variables.product.prodname_dotcom %} y autoalojados
|
||||
|
||||
Los ejecutores alojados en {% data variables.product.prodname_dotcom %} ofrecen una manera más rápida y sencilla de ejecutar tus flujos de trabajo, mientras que los ejecutores autoalojados son una manera altamente configurable de ejecutar flujos de trabajo en tu propio entorno personalizado.
|
||||
|
||||
**Ejecutores alojados en {% data variables.product.prodname_dotcom %}:**
|
||||
- Reciben actualizaciones automáticas para el sistema operativo, paquetes y herramientas pre-instalados, y la aplicación del ejecutor auto-hospedado.
|
||||
- Son administrados y mantenidos por {% data variables.product.prodname_dotcom %}.
|
||||
- Proporcionan una instancia limpia para cada ejecución de trabajo.
|
||||
- Usan minutos libres en tu plan de {% data variables.product.prodname_dotcom %}, con tarifas por minuto aplicadas después de superar los minutos libres.
|
||||
|
||||
**Ejecutores auto-hospedados:**
|
||||
- Reciben actualizaciones automáticas únicamente para la aplicación del ejecutor auto-hospedado. Eres responsable de actualizar el sistema operativo y el resto del software.
|
||||
- Puedes usar los servicios en la nube o las máquinas locales que ya pagas.
|
||||
- Son personalizables para tu hardware, sistema operativo, software y requisitos de seguridad.
|
||||
- No es necesario tener una instancia limpia para cada ejecución de trabajo.
|
||||
- Son de uso gratuito con las {% data variables.product.prodname_actions %}, pero eres responsable del costo de mantener tus máquinas de ejecutores.
|
||||
|
||||
### Requisitos para máquinas de ejecutores autoalojados
|
||||
|
||||
Puedes utilizar cualquier máquina como ejecutor auto-hospedado mientras cumpla con los siguientes requisitos:
|
||||
|
||||
* Puedes instalar y ejecutar la aplicación del ejecutor autoalojado en la máquina. Para obtener más información, consulta "[Sistemas operativos compatibles para ejecutores autoalojados](#supported-operating-systems-for-self-hosted-runners)."
|
||||
* La máquina puede comunicarse con {% data variables.product.prodname_actions %}. Para obtener más información, consulta "[La comunicación entre ejecutores autoalojados y {% data variables.product.prodname_dotcom %}](#communication-between-self-hosted-runners-and-github)."
|
||||
* La máquina tiene suficientes recursos de hardware para el tipo de flujos de trabajo que planeas ejecutar. La propia aplicación del ejecutor autoalojado solo requiere unos recursos mínimos.
|
||||
* Si quieres ejecutar flujos de trabajo que usan acciones del contenedor Docker o contenedores de servicio, debes usar una máquina Linux y Docker debe estar instalado.
|
||||
|
||||
### Sistemas operativos compatibles para ejecutores autoalojados
|
||||
|
||||
Los siguientes sistemas operativos son compatibles con la aplicación del ejecutor auto-hospedado.
|
||||
|
||||
#### Linux
|
||||
|
||||
- Red Hat Enterprise Linux 7
|
||||
- CentOS 7
|
||||
- Oracle Linux 7
|
||||
- Fedora 29 o posterior
|
||||
- Debian 9 o posterior
|
||||
- Ubuntu 16.04 o posterior
|
||||
- Linux Mint 18 o posterior
|
||||
- openSUSE 15 o posterior
|
||||
- SUSE Enterprise Linux (SLES) 12 SP2 o posterior
|
||||
|
||||
#### Windows
|
||||
|
||||
- Windows 7 64-bit
|
||||
- Windows 8.1 64-bit
|
||||
- Windows 10 64-bit
|
||||
- Windows Server 2012 R2 64-bit
|
||||
- Windows Server 2016 64-bit
|
||||
- Windows Server 2019 64-bit
|
||||
|
||||
#### MacOS
|
||||
|
||||
- macOS 10.13 (High Sierra) o posterior
|
||||
|
||||
{% if currentVersion != "free-pro-team@latest" %}
|
||||
|
||||
### La comunicación entre ejecutores autoalojados y {% data variables.product.prodname_dotcom %}
|
||||
|
||||
La máquina puede comunicarse con {% data variables.product.prodname_actions %}. Para obtener más información, consulta "[La comunicación entre ejecutores autoalojados y {% data variables.product.prodname_dotcom %}](#communication-between-self-hosted-runners-and-github)."
|
||||
|
||||
{% endif %}
|
||||
|
||||
### La comunicación entre ejecutores autoalojados y {% data variables.product.product_name %}
|
||||
|
||||
El ejecutor auto-hospedado sondea a {% data variables.product.product_name %} para solicitar actualizaciones de aplicaciones y para revisar si hay jobs en cola para su procesamiento. El ejecutor auto-hospedado utiliza un _sondeo largo_ de HTTPS que abre una conexión a {% data variables.product.product_name %} por 50 segundos, y si no recibe respuesta alguna, expira y crea un nuevo sondeo largo. La aplicación debe estar ejecutándose en la máquina para aceptar y ejecutar trabajos de {% data variables.product.prodname_actions %}.
|
||||
|
||||
{% if currentVersion == "free-pro-team@latest" %}
|
||||
|
||||
Debes asegurarte de que la máquina tiene el acceso a la red adecuado para comunicarte con las URL de {% data variables.product.prodname_dotcom %} listadas a continuación.
|
||||
|
||||
```
|
||||
github.com
|
||||
api.github.com
|
||||
*.actions.githubusercontent.com
|
||||
```
|
||||
|
||||
Si utilizas un listado de direcciones IP permitidas para tu cuenta organizacional o empresarial de {% data variables.product.prodname_dotcom %}, debes agregar la dirección IP de tu ejecutor auto-hospedado a dicha lista. Para obtener más información, consulta "[Administrar las direcciones IP permitidas para tu organización](/github/setting-up-and-managing-organizations-and-teams/managing-allowed-ip-addresses-for-your-organization#using-github-actions-with-an-ip-allow-list)" o "[Hacer cumplir los parámetros de seguridad en tu cuenta de empresa](/github/setting-up-and-managing-your-enterprise-account/enforcing-security-settings-in-your-enterprise-account#using-github-actions-with-an-ip-allow-list)".
|
||||
|
||||
{% else %}
|
||||
|
||||
Debes asegurarte de que la máquina tenga el acceso a la red adecuado para comunicarse con {% data variables.product.product_location %}.
|
||||
|
||||
{% endif %}
|
||||
|
||||
También puedes usar ejecutores autoalojados con un servidor proxy. Para obtener más información, consulta "[Usar un servidor proxy con ejecutores autoalojados](/actions/automating-your-workflow-with-github-actions/using-a-proxy-server-with-self-hosted-runners)."
|
||||
|
||||
### Seguridad de ejecutores autoalojdados con repositorios públicos
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-security %}
|
||||
|
||||
Esto no es un problema con los ejecutores alojados en {% data variables.product.prodname_dotcom %} porque cada ejecutor alojado en {% data variables.product.prodname_dotcom %} siempre es una máquina virtual aislada y limpia y se destruye al final de la ejecución del trabajo.
|
||||
|
||||
Los flujos de trabajo no confiables que se ejecuten en tu ejecutor auto-hospedado representan riesgos de seguridad significativos para tu máquina y tu ambiente de red, especialmente si tu máquina persiste su ambiente entre jobs. Algunos de estos riesgos incluyen:
|
||||
|
||||
* Programas maliciosos que se ejecutan en la máquina.
|
||||
* Escapar del entorno Sandbox del ejecutor de la máquina.
|
||||
* Exponer el acceso al entorno de red de la máquina.
|
||||
* Mantener datos peligrosos o no deseados en la máquina.
|
||||
@@ -1,70 +0,0 @@
|
||||
---
|
||||
title: Agregar ejecutores autoalojados
|
||||
intro: 'Puedes agregar un ejecutor auto-hospedado a {% data variables.product.prodname_actions %}.'
|
||||
redirect_from:
|
||||
- /github/automating-your-workflow-with-github-actions/adding-self-hosted-runners
|
||||
- /actions/automating-your-workflow-with-github-actions/adding-self-hosted-runners
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
Para obtener información sobre los sistemas operativos compatibles para los ejecutores autoalojados o el uso de ejecutores autoalojados con un servidor proxy, consulta "[Acerca de los ejecutores autoalojados](/github/automating-your-workflow-with-github-actions/about-self-hosted-runners)."
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia:** {% data reusables.github-actions.self-hosted-runner-security %}
|
||||
|
||||
Para obtener más información, consulta "[Acerca de los ejecutores autoalojados](/github/automating-your-workflow-with-github-actions/about-self-hosted-runners#self-hosted-runner-security-with-public-repositories)."
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
### Agregar un ejecutor auto-hospedado a un repositorio
|
||||
|
||||
Puedes agregar ejecutores auto-hospedados a un solo repositorio. Para agregar un ejecutor autoalojado a un repositorio de usuario, debes ser el propietario del repositorio. Para un repositorio de la organización, debes ser propietario de la organización o tener acceso de administrador al repositorio.
|
||||
|
||||
{% data reusables.repositories.navigate-to-repo %}
|
||||
{% data reusables.repositories.sidebar-settings %}
|
||||
{% data reusables.repositories.settings-sidebar-actions %}
|
||||
1. Debajo de "ejecutores auto-hospedados", da clic en **Agregar ejecutor**.
|
||||
{% data reusables.github-actions.self-hosted-runner-configure %}
|
||||
{% data reusables.github-actions.self-hosted-runner-check-installation-success %}
|
||||
|
||||
### Agregar un ejecutor auto-hospedado a una organización
|
||||
|
||||
Puedes agregar ejecutores auto-hospedados a nivel organizacional, en donde se podrán utilizar para procesar jobs para varios repositorios en una organización. Para agregar un ejecutor auto-hospedado a una organización, debes ser el dueño de la misma.
|
||||
|
||||
{% data reusables.organizations.navigate-to-org %}
|
||||
{% data reusables.organizations.org_settings %}
|
||||
{% data reusables.organizations.settings-sidebar-actions %}
|
||||
1. Debajo de "Ejecutores auto-hospedados", da clic en **Agregar nuevo** y luego en **Ejecutor nuevo**.
|
||||
{% data reusables.github-actions.self-hosted-runner-configure %}
|
||||
{% data reusables.github-actions.self-hosted-runner-check-installation-success %}
|
||||
|
||||
### Agregar un ejecutor auto-hospedado a una empresa
|
||||
|
||||
Puedes agregar ejecutores auto-hospedados a una empresa, en donde pueden asignarse a organizaciones múltiples. Los administradores de la organización podrán controlar entonces qué repositorios pueden utilizarlo.
|
||||
|
||||
{% if currentVersion == "free-pro-team@latest" %}
|
||||
Para agregar un ejecutor auto-hospedado a una cuenta empresarial, debes ser un propietario de la empresa.
|
||||
{% else if currentVersion != "free-pro-team@latest" and currentVersion ver_gt "enterprise-server@2.21"%}
|
||||
Para agregar un ejecutor auto-hospedado al nivel de una empresa de {% data variables.product.product_location %}, debes ser un administrador de sitio.
|
||||
{% endif %}
|
||||
|
||||
{% if currentVersion == "free-pro-team@latest" %}
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% else if currentVersion != "free-pro-team@latest" and currentVersion ver_gt "enterprise-server@2.21"%}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.business %}
|
||||
{% endif %}
|
||||
{% data reusables.enterprise-accounts.policies-tab %}
|
||||
{% data reusables.enterprise-accounts.actions-tab %}
|
||||
1. Da clic en la pestaña de **Ejecutores auto-hospedados**.
|
||||
1. Da clic en **Agregar nuevo** y luego en **Ejecutor nuevo**. Los ejecutores nuevos se asignan al grupo predeterminado. Puedes modificar el grupo del ejecutor después de que lo hayas registrado. Para obtener más información, consulta la sección "[Administrar el acceso a los ejecutores auto-hospedados](/actions/hosting-your-own-runners/managing-access-to-self-hosted-runners-using-groups#moving-a-self-hosted-runner-to-a-group)".
|
||||
{% data reusables.github-actions.self-hosted-runner-configure %}
|
||||
{% data reusables.github-actions.self-hosted-runner-check-installation-success %}
|
||||
@@ -1,177 +0,0 @@
|
||||
---
|
||||
title: Configurar la aplicación del ejecutor autoalojado como un servicio
|
||||
intro: Puedes configurar la aplicación del ejecutor autoalojado como un servicio para iniciar automáticamente la aplicación del ejecutor cuando se inicia la máquina.
|
||||
redirect_from:
|
||||
- /actions/automating-your-workflow-with-github-actions/configuring-the-self-hosted-runner-application-as-a-service
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
defaultPlatform: linux
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
{% capture service_first_step %}1. Detén la aplicación del ejecutor autoalojado si se está ejecutando actualmente.{% endcapture %}
|
||||
{% capture service_non_windows_intro_shell %}En la máquina del ejecutor, abre un shell en el directorio en el que instalaste la aplicación del ejecutor autoalojado. Usa los comandos que se indican a continuación para instalar y administrar el servicio de ejecutor autoalojado.{% endcapture %}
|
||||
{% capture service_nonwindows_intro %} Debes agregar un ejecutor a {% data variables.product.product_name %} antes de que puedas configurar la aplicación del ejecutor auto-hospedado como servicio. Para obtener más información, consulta "[Agregar ejecutores autoalojados](/github/automating-your-workflow-with-github-actions/adding-self-hosted-runners)."{% endcapture %}
|
||||
{% capture service_win_name %}actions.runner.*{% endcapture %}
|
||||
|
||||
|
||||
{% linux %}
|
||||
|
||||
{{ service_nonwindows_intro }}
|
||||
|
||||
Para los sistemas Linux que usan `systemd`, puedes usar el script `svc.sh` distribuido con la aplicación del ejecutor autoalojado para instalar y administrar el uso de la aplicación como un servicio.
|
||||
|
||||
{{ service_non_windows_intro_shell }}
|
||||
|
||||
{% endlinux %}
|
||||
|
||||
{% windows %}
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** Configurar la aplicación del ejecutor autoalojado como un servicio en Windows es parte del proceso de configuración de la aplicación. Si ya configuraste la aplicación del ejecutor auto-hospedado pero no elegiste configurarla como servicio, debes eliminar el ejecutor de {% data variables.product.prodname_dotcom %} y volver a configurar la aplicación. Cuando vuelvas a configurar la aplicación, elige la opción para configurar la aplicación como un servicio.
|
||||
|
||||
Para obtener más información, consulta "[Eliminar ejecutores autoalojados](/actions/automating-your-workflow-with-github-actions/removing-self-hosted-runners) y [Agregar ejecutores autoalojados](/actions/automating-your-workflow-with-github-actions/adding-self-hosted-runners)."
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Puedes administrar el servicio de ejecutor en la aplicación de **Servicios** de Windows, o puedes usar PowerShell para ejecutar los comandos que se indican a continuación.
|
||||
|
||||
{% endwindows %}
|
||||
|
||||
{% mac %}
|
||||
|
||||
{{ service_nonwindows_intro }}
|
||||
|
||||
{{ service_non_windows_intro_shell }}
|
||||
|
||||
{% endmac %}
|
||||
|
||||
{% linux %}
|
||||
|
||||
### Instalar el servicio
|
||||
|
||||
{{ service_first_step }}
|
||||
1. Instala el servicio con el siguiente comando:
|
||||
|
||||
```shell
|
||||
sudo ./svc.sh install
|
||||
```
|
||||
|
||||
{% endlinux %}
|
||||
{% mac %}
|
||||
|
||||
### Instalar el servicio
|
||||
|
||||
{{ service_first_step }}
|
||||
1. Instala el servicio con el siguiente comando:
|
||||
|
||||
```shell
|
||||
./svc.sh install
|
||||
```
|
||||
{% endmac %}
|
||||
|
||||
### Iniciar el servicio
|
||||
|
||||
Inicia el servicio con el siguiente comando:
|
||||
|
||||
{% linux %}
|
||||
```shell
|
||||
sudo ./svc.sh start
|
||||
```
|
||||
{% endlinux %}
|
||||
{% windows %}
|
||||
```shell
|
||||
Start-Service "{{ service_win_name }}"
|
||||
```
|
||||
{% endwindows %}
|
||||
{% mac %}
|
||||
```shell
|
||||
./svc.sh start
|
||||
```
|
||||
{% endmac %}
|
||||
|
||||
### Comprobar el estado del servicio
|
||||
|
||||
Verifica el estado del servicio con el siguiente comando:
|
||||
|
||||
{% linux %}
|
||||
```shell
|
||||
sudo ./svc.sh status
|
||||
```
|
||||
{% endlinux %}
|
||||
{% windows %}
|
||||
```shell
|
||||
Get-Service "{{ service_win_name }}"
|
||||
```
|
||||
{% endwindows %}
|
||||
{% mac %}
|
||||
```shell
|
||||
./svc.sh status
|
||||
```
|
||||
{% endmac %}
|
||||
|
||||
Para obtener más información sobre la visualización del estado de tu ejecutor auto-hospedado, consulta la sección "[Monitoreo y solución de problemas para ejecutores auto-hospedados](/actions/hosting-your-own-runners/monitoring-and-troubleshooting-self-hosted-runners)".
|
||||
|
||||
### Detener el servicio
|
||||
|
||||
Detiene el servicio con el siguiente comando:
|
||||
|
||||
{% linux %}
|
||||
```shell
|
||||
sudo ./svc.sh stop
|
||||
```
|
||||
{% endlinux %}
|
||||
{% windows %}
|
||||
```shell
|
||||
Stop-Service "{{ service_win_name }}"
|
||||
```
|
||||
{% endwindows %}
|
||||
{% mac %}
|
||||
```shell
|
||||
./svc.sh stop
|
||||
```
|
||||
{% endmac %}
|
||||
|
||||
### Desinstalar el servicio
|
||||
|
||||
1. Detiene el servicio si se está ejecutando actualmente.
|
||||
1. Desinstala el servicio con el siguiente comando:
|
||||
|
||||
{% linux %}
|
||||
```shell
|
||||
sudo ./svc.sh uninstall
|
||||
```
|
||||
{% endlinux %}
|
||||
{% windows %}
|
||||
```shell
|
||||
Remove-Service "{{ service_win_name }}"
|
||||
```
|
||||
{% endwindows %}
|
||||
{% mac %}
|
||||
```shell
|
||||
./svc.sh uninstall
|
||||
```
|
||||
{% endmac %}
|
||||
|
||||
|
||||
{% linux %}
|
||||
|
||||
### Personalizar el servicio del ejecutor auto-hospedado
|
||||
|
||||
Si no quieres utilizar la configuración de servicio predeterminada para `systemd` antes mencionada, puedes crear un servicio personalizado o utilizar cualquier mecanismo de servicio que prefieras. Considera utilizar la plantilla de `serviced` en `actions-runner/bin/actions.runner.service.template` como referencia. Si utilizas un servicio personalizado, el servicio del ejecutor auto-hospedado siempre debe invocarse utilizando el punto de entrada `runsvc.sh`.
|
||||
|
||||
{% endlinux %}
|
||||
|
||||
{% mac %}
|
||||
|
||||
### Personalizar el servicio del ejecutor auto-hospedado
|
||||
|
||||
Si no quieres utilizar la configuración predeterminada del servicio launchd antes mencionada, puedes crear un servicio personalizado o cualquier mecanismo de servicio que prefieras. Considera utilizar la plantilla de `plist` en `actions-runner/bin/actions.runner.plist.template` como referencia. Si utilizas un servicio personalizado, el servicio del ejecutor auto-hospedado siempre debe invocarse utilizando el punto de entrada `runsvc.sh`.
|
||||
|
||||
{% endmac %}
|
||||
@@ -1,24 +0,0 @@
|
||||
---
|
||||
title: Alojar tus propios corredores
|
||||
intro: Puedes crear ejecutores autohospedados para ejecutar flujos de trabajo en un entorno altamente personalizable.
|
||||
redirect_from:
|
||||
- /github/automating-your-workflow-with-github-actions/hosting-your-own-runners
|
||||
- /actions/automating-your-workflow-with-github-actions/hosting-your-own-runners
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
children:
|
||||
- /about-self-hosted-runners
|
||||
- /adding-self-hosted-runners
|
||||
- /autoscaling-with-self-hosted-runners
|
||||
- /configuring-the-self-hosted-runner-application-as-a-service
|
||||
- /using-a-proxy-server-with-self-hosted-runners
|
||||
- /using-labels-with-self-hosted-runners
|
||||
- /using-self-hosted-runners-in-a-workflow
|
||||
- /managing-access-to-self-hosted-runners-using-groups
|
||||
- /monitoring-and-troubleshooting-self-hosted-runners
|
||||
- /removing-self-hosted-runners
|
||||
---
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
@@ -1,98 +0,0 @@
|
||||
---
|
||||
title: Administrar el acceso a los ejecutores auto-hospedados utilizando grupos
|
||||
intro: Puedes utilizar políticas para limitar el acceso a los ejecutores auto-hospedados que se hayan agregado a una organización o empresa.
|
||||
redirect_from:
|
||||
- /actions/hosting-your-own-runners/managing-access-to-self-hosted-runners
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Acerca de los grupos de ejecutores auto-hospedados
|
||||
|
||||
{% if currentVersion == "free-pro-team@latest" %}
|
||||
{% note %}
|
||||
|
||||
**Nota:** Todas las organizaciones tienen un solo grupo de ejecutores auto-hospedados predeterminado. Solo las cuentas empresariales y las organizaciones que pertenezcan a una cuenta empresarial pueden crear y administrar grupos adicionales de ejecutores auto-hospedados.
|
||||
|
||||
{% endnote %}
|
||||
{% endif %}
|
||||
|
||||
Los grupos de ejecutores auto-hospedados se utilizan para controlar el acceso a los ejecutores auto-hospedados a nivel de empresas y organizaciones. Los administradores de la empresa pueden configurar políticas de acceso que controlan qué organizaciones en la empresa tienen acceso al grupo de ejecutores. Los administradores de las organizaciones pueden configurar políticas de acceso que controlen qué repositorios en una organización tienen acceso al grupo de ejecutores.
|
||||
|
||||
Cuando un administrador de empresa otorga acceso a una organización para un grupo de ejecutores, los administradores de organización pueden ver que dicho grupo se lista en la configuración del ejecutor auto-hospedado de la organización. Los administradores de la organización pueden entonces asignar políticas de acceso adicionales para repositorios granulares en el grupo de ejecutores de la empresa.
|
||||
|
||||
Cuando se crean nuevos ejecutores, se asignan automáticamente al grupo predeterminado. Los ejecutores solo pueden estar en un grupo a la vez. Puedes mover los ejecutores del grupo predeterminado a otro grupo. Para obtener más información, consulta la sección "[Mover un ejecutor auto-hospedado a un grupo](#moving-a-self-hosted-runner-to-a-group)".
|
||||
|
||||
### Crear un grupo de ejecutores auto-hospedados para una organización
|
||||
|
||||
Todas las organizaciones tienen un solo grupo predeterminado de ejecutores auto-hospedados. Las organizaciones dentro de una cuenta empresarial pueden crear grupos auto-hospedados adicionales. Los administradores de la organización pueden permitir el acceso de los repositorios individuales a un grupo de ejecutores.
|
||||
|
||||
Los ejecutores auto-hospedados se asignan automáticamente al grupo predeterminado cuando se crean y solo pueden ser miembros de un grupo a la vez. Puedes mover un ejecutor del grupo predeterminado a cualquier grupo que crees.
|
||||
|
||||
Cuando creas un grupo, debes elegir una política que defina qué repositorios tienen acceso al grupo ejecutor. Puedes configurar un grupo ejecutor para que una lista específica de repositorios tenga acceso a él, o para que todos los repositorios de la organización lo tengan.
|
||||
|
||||
{% data reusables.organizations.navigate-to-org %}
|
||||
{% data reusables.organizations.org_settings %}
|
||||
{% data reusables.organizations.settings-sidebar-actions %}
|
||||
1. En la sección de **Ejecutores auto-hospedados** da clic en **Agregar nuevo** y luego en **Grupo nuevo**.
|
||||
|
||||

|
||||
1. Ingresa un nombre para tu grupo ejecutor y selecciona una política de acceso de la lista desplegable **Acceso al repositorio**.
|
||||
|
||||

|
||||
1. Da clic en **Guardar grupo** para crear el grupo y aplicar la política.
|
||||
|
||||
### Crear un grupo de ejecutores auto-hospedados para una empresa
|
||||
|
||||
Las empresas pueden agregar sus ejecutores auto-hospedados a grupos para su administración de accesos. Las empresas pueden crear grupos de ejecutores auto-hospedados a los cuales puedan acceder organizaciones específicas en la cuenta empresarial. Los administradores de la organización pueden entonces asignar políticas de acceso adicionales para los repositorios granulares a estos grupos de ejecutores para las empresas.
|
||||
|
||||
Los ejecutores auto-hospedados se asignan automáticamente al grupo predeterminado cuando se crean y solo pueden ser miembros de un grupo a la vez. Puedes asignar el ejecutor a un grupo específico durante el proceso de registro o puedes moverlo después desde el grupo predeterminado a un grupo personalizado.
|
||||
|
||||
Cuando creas un grupo, debes elegir una política que otorgue acceso a todas las organizaciones en la empresa o elegir las organizaciones específicas por separado.
|
||||
|
||||
{% if currentVersion == "free-pro-team@latest" %}
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% else if currentVersion != "free-pro-team@latest" and currentVersion ver_gt "enterprise-server@2.21"%}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.business %}
|
||||
{% endif %}
|
||||
{% data reusables.enterprise-accounts.policies-tab %}
|
||||
{% data reusables.enterprise-accounts.actions-tab %}
|
||||
1. Da clic en la pestaña de **Ejecutores auto-hospedados**.
|
||||
1. Da clic en **Agregar nuevo** y luego en **Grupo nuevo**.
|
||||
|
||||

|
||||
1. Ingresa un nombre para tu grupo ejecutor y selecciona una política de acceso desde la lista desplegable de **Acceso a la organización**.
|
||||
|
||||

|
||||
1. Da clic en **Guardar grupo** para crear el grupo y aplicar la política.
|
||||
|
||||
### Cambiar la política de acceso de un grupo de ejecutores auto-hospedados
|
||||
|
||||
Puedes actualizar la política de acceso de un grupo ejecutor o renombrarlo.
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-configure-runner-group-access %}
|
||||
|
||||
### Mover un ejecutor auto-hospedado a un grupo
|
||||
|
||||
Los ejecutores auto-hospedados nuevos se asignan automáticamente al grupo predeterminado y entonces pueden moverse a otro grupo.
|
||||
|
||||
1. En la sección **Ejecutores auto-hospedados** de la página de configuración, ubica el grupo actual del ejecutor que quieras mover de grupo y expande la lista de miembros de dicho grupo. 
|
||||
1. Selecciona la casilla junto al ejecutor auto-hospedado y da clic en **Mover a grupo** para ver los destinos disponibles. 
|
||||
1. Para mover el ejecutor, da clic en el grupo de destino. 
|
||||
|
||||
### Eliminar un grupo de ejecutores auto-hospedados
|
||||
|
||||
Los ejecutores auto-hospedados se devuelven automáticamente al grupo predeterminado cuando su grupo se elimina.
|
||||
|
||||
1. En la sección de **Ejecutores auto-hospedados** de la página de configuración, ubica el grupo que quieras eliminar y da clic en el botón {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %}. 
|
||||
|
||||
1. Para eliminar el grupo, da clic en **Eliminar grupo**. 
|
||||
|
||||
1. Revisa el mensaje de confirmación y da clic en **Eliminar este grupo de ejecutores**.
|
||||
@@ -1,196 +0,0 @@
|
||||
---
|
||||
title: Monitorear y solucionar problemas para los ejecutores auto-hospedados
|
||||
intro: Puedes monitorear tus ejecutores auto-hospedados para ver su actividad y diagnosticar problemas comunes.
|
||||
redirect_from:
|
||||
- /actions/hosting-your-own-runners/checking-the-status-of-self-hosted-runners
|
||||
- /github/automating-your-workflow-with-github-actions/checking-the-status-of-self-hosted-runners
|
||||
- /actions/automating-your-workflow-with-github-actions/checking-the-status-of-self-hosted-runners
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
defaultPlatform: linux
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Comprobar el estado de un ejecutor autoalojado utilizando {% data variables.product.prodname_dotcom %}
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-management-permissions-required %}
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-navigate-repo-and-org %}
|
||||
{% data reusables.organizations.settings-sidebar-actions %}
|
||||
1. Debajo de "Ejecutores auto-hospedados", puedes ver una lista de ejecutores registrados, incluyendo su nombre, etiquetas y estado.
|
||||
|
||||

|
||||
|
||||
El estado puede ser uno de los siguientes:
|
||||
|
||||
* **Idle (Inactivo)**: El ejecutor está conectado a {% data variables.product.product_name %} y está listo para ejecutar puestos de trabajo.
|
||||
* **Active (Activo)**: Actualmente, el ejecutor está ejecutando un puesto de trabajo.
|
||||
* **Offline (Sin conexión)**: El ejecutor no está conectado a {% data variables.product.product_name %}. Esto puede deberse a que la máquina está fuera de línea, la aplicación del ejecutor autoalojado no se está ejecutando en la máquina o la aplicación del ejecutor autoalojado no se puede comunicar con {% data variables.product.product_name %}.
|
||||
|
||||
|
||||
### Revisar los archivos de bitácora de la aplicación del ejecutor auto-hospedado
|
||||
|
||||
Puedes monitorear el estado de la aplicación del ejecutor auto-hospedado y de sus actividades. Los archivos de bitácora se mantienen en el directorio `_diag`, y se genera uno nuevo cada que se inicia la aplicación. El nombre de archivo comienza con *Runner_*, y le sige una marca de tiempo UTC de cuando se inició la aplicación.
|
||||
|
||||
Para obtener registros detallados sobre las ejecuciones de jobs en el flujo de trabajo, consulta la siguiente sección que describe los archivos *Worker_*.
|
||||
|
||||
### Revisar el archivo de bitácora de un job
|
||||
|
||||
La aplicación del ejecutor auto-hospedado crea un archivo de bitácora detallado para cada job que procesa. Estos archivos se guardan en el directorio `_diag`, y el nombre de archivo comienza con el prefijo *Worker_*.
|
||||
|
||||
{% linux %}
|
||||
|
||||
### Utilizar journalctl para revisar el servicio de la aplicación del ejecutor auto-hospedado
|
||||
|
||||
Para los ejecutores auto-hospedados basados en Linux que se ejecutan en la aplicación utilizando un servicio, puedes utilizar `journalctl` para monitorear su actividad en tiempo real. El servicio predeterminado basado en systemd utiliza la siguiente convención de nomenclatura: `actions.runner.<org>-<repo>.<runnerName>.service`. Este nombre se trunca si excede los 80 caracteres, así que la manera preferente de encontrar el nombre de un servicio es revisando el archivo _.service_. Por ejemplo:
|
||||
|
||||
```shell
|
||||
$ cat ~/actions-runner/.service
|
||||
actions.runner.octo-org-octo-repo.runner01.service
|
||||
```
|
||||
|
||||
Puedes utilizar `journalctl` para monitorear la actividad del ejecutor auto-hospedado en tiempo real:
|
||||
|
||||
```shell
|
||||
$ sudo journalctl -u actions.runner.octo-org-octo-repo.runner01.service -f
|
||||
```
|
||||
|
||||
En este ejemplo de salida, puedes ver como inicia `runner01`, recibe un job llamado `testAction`, y luego muestra el estado resultante:
|
||||
|
||||
```shell
|
||||
Feb 11 14:57:07 runner01 runsvc.sh[962]: Starting Runner listener with startup type: service
|
||||
Feb 11 14:57:07 runner01 runsvc.sh[962]: Started listener process
|
||||
Feb 11 14:57:07 runner01 runsvc.sh[962]: Started running service
|
||||
Feb 11 14:57:16 runner01 runsvc.sh[962]: √ Connected to GitHub
|
||||
Feb 11 14:57:17 runner01 runsvc.sh[962]: 2020-02-11 14:57:17Z: Listening for Jobs
|
||||
Feb 11 16:06:54 runner01 runsvc.sh[962]: 2020-02-11 16:06:54Z: Running job: testAction
|
||||
Feb 11 16:07:10 runner01 runsvc.sh[962]: 2020-02-11 16:07:10Z: Job testAction completed with result: Succeeded
|
||||
```
|
||||
|
||||
Para ver la configuración de systemd, puedes ubicar archivo de servicio aquí: `/etc/systemd/system/actions.runner.<org>-<repo>.<runnerName>.service`. Si quieres personalizar el servicio de la aplicación del ejecutor auto-hospedado, no modifiques directamente este archivo. Sigue las instrucciones descritas en la sección "[Configurar la aplicación del ejecutor auto-hospedado como un servicio](/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service#customizing-the-self-hosted-runner-service)".
|
||||
|
||||
{% endlinux %}
|
||||
|
||||
{% mac %}
|
||||
|
||||
### Utilizar launchd para revisar el servicio de la aplicación del ejecutor auto-hospedado
|
||||
|
||||
Para los ejecutores auto-hospedados basados en macOS que se ejecutan en la aplicación como un servicio, puedes utilizar `launchctl` para monitorear su actividad en tiempo real. El servicio predeterminado basado en launchd utiliza la siguiente convención de nomenclatura: `actions.runner.<org>-<repo>.<runnerName>`. Este nombre se trunca si excede los 80 caracteres, así que la manera preferente de encontrar el nombre del servicio es revisando el archivo _.service_ en el directorio del ejecutor:
|
||||
|
||||
```shell
|
||||
% cat ~/actions-runner/.service
|
||||
/Users/exampleUsername/Library/LaunchAgents/actions.runner.octo-org-octo-repo.runner01.plist
|
||||
```
|
||||
|
||||
El script `svc.sh` utiliza `launchctl` para revisar si la aplicación se está ejecutando. Por ejemplo:
|
||||
|
||||
```shell
|
||||
$ ./svc.sh status
|
||||
status actions.runner.example.runner01:
|
||||
/Users/exampleUsername/Library/LaunchAgents/actions.runner.example.runner01.plist
|
||||
Started:
|
||||
379 0 actions.runner.example.runner01
|
||||
```
|
||||
|
||||
La salida generada incluye la ID del proceso y el nombre del servicio launchd de la aplicación.
|
||||
|
||||
Para ver la configuración de launchd, puedes ubicar el archivo del servicio aquí: `/Users/exampleUsername/Library/LaunchAgents/actions.runner.<repoName>.<runnerName>.service`. Si quieres personalizar el servicio de la aplicación del ejecutor auto-hospedado, no modifiques directamente este archivo. Sigue las instrucciones descritas en la sección "[Configurar la aplicación del ejecutor auto-hospedado como un servicio](/actions/hosting-your-own-runners/configuring-the-self-hosted-runner-application-as-a-service#customizing-the-self-hosted-runner-service-1)".
|
||||
|
||||
{% endmac %}
|
||||
|
||||
|
||||
{% windows %}
|
||||
|
||||
### Utilizar PowerShell para revisar el servicio de la aplicación del ejecutor auto-hospedado
|
||||
|
||||
Para los ejecutores auto-hospedados basados en Windows que se ejecuten en la aplicación como servicio, puedes utilizar PowerShell para monitorear su actividad en tiempo real. El servicio utiliza la convención de nomenclatura `GitHub Actions Runner (<org>-<repo>.<runnerName>)`. También puedes encontrar el nombre del servicio si revisas el archivo _.service_ en el directorio del ejecutor:
|
||||
|
||||
```shell
|
||||
PS C:\actions-runner> Get-Content .service
|
||||
actions.runner.octo-org-octo-repo.runner01.service
|
||||
```
|
||||
|
||||
Puedes ver el estado del ejecutor en la aplicación _Services_ de Windows (`services.msc`). También puedes utilizar PowerShell para revisar si el servicio se está ejecutando:
|
||||
|
||||
```shell
|
||||
PS C:\actions-runner> Get-Service "actions.runner.octo-org-octo-repo.runner01.service" | Select-Object Name, Status
|
||||
Name Status
|
||||
---- ------
|
||||
actions.runner.octo-org-octo-repo.runner01.service Running
|
||||
```
|
||||
|
||||
Puedes utilizar PowerShell para revisar la actividad reciente del ejecutor auto-hospedado. En este ejemplo de salida, puedes ver que la aplicación comienza, recibe un job llamado `testAction`, y después muestra el estado resultante:
|
||||
|
||||
```shell
|
||||
PS C:\actions-runner> Get-EventLog -LogName Application -Source ActionsRunnerService
|
||||
|
||||
Index Time EntryType Source InstanceID Message
|
||||
----- ---- --------- ------ ---------- -------
|
||||
136 Mar 17 13:45 Information ActionsRunnerService 100 2020-03-17 13:45:48Z: Job Greeting completed with result: Succeeded
|
||||
135 Mar 17 13:45 Information ActionsRunnerService 100 2020-03-17 13:45:34Z: Running job: testAction
|
||||
134 Mar 17 13:41 Information ActionsRunnerService 100 2020-03-17 13:41:54Z: Listening for Jobs
|
||||
133 Mar 17 13:41 Information ActionsRunnerService 100 û Connected to GitHub
|
||||
132 Mar 17 13:41 Information ActionsRunnerService 0 Service started successfully.
|
||||
131 Mar 17 13:41 Information ActionsRunnerService 100 Starting Actions Runner listener
|
||||
130 Mar 17 13:41 Information ActionsRunnerService 100 Starting Actions Runner Service
|
||||
129 Mar 17 13:41 Information ActionsRunnerService 100 create event log trace source for actions-runner service
|
||||
```
|
||||
|
||||
{% endwindows %}
|
||||
|
||||
### Monitorear el proceso de actualización automática
|
||||
|
||||
Te recomendamos que revises el proceso de actualización automático a menudo, ya que el ejecutor auto-hospedado no podrá procesar jobs si cae debajo de cierto umbral de versiones. La aplicación del ejecutor auto-hospedado se actualiza automáticamente, pero nota que este proceso no incluye ninguna actualización al sistema operativo ni a otro tipo de software; necesitarás administrar estas actualizaciones por separado.
|
||||
|
||||
Puedes ver las actividades de actualización en los archivos de bitácora *Runner_*. Por ejemplo:
|
||||
|
||||
```shell
|
||||
[Feb 12 12:37:07 INFO SelfUpdater] An update is available.
|
||||
```
|
||||
|
||||
Adicionalmente, puedes encontrar más información en los archivos de bitácora _SelfUpdate_ ubicados en el directorio `_diag`.
|
||||
|
||||
{% linux %}
|
||||
|
||||
### Solucionar problemas en los contenedores de los ejecutores auto-hospedados
|
||||
|
||||
#### Revisar que se haya instalado Docker
|
||||
|
||||
Si tus jobs necesitan contenedores, entonces el ejecutor auto-hospedado debe estar basado en Linux y necesita contar con Docker instalado. Revisa que tu ejecutor auto-hospedado tenga Docker instalado y que el servicio se esté ejecutando.
|
||||
|
||||
Puedes utilizar `systemctl` para revisar el estado del servicio:
|
||||
|
||||
```shell
|
||||
$ sudo systemctl is-active docker.service
|
||||
active
|
||||
```
|
||||
|
||||
Si no se ha instalado Docker, entonces las acciones dependientes fallarán con los siguientes errores:
|
||||
|
||||
```shell
|
||||
[2020-02-13 16:56:10Z INFO DockerCommandManager] Which: 'docker'
|
||||
[2020-02-13 16:56:10Z INFO DockerCommandManager] Not found.
|
||||
[2020-02-13 16:56:10Z ERR StepsRunner] Caught exception from step: System.IO.FileNotFoundException: File not found: 'docker'
|
||||
```
|
||||
|
||||
#### Revisar los permisos de Docker
|
||||
|
||||
Si tu job falla con el siguiente error:
|
||||
|
||||
```shell
|
||||
dial unix /var/run/docker.sock: connect: permission denied
|
||||
```
|
||||
|
||||
Revisa que la cuenta de servicio del ejecutor auto-hospedado tenga permiso de utilizar el servicio de Docker. Puedes identificar esta cuenta revisando la configuración del ejecutor auto-hospedado en systemd. Por ejemplo:
|
||||
|
||||
```shell
|
||||
$ sudo systemctl show -p User actions.runner.octo-org-octo-repo.runner01.service
|
||||
User=runner-user
|
||||
```
|
||||
|
||||
{% endlinux %}
|
||||
@@ -1,81 +0,0 @@
|
||||
---
|
||||
title: Eliminar ejecutores autoalojados
|
||||
intro: 'Puedes eliminar permanentemente un ejecutor auto-hospedado de {% data variables.product.prodname_actions %}.'
|
||||
redirect_from:
|
||||
- /github/automating-your-workflow-with-github-actions/removing-self-hosted-runners
|
||||
- /actions/automating-your-workflow-with-github-actions/removing-self-hosted-runners
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Eliminar un ejecutor de un repositorio
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** {% data reusables.github-actions.self-hosted-runner-removal-impact %}
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-auto-removal %}
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Para eliminar un ejecutor auto-hospedado de un repositorio e usuario debes ser el propietario del mismo. Para un repositorio de la organización, debes ser propietario de la organización o tener acceso de administrador al repositorio. Recomendamos que también tengas acceso a la máquina del ejecutor auto-hospedado.
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-reusing %}
|
||||
|
||||
{% data reusables.repositories.navigate-to-repo %}
|
||||
{% data reusables.repositories.sidebar-settings %}
|
||||
{% data reusables.repositories.settings-sidebar-actions %}
|
||||
{% data reusables.github-actions.self-hosted-runner-removing-a-runner %}
|
||||
|
||||
### Eliminar el ejecutor de una organización
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** {% data reusables.github-actions.self-hosted-runner-removal-impact %}
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-auto-removal %}
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Para eliminar el ejecutor auto-hospedado de una organización, debes ser el propietario de la misma. Recomendamos que también tengas acceso a la máquina del ejecutor auto-hospedado.
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-reusing %}
|
||||
|
||||
{% data reusables.organizations.navigate-to-org %}
|
||||
{% data reusables.organizations.org_settings %}
|
||||
{% data reusables.repositories.settings-sidebar-actions %}
|
||||
{% data reusables.github-actions.self-hosted-runner-removing-a-runner %}
|
||||
|
||||
### Eliminar un ejecutor de una empresa
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** {% data reusables.github-actions.self-hosted-runner-removal-impact %}
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-auto-removal %}
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% if currentVersion == "free-pro-team@latest" %}
|
||||
Para eliminar a un ejecutor auot-hospedado de una cuenta empresarial, debes ser un propietario de la empresa. Recomendamos que también tengas acceso a la máquina del ejecutor auto-hospedado.
|
||||
{% else if currentVersion != "free-pro-team@latest" and currentVersion ver_gt "enterprise-server@2.21"%}
|
||||
Para eliminar el ejecutor auto-hospedado de una organización, debes ser el propietario de la misma. Recomendamos que también tengas acceso a la máquina del ejecutor auto-hospedado.
|
||||
{% endif %}
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-reusing %}
|
||||
|
||||
{% if currentVersion == "free-pro-team@latest" %}
|
||||
{% data reusables.enterprise-accounts.access-enterprise %}
|
||||
{% else if currentVersion != "free-pro-team@latest" and currentVersion ver_gt "enterprise-server@2.21"%}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.business %}
|
||||
{% endif %}
|
||||
{% data reusables.enterprise-accounts.policies-tab %}
|
||||
{% data reusables.enterprise-accounts.actions-tab %}
|
||||
{% data reusables.github-actions.self-hosted-runner-removing-a-runner %}
|
||||
@@ -1,51 +0,0 @@
|
||||
---
|
||||
title: Usar un servidor proxy con ejecutores autoalojados
|
||||
intro: 'Puedes configurar los ejecutores autoalojados para usar un servidor proxy para comunicarte con {% data variables.product.product_name %}.'
|
||||
redirect_from:
|
||||
- /actions/automating-your-workflow-with-github-actions/using-a-proxy-server-with-self-hosted-runners
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Configurar un servidor proxy mediante variables de entorno
|
||||
|
||||
Si necesitas un ejecutor autoalojado para comunicarte a través de un servidor proxy, la aplicación del ejecutor autoalojado usa configuraciones de proxy establecidas en las siguientes variables de entorno:
|
||||
|
||||
* `https_proxy`: URL del proxy para el tráfico HTTPS. También puedes incluir credenciales de autenticación básicas, si es necesario. Por ejemplo:
|
||||
* `http://proxy.local`
|
||||
* `http://192.168.1.1:8080`
|
||||
* `http://username:password@proxy.local`
|
||||
* `http_proxy`: URL del proxy para el tráfico HTTP. También puedes incluir credenciales de autenticación básicas, si es necesario. Por ejemplo:
|
||||
* `http://proxy.local`
|
||||
* `http://192.168.1.1:8080`
|
||||
* `http://username:password@proxy.local`
|
||||
* `no_proxy`: Lista de hosts separados por comas que no deberían usar un proxy. Solo se permiten nombres de host en `no_proxy`, no puedes usar direcciones IP. Por ejemplo:
|
||||
* `example.com`
|
||||
* `example.com,myserver.local:443,example.org`
|
||||
|
||||
Las variables de entorno de proxy se leen cuando se inicia la aplicación del ejecutor autoalojado, por lo que debes establecer las variables de entorno antes de configurar o iniciar la aplicación del ejecutor autoalojado. Si cambia la configuración de tu proxy, debes reiniciar la aplicación del ejecutor autoalojado.
|
||||
|
||||
En las máquinas Windows, los nombres de las variables de entorno proxy no distinguen mayúsculas de minúsculas. En las máquinas Linux y macOS, te recomendamos que uses todas las variables de entorno en minúsculas. Si tienes una variable de entorno tanto en minúsculas como en mayúsculas en Linux o macOS, por ejemplo `https_proxy` y `HTTPS_PROXY`, la aplicación del ejecutor autoalojado usa la variable de entorno en minúscula.
|
||||
|
||||
### Usar un archivo.env para establecer la configuración del proxy
|
||||
|
||||
Si establecer variables de entorno no es práctico, puedes establecer las variables de configuración de proxy en un archivo llamado _.env_ en el directorio de la aplicación del ejecutor autoalojado. Por ejemplo, esto puede ser necesario si deseas configurar la aplicación del ejecutor como un servicio en una cuenta de sistema. Cuando se inicia la aplicación del ejecutor, lee las variables establecidas en _.env_ para la configuración del proxy.
|
||||
|
||||
A continuación se muestra un ejemplo de configuración del proxy _.env_:
|
||||
|
||||
```
|
||||
https_proxy=http://proxy.local:8080
|
||||
no_proxy=example.com,myserver.local:443
|
||||
```
|
||||
|
||||
### Establecer la configuración del proxy para contenedores Docker
|
||||
|
||||
Si usas las acciones del contenedor Docker o los contenedores de servicio en tus flujos de trabajo, es posible que también debas configurar Docker para usar tu servidor proxy además de establecer las variables de entorno anteriores.
|
||||
|
||||
Para obtener información sobre la configuración de Docker que se necesita, consulta "[Configurar Docker para usar un servidor proxy](https://docs.docker.com/network/proxy/)" en la documentación de Docker.
|
||||
@@ -1,64 +0,0 @@
|
||||
---
|
||||
title: Utilizar etiquetas con ejecutores auto-hospedados
|
||||
intro: Puedes utilizar etiquetas para organizar tus ejecutores auto-hospedados según sus características.
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
Para obtener información sobre cómo utilizar las etiquetas para rutear jobs a tipos específicos de ejecutores auto-hospedados, consulta la sección "[Utilizar ejecutores auto-hospedados en un flujo de trabajo](/actions/hosting-your-own-runners/using-self-hosted-runners-in-a-workflow)".
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-management-permissions-required %}
|
||||
|
||||
### Crear una etiqueta personalizada
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-navigate-to-repo-org-enterprise %}
|
||||
{% data reusables.github-actions.self-hosted-runner-list %}
|
||||
{% data reusables.github-actions.self-hosted-runner-list-group %}
|
||||
{% data reusables.github-actions.self-hosted-runner-labels-view-assigned-labels %}
|
||||
1. En el campo "Filtrar etiquetas", teclea el nombre de tu nueva etiqueta y da clic en **Crear nueva etiqueta**. 
|
||||
|
||||
La etiqueta personalizada se creará y asignará al ejecutor auto-hospedado. Las etiquetas personalizadas pueden eliminarse de los ejecutores auto-hospedados, pero actualmente no pueden eliminarse manualmente. {% data reusables.github-actions.actions-unused-labels %}
|
||||
|
||||
### Asignar una etiqueta a un ejecutor auto-hospedado
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-navigate-to-repo-org-enterprise %}
|
||||
{% data reusables.github-actions.self-hosted-runner-list %}
|
||||
{% data reusables.github-actions.self-hosted-runner-list-group %}
|
||||
{% data reusables.github-actions.self-hosted-runner-labels-view-assigned-labels %}
|
||||
1. Da clic en la etiqueta para asignarla a tu ejecutor auto-hospedado.
|
||||
|
||||
### Eliminar una etiqueta personalizada de un ejecutor auto-hospedado
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-navigate-to-repo-org-enterprise %}
|
||||
{% data reusables.github-actions.self-hosted-runner-list %}
|
||||
{% data reusables.github-actions.self-hosted-runner-list-group %}
|
||||
{% data reusables.github-actions.self-hosted-runner-labels-view-assigned-labels %}
|
||||
1. Da clic en la etiqueta asignada para eliminarla de tu ejecutor auto-hospedado. {% data reusables.github-actions.actions-unused-labels %}
|
||||
|
||||
### Utilizar el script de configuración para crear y asignar etiquetas
|
||||
|
||||
Puedes utilizar el script de configuración en el ejecutor auto-hospedado para crear y asignar etiquetas personalizadas. Por ejemplo, este comando asigna una etiqueta llamada `gpu` al ejecutor auto-hospedado.
|
||||
|
||||
```shell
|
||||
./config.sh --labels gpu
|
||||
```
|
||||
|
||||
La etiqueta se creará si no existe. También puedes utilizar este acercamiento para asignar etiquetas predeterminadas a los ejecutores, tales como `x64` o `linux`. Cuando se asignan etiquetas predeterminadas utilizando el script de configuración, {% data variables.product.prodname_actions %} las acepta como asignadas y no valida si el ejecutor está utilizando ese sistema operativo o arquitectura.
|
||||
|
||||
Puedes utilizar separación por comas para asignar etiquetas múltiples. Por ejemplo:
|
||||
|
||||
```shell
|
||||
./config.sh --labels gpu,x64,linux
|
||||
```
|
||||
|
||||
{% note %}
|
||||
|
||||
** Nota:** Si reemplazaste un ejecutor existente, entonces deberás volver a asignar cualquier etiqueta personalizada.
|
||||
|
||||
{% endnote %}
|
||||
@@ -1,72 +0,0 @@
|
||||
---
|
||||
title: Usar ejecutores autoalojados en un flujo de trabajo
|
||||
intro: 'Para usar los ejecutores autoalojados en un flujo de trabajo, puedes usar etiquetas para especificar el tipo de ejecutores para un trabajo.'
|
||||
redirect_from:
|
||||
- /github/automating-your-workflow-with-github-actions/using-self-hosted-runners-in-a-workflow
|
||||
- /actions/automating-your-workflow-with-github-actions/using-self-hosted-runners-in-a-workflow
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
type: tutorial
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
Para obtener más información sobre cómo crear etiquetas personalizadas y predeterminadas, consulta la sección "[Utilizar etiquetas con ejecutores auto-hospedados](/actions/hosting-your-own-runners/using-labels-with-self-hosted-runners)".
|
||||
|
||||
### Usar ejecutores autoalojados en un flujo de trabajo
|
||||
|
||||
Las etiquetas te permiten enviar jobs de flujo de trabajo a tipos específicos de ejecutores auto-hospedados, de acuerdo con sus características compartidas. Por ejemplo, si tu job requiere una componente de hardware o paquete de software específico, puedes asignar una etiqueta personalizada a un ejecutor y después configurar tu job para que solo se ejecute en los ejecutores con esta etiqueta.
|
||||
|
||||
{% data reusables.github-actions.self-hosted-runner-labels-runs-on %}
|
||||
|
||||
Para obtener más información, consulta la sección "[Sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idruns-on)".
|
||||
|
||||
### Utilizar etiquetas predeterminadas para enrutar jobs
|
||||
|
||||
Un ejecutor auto-hospedado recibe ciertas etiquetas automáticamente cuando se agrega a {% data variables.product.prodname_actions %}. Estas se utilizan para indicar su sistema operativo y plataforma de hardware:
|
||||
|
||||
* `autoalojado`: Etiqueta por defecto aplicada a todos los ejecutores autoalojados.
|
||||
* `linux`, `windows`, o `macOS`: Se aplican dependiendo del sistema operativo.
|
||||
* `x86`, `x64`, `ARM`, o `ARM64`: Se aplican dependiendo de la arquitectura del hardware.
|
||||
|
||||
Puedes utilizar el YAML de tu flujo de trabajo para mandar jobs a las diferentes combinaciones de estas etiquetas. En este ejemplo, un ejecutor auto-hospedado que empate con las tres etiquetas será elegible para ejecutar el job:
|
||||
|
||||
```yaml
|
||||
runs-on: [self-hosted, linux, ARM64]
|
||||
```
|
||||
|
||||
- `self-hosted` - Ejecuta este job en un ejecutor auto-hospedado.
|
||||
- `linux` - Utiliza únicamente un ejecutor basado en Linux.
|
||||
- `ARM64` - Utiliza únicamente un ejecutor basado en hardware ARM64.
|
||||
|
||||
Las etiquetas predeterminadas son fijas y no se pueden cambiar ni eliminar. Considera utilizar etiquetas personalizadas si necesitas más control sobre el enrutamiento de los jobs.
|
||||
|
||||
### Utilizar etiquetas personalizadas para enrutar jobs
|
||||
|
||||
Puedes crear etiquetas personalizadas y asignarlas a tus ejecutores auto-hospedados en cualquier momento. Las etiquetas personalizadas te permiten enviar jobs a tipos particulares de ejecutores auto-hospedados, basándose en cómo se etiquetan.
|
||||
|
||||
Por ejemplo, si tienes un job que requiere un tipo específico de hardware de gráficos, puedes crear una etiqueta personalizada llamada `gpu` y asignarla a los ejecutores que tengan instalado este hardware. Un ejecutor auto-hospedado que empate con las etiquetas asignadas será entonces elegible para ejecutar el job.
|
||||
|
||||
Este ejemplo muestra un job que combina etiquetas predeterminadas y personalizadas:
|
||||
|
||||
```yaml
|
||||
runs-on: [self-hosted, linux, x64, gpu]
|
||||
```
|
||||
|
||||
- `self-hosted` - Ejecuta este job en un ejecutor auto-hospedado.
|
||||
- `linux` - Utiliza únicamente un ejecutor basado en Linux.
|
||||
- `x64` - Utiliza únicamente un ejecutor basado en hardware x64.
|
||||
- `gpu` - Esta etiqueta personalizada se asignó manualmente a los ejecutores auto-hospedados con hardware de GPU instalado.
|
||||
|
||||
Estas etiquetas operan acumulativamente, así que las etiquetas de un ejecutor auto-hospedado deberán empatar con los cuatro criterios para poder ser elegibles para procesar el job.
|
||||
|
||||
### Precedencia de enrutamiento para los ejecutores auto-hospedados
|
||||
|
||||
Si utilizas ejecutores tanto a nivel de repositorio como a nivel de organización, {% data variables.product.prodname_dotcom %} sigue un orden de precedencia cuando enruta los jobs hacia los ejecutores auto-hospedados:
|
||||
|
||||
1. Se procesan las etiquetas de `runs-on` del job. Entonces, {% data variables.product.prodname_dotcom %} intenta ubicar un ejecutor que coincida con los requisitos de la etiqueta:
|
||||
2. El job se envía a un ejecutor a nivel de repositorio que coincida con las etiquetas del mismo. Si no hay un ejecutor a nivel de repositorio disponible (ya sea que esté ocupado, sin conexión, o no tenga etiquetas que coincidan):
|
||||
3. El job se envía a un ejecutor de nivel organizacional que coincida con las etiquetas del mismo. Si hay un ejecutor de nivel organizacional disponible, el la solicitud del job falla con un error.
|
||||
@@ -1,62 +0,0 @@
|
||||
---
|
||||
title: Documentación de GitHub Actions
|
||||
shortTitle: GitHub Actions
|
||||
intro: 'Automatiza, personaliza y ejecuta tus flujos de trabajo de desarrollo de software directamente en tu repositorio con {% data variables.product.prodname_actions %}. Puedes descubrir, crear y compartir acciones para realizar cualquier trabajo que quieras, incluido CI/CD, y combinar acciones en un flujo de trabajo completamente personalizado.'
|
||||
featuredLinks:
|
||||
guides:
|
||||
- /actions/learn-github-actions
|
||||
- /actions/guides/about-continuous-integration
|
||||
- /actions/deployment/deploying-with-github-actions
|
||||
- /actions/guides/about-packaging-with-github-actions
|
||||
- /actions/monitoring-and-troubleshooting-workflows/about-monitoring-and-troubleshooting
|
||||
guideCards:
|
||||
- /actions/guides/setting-up-continuous-integration-using-workflow-templates
|
||||
- /actions/guides/publishing-nodejs-packages
|
||||
- /actions/guides/building-and-testing-powershell
|
||||
popular:
|
||||
- /actions/learn-github-actions/workflow-syntax-for-github-actions
|
||||
- /actions/learn-github-actions
|
||||
- /actions/learn-github-actions/events-that-trigger-workflows
|
||||
- /actions/learn-github-actions/contexts
|
||||
- /actions/learn-github-actions/expressions
|
||||
- /actions/learn-github-actions/environment-variables
|
||||
- /actions/security-guides/encrypted-secrets
|
||||
redirect_from:
|
||||
- /articles/automating-your-workflow-with-github-actions/
|
||||
- /articles/customizing-your-project-with-github-actions/
|
||||
- /github/automating-your-workflow-with-github-actions
|
||||
- /actions/automating-your-workflow-with-github-actions/
|
||||
- /categories/automating-your-workflow-with-github-actions
|
||||
- /marketplace/actions
|
||||
- /actions/guides
|
||||
- /actions/reference
|
||||
layout: product-landing
|
||||
versions:
|
||||
fpt: '*'
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
introLinks:
|
||||
overview: /actions/learn-github-actions/understanding-github-actions
|
||||
quickstart: /actions/quickstart
|
||||
changelog:
|
||||
label: actions
|
||||
prefix: 'GitHub Actions: '
|
||||
product_video: 'https://www.youtube-nocookie.com/embed/cP0I9w2coGU'
|
||||
children:
|
||||
- /quickstart
|
||||
- /learn-github-actions
|
||||
- /creating-actions
|
||||
- /security-guides
|
||||
- /automating-builds-and-tests
|
||||
- /deployment
|
||||
- /managing-issues-and-pull-requests
|
||||
- /publishing-packages
|
||||
- /using-containerized-services
|
||||
- /advanced-guides
|
||||
- /managing-workflow-runs
|
||||
- /monitoring-and-troubleshooting-workflows
|
||||
- /using-github-hosted-runners
|
||||
- /hosting-your-own-runners
|
||||
- /migrating-to-github-actions
|
||||
---
|
||||
|
||||
@@ -1,475 +0,0 @@
|
||||
---
|
||||
title: Sintaxis de contexto y de expresiones para acciones de GitHub
|
||||
shortTitle: Sintaxis de contexto y de expresiones
|
||||
intro: Puedes acceder a información de contexto y evaluar expresiones en flujos de trabajo y acciones.
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
redirect_from:
|
||||
- /articles/contexts-and-expression-syntax-for-github-actions
|
||||
- /github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions
|
||||
- /actions/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions
|
||||
- /actions/reference/contexts-and-expression-syntax-for-github-actions
|
||||
versions:
|
||||
free-pro-team: '*'
|
||||
enterprise-server: '>=2.22'
|
||||
github-ae: '*'
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Acerca de los contextos y las expresiones
|
||||
|
||||
Puedes usar expresiones para establecer variables programáticamente en archivos de flujo de trabajo y contextos de acceso. Una expresión puede ser cualquier combinación de valores literales, referencias a un contexto, o funciones. Puedes combinar literales, referencias de contexto y funciones usando operadores.
|
||||
|
||||
Las expresiones se utilizan comúnmente con la palabra clave condicional `if` en un archivo de flujo de trabajo para determinar si un paso debe ejecutar. Cuando un condicional `if` es `true`, se ejecutará el paso.
|
||||
|
||||
Debes usar una sintaxis específica para decirle a {% data variables.product.prodname_dotcom %} que evalúe una expresión en lugar de tratarla como una cadena.
|
||||
|
||||
{% raw %}
|
||||
`${{ <expression> }}`
|
||||
{% endraw %}
|
||||
|
||||
{% data reusables.github-actions.expression-syntax-if %} Para obtener más información acerca de los condicionales `if`, consulta la sección "[sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions/#jobsjob_idif)".
|
||||
|
||||
#### Expresión de ejemplo en un condicional `if`
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- uses: actions/hello-world-javascript-action@v1.1
|
||||
if: {% raw %}${{ <expression> }}{% endraw %}
|
||||
```
|
||||
|
||||
#### Ejemplo de parámetros en una variable de entorno
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
env:
|
||||
my_env_var: ${{ <expression> }}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### Contextos
|
||||
|
||||
Los contextos son una manera de acceder a información acerca de las ejecuciones de flujo de trabajo, los entornos del ejecutor, los trabajos y los pasos. Los contextos usan la sintaxis de expresión.
|
||||
|
||||
{% raw %}
|
||||
`${{ <context> }}`
|
||||
{% endraw %}
|
||||
|
||||
| Nombre del contexto | Tipo | Descripción |
|
||||
| ------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `github` | `objeto` | Información sobre la ejecución del flujo de trabajo. Para obtener más información, consulta [github</code> context](#github-context). |
|
||||
| `env` | `objeto` | Contiene variables de entorno establecidas en un flujo de trabajo, trabajo o paso. Para obtener más información, consulta contexto de [`env`](#env-context). |
|
||||
| `job` | `objeto` | Información sobre el trabajo actualmente en ejecución. Para obtener más información, consulta contexto de [`job`](#job-context). |
|
||||
| `pasos` | `objeto` | Información sobre los pasos que se han ejecutado en este trabajo. Para obtener más información, consulta contexto de [`steps`](#steps-context). |
|
||||
| `runner` | `objeto` | Incluye información sobre el ejecutor que está realizando el trabajo actual. Para más información, consulta [Contexto del `ejecutador (runner)`](#runner-context). |
|
||||
| `secrets` | `objeto` | Habilita el acceso a los secretos. Para más información sobre secretos, consulta "[Creando y usando secretos encriptados](/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)." |
|
||||
| `strategy` | `objeto` | Brinda acceso a los parámetros de estrategia configurados y a la información sobre el puesto actual. Los parámetros de estrategia incluyen `fail-fast`, `job-index`, `job-total` y `max-parallel`. |
|
||||
| `matrix` | `objeto` | Brinda acceso a los parámetros de la matriz que configuraste para el puesto actual. Por ejemplo, si configuraste una matriz de construcción con las versiones `os` y `node`, el objeto de contexto `matrix` incluye las versiones `os` y `node` del puesto actual. |
|
||||
| `needs` | `objeto` | Habilita el acceso de las salidas de todos los jobs que se definen como una dependencia para el job actual. Para obtener más información, consulta [`needs` context](#needs-context). |
|
||||
|
||||
Como parte de una expresión, puedes acceder a la información del contexto usando una de dos sintaxis.
|
||||
- Sintaxis de índice: `github['sha']`
|
||||
- Sintaxis de desreferencia de propiedad: `github.sha`
|
||||
|
||||
Para usar la sintaxis de desreferencia de propiedad, el nombre de la propiedad debe cumplir con lo siguiente:
|
||||
- comenzar con `a-Z` o `_`.
|
||||
- estar seguida por `a-Z` `0-9` `-` o `_`.
|
||||
|
||||
#### **contexto `github`**
|
||||
|
||||
El contexto de `github` contiene información sobre la ejecución del flujo de trabajo y el evento que desencadenó la ejecución. Puedes leer la mayoría de los datos de contexto de `github` en las variables del entorno. Para más información sobre las variables de entorno, consulta "[Utilizando variables de entorno](/actions/automating-your-workflow-with-github-actions/using-environment-variables)."
|
||||
|
||||
{% data reusables.github-actions.github-context-warning %}
|
||||
|
||||
| Nombre de la propiedad | Tipo | Descripción |
|
||||
| ------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `github` | `objeto` | El contexto de nivel superior disponible durante cualquier trabajo o paso en un flujo de trabajo. |
|
||||
| `github.event` | `objeto` | La carga de webhook del evento completo. Para obtener más información, consulta "[Eventos que activan los flujos de trabajo](/articles/events-that-trigger-workflows/)". "Puedes acceder a propiedades individuales del evento que utiliza este contexto. |
|
||||
| `github.event_path` | `secuencia` | La ruta a la carga del webhook del evento completo en el ejecutor. |
|
||||
| `github.workflow` | `secuencia` | El nombre del flujo de trabajo. Si el archivo de flujo de trabajo no especifica un `name`, el valor de esta propiedad es la ruta completa del archivo del flujo de trabajo en el repositorio. |
|
||||
| `github.job` | `secuencia` | El [`job_id`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_id) del job actual. |
|
||||
| `github. run_id` | `secuencia` | {% data reusables.github-actions.run_id_description %} |
|
||||
| `github. run_number` | `secuencia` | {% data reusables.github-actions.run_number_description %} |
|
||||
| `github.actor` | `secuencia` | El inicio de sesión del usuario que inició la ejecución del flujo de trabajo. |
|
||||
| `github.repository` | `secuencia` | El nombre del repositorio y del propietario. Por ejemplo, `Codertocat/Hello-World`. |
|
||||
| `github.repository_owner` | `secuencia` | El nombre del propietario del repositorio. Por ejemplo, `Codertocat`. |
|
||||
| `github.event_name` | `secuencia` | El nombre del evento que activó la ejecución del flujo de trabajo. |
|
||||
| `github.sha` | `secuencia` | El SHA de confirmación que activó la ejecución del flujo de trabajo. |
|
||||
| `github.ref` | `secuencia` | La rama o ref de etiqueta que activó la ejecución del flujo de trabajo. |
|
||||
| `github.head_ref` | `secuencia` | La rama `head_ref` o fuente de la solicitud de extracción en una ejecución de flujo de trabajo. Esta propiedad solo está disponible cuando el evento que activa una ejecución de flujo de trabajo es una `pull_request`. |
|
||||
| `github.base_ref` | `secuencia` | La rama `head_ref` o fuente de la solicitud de extracción en una ejecución de flujo de trabajo. Esta propiedad solo está disponible cuando el evento que activa una ejecución de flujo de trabajo es una `pull_request`. |
|
||||
| `github.token` | `secuencia` | Un token para autenticar en nombre de la aplicación de GitHub instalada en tu repositorio. Funcionalmente, esto equivale al secreto de `GITHUB_TOKEN`. Para más información, consulta "[Autenticando con el GITHUB_TOKEN](/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token)." |
|
||||
| `github.workspace` | `secuencia` | El directorio de trabajo predeterminado para los pasos y la ubicación predeterminada de tu repositorio cuando usas la acción [`checkout`](https://github.com/actions/checkout). |
|
||||
| `github.action` | `secuencia` | El nombre de la acción que se está ejecutando actualmente. {% data variables.product.prodname_dotcom %} elimina caracteres especiales o usa el nombre `run` cuando el paso actual ejecuta un script. Si usas la misma acción más de una vez en el mismo trabajo, el nombre incluirá un sufijo con el número de secuencia. Por ejemplo, el primer script que ejecutes tendrá el nombre `run1`, y el segundo script será nombrado `run2`. Del mismo modo, la segunda invocación de `actions/checkout` será `actionscheckout2`. |
|
||||
| `github.action_path` | `secuencia` | La ruta en donde se ubica tu acción. Puedes utilizar esta ruta para acceder fácilmente a los archivos ubicados en el mismo repositorio que tu acción. Este atributo solo es compatible con las acciones de los pasos de ejecución compuestos. |
|
||||
|
||||
#### **contexto de `env`**
|
||||
|
||||
El contexto de `Env` contiene las variables de entorno que se han establecido en un flujo de trabajo, puesto o paso. Para obtener más información acerca de la configuración de variables de entorno en tu flujo de trabajo, consulta "[Sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#env)".
|
||||
|
||||
La sintaxis de contexto `env` te permite usar el valor de una variable de entorno en tu archivo de flujo de trabajo. Si quieres usar el valor de una variable de entorno dentro de un ejecutor, usa el método normal del sistema operativo del ejecutor para leer las variables de entorno.
|
||||
|
||||
Solo puedes usar el contexto de `env` en el valor de las llaves `with` y `name`, o en un condicional `if` del paso. Para obtener más información sobre la sintaxis del paso, consulta "[Sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idsteps)".
|
||||
|
||||
| Nombre de la propiedad | Tipo | Descripción |
|
||||
| ---------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| `env` | `objeto` | Este contexto cambia para cada paso de un trabajo. Puedes acceder a este contexto desde cualquier paso en un trabajo. |
|
||||
| `Env.<env name>` | `secuencia` | El valor de una variable de entorno específica. |
|
||||
|
||||
|
||||
#### **contexto de `job`**
|
||||
|
||||
El contexto `trabajo` contiene información sobre el trabajo de ejecución actual.
|
||||
|
||||
| Nombre de la propiedad | Tipo | Descripción |
|
||||
| ----------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `job` | `objeto` | Este contexto cambia para cada trabajo de una ejecución de flujo de trabajo. Puedes acceder a este contexto desde cualquier paso en un trabajo. |
|
||||
| `job.status` | `secuencia` | El estado actual del trabajo. Los valores posibles son `success`, `failure` o `cancelled`. |
|
||||
| `job.container` | `objeto` | Información sobre el contenedor del trabajo. Para obtener más información sobre los contenedores, consulta "[Sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#jobsjob_idcontainer)". |
|
||||
| `job.container.network` | `secuencia` | La Id. de la red del contenedor. El ejecutor crea la red usada por todos los contenedores en un trabajo. |
|
||||
| `job.container.id` | `secuencia` | La Id. de la red del contenedor. |
|
||||
| `job.services` | `objeto` | Los contenedores de servicios creados para un trabajo. Para obtener más información sobre los contenedores de servicios, consulta "[Sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#jobsjob_idservices)". |
|
||||
| `job.services.<service id>.id` | `secuencia` | La Id del contenedor de servicio. |
|
||||
| `job.services.<service id>.ports` | `objeto` | Los puertos expuestos del contenedor del servicio. |
|
||||
| `job.services.<service id>.network` | `secuencia` | La Id de la red del contenedor de servicio. El ejecutor crea la red usada por todos los contenedores en un trabajo. |
|
||||
|
||||
#### **contexto de `steps`**
|
||||
|
||||
El contexto `steps` contiene información sobre los pasos en el trabajo actual que ya se ha ejecutado.
|
||||
|
||||
| Nombre de la propiedad | Tipo | Descripción |
|
||||
| --------------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `pasos` | `objeto` | Este contexto cambia para cada paso de un trabajo. Puedes acceder a este contexto desde cualquier paso en un trabajo. |
|
||||
| `steps.<step id>.outputs` | `objeto` | El conjunto de salidas definido para el paso. Para obtener más información, consulta "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/articles/metadata-syntax-for-github-actions#outputs)". |
|
||||
| `steps.<step id>.outputs.<output name>` | `secuencia` | El valor de un resultado específico. |
|
||||
| `steps.<step id>.outcome` | `secuencia` | El resultado de un paso completado antes de que se aplique [`continue-on-error`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error). Los valores posibles son `success`, `failure`, `cancelled`, o `skipped`. Cuando falla un paso de `continue-on-error`, el `outcome` es `failure`, pero la `conclusion` final es `success`. |
|
||||
| `steps.<step id>.conclusion` | `secuencia` | El resultado de un paso completado después de que se aplica [`continue-on-error`](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error). Los valores posibles son `success`, `failure`, `cancelled`, o `skipped`. Cuando falla un paso de `continue-on-error`, el `outcome` es `failure`, pero la `conclusion` final es `success`. |
|
||||
|
||||
#### **Contexto de `runner`**
|
||||
|
||||
El contexto de `runner` contiene información sobre el ejecutor que está ejecutando el trabajo actual.
|
||||
|
||||
| Nombre de la propiedad | Tipo | Descripción |
|
||||
| ---------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `runner.os` | `secuencia` | El sistema operativo del ejecutor que ejecuta el trabajo. Los valores posibles son `Linux`, `Windows` o `macOS`. |
|
||||
| `runner.temp` | `secuencia` | La ruta del directorio temporal para el ejecutor. Se garantiza que este directorio estará vacío al inicio de cada trabajo, incluso en los ejecutores autoalojados. |
|
||||
| `runner.tool_cache` | `secuencia` | La ruta del directorio que contiene algunas de las herramientas preinstaladas para los ejecutores alojados en {% data variables.product.prodname_dotcom %}. Para obtener más información, consulta "[Software instalado en los ejecutores alojados por GitHub](/actions/automating-your-workflow-with-github-actions/software-installed-on-github-hosted-runners)". |
|
||||
|
||||
#### **Contexto `needs`**
|
||||
|
||||
El contexto `needs` contiene salidas de todos los jobs que se definen como dependencia del job actual. Para obtener más información sobre la definición de dependencias de jobs, consulta la sección "[Sintaxis de flujos de trabajo para {% data variables.product.prodname_actions %}](/actions/reference/workflow-syntax-for-github-actions#jobsjob_idneeds)".
|
||||
|
||||
| Nombre de la propiedad | Tipo | Descripción |
|
||||
| -------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| `needs.<job id>` | `objeto` | Un solo job del cual depende el job actual. |
|
||||
| `needs.<job id>.result` | `secuencia` | El resultado de un job del cual depende el job actual. Los valores posibles son `success`, `failure` o `cancelled`. |
|
||||
| `needs.<job id>.outputs` | `objeto` | El conjunto de resultados de un job del cual depende el job actual. |
|
||||
| `needs.<job id>.outputs.<output name>` | `secuencia` | El valor de un resultado específico para un job del cual depende el job actual. |
|
||||
|
||||
#### Ejemplo de impresión de información de contexto de un archivo de registro
|
||||
|
||||
Para inspeccionar la información accesible en cada contexto, puedes utilizar este ejemplo de archivo de flujo de trabajo.
|
||||
|
||||
{% data reusables.github-actions.github-context-warning %}
|
||||
|
||||
**.github/workflows/main.yml**
|
||||
{% raw %}
|
||||
```yaml
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
one:
|
||||
runs-on: ubuntu-16.04
|
||||
steps:
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- name: Dump job context
|
||||
env:
|
||||
JOB_CONTEXT: ${{ toJson(job) }}
|
||||
run: echo "$JOB_CONTEXT"
|
||||
- name: Dump steps context
|
||||
env:
|
||||
STEPS_CONTEXT: ${{ toJson(steps) }}
|
||||
run: echo "$STEPS_CONTEXT"
|
||||
- name: Dump runner context
|
||||
env:
|
||||
RUNNER_CONTEXT: ${{ toJson(runner) }}
|
||||
run: echo "$RUNNER_CONTEXT"
|
||||
- name: Dump strategy context
|
||||
env:
|
||||
STRATEGY_CONTEXT: ${{ toJson(strategy) }}
|
||||
run: echo "$STRATEGY_CONTEXT"
|
||||
- name: Dump matrix context
|
||||
env:
|
||||
MATRIX_CONTEXT: ${{ toJson(matrix) }}
|
||||
run: echo "$MATRIX_CONTEXT"
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### Literales
|
||||
|
||||
Como parte de una expresión, puedes usar tipos de datos `boolean`, `null`, `number` o `string`. Los literales booleanos no distinguen minúsculas de mayúsculas, por lo que puedes usar `true` o `True`.
|
||||
|
||||
| Tipo de datos | Valor literal |
|
||||
| ------------- | --------------------------------------------------------------------------------------- |
|
||||
| `boolean` | `true` o `falso` |
|
||||
| `null` | `null` |
|
||||
| `number` | Cualquier formato de número compatible con JSON. |
|
||||
| `secuencia` | Debes usar comillas simples. Escapar comillas simples literales con una comilla simple. |
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
env:
|
||||
myNull: ${{ null }}
|
||||
myBoolean: ${{ false }}
|
||||
myIntegerNumber: ${{ 711 }}
|
||||
myFloatNumber: ${{ -9.2 }}
|
||||
myHexNumber: ${{ 0xff }}
|
||||
myExponentialNumber: ${{ -2.99-e2 }}
|
||||
myString: ${{ 'Mona the Octocat' }}
|
||||
myEscapedString: ${{ 'It''s open source!' } }}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### Operadores
|
||||
|
||||
| Operador | Descripción |
|
||||
| ------------------------- | -------------------------- |
|
||||
| `( )` | Agrupación lógica |
|
||||
| `[ ]` | Índice |
|
||||
| `.` | Desreferencia de propiedad |
|
||||
| `!` | No |
|
||||
| `<` | Menos que |
|
||||
| `<` | Menor o igual |
|
||||
| `>` | Mayor que |
|
||||
| `>=` | Mayor o igual |
|
||||
| `==` | Igual |
|
||||
| `!=` | No es igual |
|
||||
| `&&` | Y |
|
||||
| <code>\|\|</code> | O |
|
||||
|
||||
{% data variables.product.prodname_dotcom %} realiza comparaciones de igualdad flexible.
|
||||
|
||||
* Si los tipos no coinciden, {% data variables.product.prodname_dotcom %} fuerza el tipo a un número. {% data variables.product.prodname_dotcom %} fusiona los tipos de datos con un número usando estas conversiones:
|
||||
|
||||
| Tipo | Resultado |
|
||||
| ------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Null | `0` |
|
||||
| Boolean | `true` devuelve `1` <br /> `falso` devuelve `0` |
|
||||
| Cadena | Analizado desde cualquier formato de número JSON legal, de lo contrario `NaN`. <br /> Nota: la cadena vacía devuelve `0`. |
|
||||
| Array | `NaN` |
|
||||
| Object | `NaN` |
|
||||
* Una comparación de un `NaN` con otro `NaN` no genera `true`. Para obtener más información, consulta "[Documentos de Mozilla NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN)".
|
||||
* {% data variables.product.prodname_dotcom %} ignora las mayúsculas y minúsculas al comparar cadenas.
|
||||
* Los objetos y matrices solo se consideran iguales cuando son la misma instancia.
|
||||
|
||||
### Funciones
|
||||
|
||||
{% data variables.product.prodname_dotcom %} ofrece un conjunto de funciones integradas que puedes usar en expresiones. Algunas funciones fusionan valores en una cadena para realizar las comparaciones. {% data variables.product.prodname_dotcom %} fusiona los tipos de datos con una cadena usando estas conversiones:
|
||||
|
||||
| Tipo | Resultado |
|
||||
| ------- | ------------------------------------------------- |
|
||||
| Null | `''` |
|
||||
| Boolean | `'true'` o `'falso'` |
|
||||
| Number | Formato decimal, exponencial para grandes números |
|
||||
| Array | Las matrices no se convierten en cadenas |
|
||||
| Object | Los objetos no se convierten en cadenas |
|
||||
|
||||
#### Contiene
|
||||
|
||||
`contiene (buscar, elemento)`
|
||||
|
||||
Arroja `true` si `search` contiene `item`. Si `search` es una matriz, esta función arroja `true` si el `item` es un elemento de la matriz. Si `search` es una cadena, esta función arroja `true` si el `item` es una subcadena de `search`. Esta función no distingue mayúsculas de minúsculas. Fusiona valores en una cadena.
|
||||
|
||||
##### Ejemplo usando una matriz
|
||||
|
||||
`contains(github.event.issue.labels.*.name, 'bug')`
|
||||
|
||||
##### Ejemplo usando una cadena
|
||||
|
||||
`contains('Hello world', 'llo')` devuelve `true`
|
||||
|
||||
#### startsWith
|
||||
|
||||
`startsWith( searchString, searchValue )`
|
||||
|
||||
Devuelve `true` cuando `searchString` contiene `searchValue`. Esta función no distingue mayúsculas de minúsculas. Fusiona valores en una cadena.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
`startsWith('Hello world', 'He')` regresa a `true`
|
||||
|
||||
#### endsWith
|
||||
|
||||
`endsWith( searchString, searchValue )`
|
||||
|
||||
Devuelve `true` si `searchString` contiene `searchValue`. Esta función no distingue mayúsculas de minúsculas. Fusiona valores en una cadena.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
`endsWith('Hello world', 'He')` devuelve `true`
|
||||
|
||||
#### format
|
||||
|
||||
`format( string, replaceValue0, replaceValue1, ..., replaceValueN)`
|
||||
|
||||
Reemplaza valores en la `cadena`, con la variable `replaceValueN`. Las variables en la `cadena` se especifican con la sintaxis `{N}`, donde `N` es un entero. Debes especificar al menos un `replaceValue` y una `cadena`. No existe un máximo para el número de variables (`replaceValueN`) que puedes usar. Escapar llaves usando llaves dobles.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
Devuelve 'Hello Mona the Octocat'
|
||||
|
||||
`format('Hello {0} {1} {2}', 'Mona', 'the', 'Octocat')`
|
||||
|
||||
##### Ejemplo de evasión de llaves
|
||||
|
||||
Devuelve '{Hello Mona the Octocat!}'
|
||||
|
||||
{% raw %}
|
||||
```js
|
||||
format('{{Hello {0} {1} {2}!}}', 'Mona', 'the', 'Octocat')
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
#### join
|
||||
|
||||
`join( array, optionalSeparator )`
|
||||
|
||||
El valor para `array` puede ser una matriz o una cadena. Todos los valores en `array` se concatenan en una cadena. Si proporcionas `optionalSeparator`, se inserta entre los valores concatenados. De lo contrario, se usa el separador predeterminado `,`. Fusiona valores en una cadena.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
`join(github.event.issue.labels.*.name, ', ')` puede devolver 'bug, help wanted'
|
||||
|
||||
#### toJson
|
||||
|
||||
`toJSON(value)`
|
||||
|
||||
Devuelve una representación JSON con formato mejorado de `valor`. Puedes usar esta función para depurar la información suministrada en contextos.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
`toJSON(job)` puede devolver `{ "status": "Success" }`
|
||||
|
||||
#### fromJson
|
||||
|
||||
`fromJSON(value)`
|
||||
|
||||
Devuelve un objeto de JSON para `value`. Puedes utilizar esta función para proporcionar un objeto de JSON como una expresión evaluada.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
Este flujo de trabajo configura una matriz de JSON en un job, y lo pasa al siguiente job utilizando un resultado y `fromJSON`.
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
name: build
|
||||
on: push
|
||||
jobs:
|
||||
job1:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- id: set-matrix
|
||||
run: echo "::set-output name=matrix::{\"include\":[{\"project\":\"foo\",\"config\":\"Debug\"},{\"project\":\"bar\",\"config\":\"Release\"}]}"
|
||||
job2:
|
||||
needs: job1
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix: ${{fromJson(needs.job1.outputs.matrix)}}
|
||||
steps:
|
||||
- run: build
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
#### hashFiles
|
||||
|
||||
`hashFiles(path)`
|
||||
|
||||
Arroja un solo hash para el conjunto de archivos que coincide con el patrón de `path`. Puedes proporcionar un patrón de `path` o `path` múltiples se parados por comas. El `path` está relacionado con el directorio `GITHUB_WORKSPACE` y solo puede incluir archivos dentro del directorio `GITHUB_WORKSPACE`. Esta función calcula un hash SHA-256 individual para cada archivo coincidente, y luego usa esos hashes para calcular un hash SHA-256 final para el conjunto de archivos. Para más información sobre SHA-256, consulta "[SHA-2](https://en.wikipedia.org/wiki/SHA-2)".
|
||||
|
||||
Puedes usar caracteres de coincidencia de patrones para encontrar nombres de archivos. La coincidencia de patrones no distingue mayúsculas de minúsculas en Windows. Para obtener más información acerca de los caracteres compatibles con los patrones, consulta "[Sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}](/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions/#filter-pattern-cheat-sheet)".
|
||||
|
||||
##### Ejemplo con un solo patrón
|
||||
|
||||
Encuentra cualquier archivo `package-lock.json` en el repositorio.
|
||||
|
||||
`hashFiles('**/package-lock.json')`
|
||||
|
||||
##### Ejemplo con patrones múltiples
|
||||
|
||||
Crea un hash para cualquier archivo de `package-lock.json` y de `Gemfile.lock` en el repositorio.
|
||||
|
||||
`hashFiles('**/package-lock.json', '**/Gemfile.lock')`
|
||||
|
||||
### Funciones de verificación de estado del trabajo
|
||||
|
||||
Puedes usar las siguientes funciones de verificación de estado como expresiones en condicionales `if` (si). Si la expresión `if` no contiene ninguna de las funciones de estado, se obtendrá automáticamente con `success()`. Para obtener información sobre los condicionales `if`, consulta "[Sintaxis de flujo de trabajo para acciones de GitHub](/articles/workflow-syntax-for-github-actions/#jobsjob_idif)".
|
||||
|
||||
#### success
|
||||
|
||||
Arroja `true` cuando no falló ni se canceló ninguno de los pasos anteriores.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
```yaml
|
||||
Pasos:
|
||||
...
|
||||
- name: The job has succeeded
|
||||
if: {% raw %}${{ success() }}{% endraw %}
|
||||
```
|
||||
|
||||
#### always
|
||||
|
||||
Siempre arroja `true`, incluso cuando se cancela. No se ejecutará un trabajo o paso cuando una falla crítica impida que la tarea se ejecute. Por ejemplo, si fallaron las fuentes.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
```yaml
|
||||
if: {% raw %}${{ always() }}{% endraw %}
|
||||
```
|
||||
|
||||
#### cancelled
|
||||
|
||||
Devuelve `true` si se canceló el flujo de trabajo.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
```yaml
|
||||
if: {% raw %}${{ cancelled() }}{% endraw %}
|
||||
```
|
||||
|
||||
#### failure
|
||||
|
||||
Arroja `true` cuando falla cualquiera de los pasos anteriores de un trabajo.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
```yaml
|
||||
Pasos:
|
||||
...
|
||||
- name: The job has failed
|
||||
if: {% raw %}${{ failure() }}{% endraw %}
|
||||
```
|
||||
|
||||
### Filtros de objetos
|
||||
|
||||
Puedes usar la sintaxis `*` para aplicar un filtro y seleccionar los elementos coincidentes en una recopilación.
|
||||
|
||||
Por ejemplo, considera una matriz de objetos llamada `fruits`.
|
||||
|
||||
```json
|
||||
[
|
||||
{ "name": "apple", "quantity": 1 },
|
||||
{ "name": "orange", "quantity": 2 },
|
||||
{ "name": "pear", "quantity": 1 }
|
||||
]
|
||||
```
|
||||
|
||||
El filtro `fruits.*.name` devuelve la matriz `[ "apple", "orange", "pear" ]`
|
||||
@@ -1,645 +0,0 @@
|
||||
---
|
||||
title: Eventos que desencadenan flujos de trabajo
|
||||
intro: 'Puedes configurar tus flujos de trabajo para que se ejecuten cuando ocurre una actividad específica en {% data variables.product.product_name %}, en un horario programado o cuando se produce un evento fuera de {% data variables.product.product_name %}.'
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
miniTocMaxHeadingLevel: 4
|
||||
redirect_from:
|
||||
- /articles/events-that-trigger-workflows
|
||||
- /github/automating-your-workflow-with-github-actions/events-that-trigger-workflows
|
||||
- /actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows
|
||||
versions:
|
||||
free-pro-team: '*'
|
||||
enterprise-server: '>=2.22'
|
||||
github-ae: '*'
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Acerca de los eventos de flujo de trabajo
|
||||
|
||||
Puedes configurar tu flujo de trabajo para que se ejecute cuando se creen eventos de webhook a partir de una actividad en {% data variables.product.product_name %}. Los flujos de trabajo pueden usar más de un evento de webhook para desencadenar la ejecución de un flujo de trabajo. Para obtener más información, consulta la sección "[webhooks](/webhooks)". Para obtener más información sobre la sintaxis `on`, consulta "[Sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#on)".
|
||||
|
||||
Los siguientes pasos se producen para activar una ejecución de flujo de trabajo:
|
||||
|
||||
1. Se produce un evento en tu repositorio, y el webhook del evento resultante tiene una confirmación de SHA y una referencia de Git asociadas.
|
||||
1. El directorio `.github/workflows` en tu repositorio se busca para los archivos de flujo de trabajo en la confirmación SHA o la referencia de Git asociadas. Los archivos de flujo de trabajo deben estar presentes en la confirmación SHA o la referencia de Git que se debe tener en cuenta.
|
||||
|
||||
Por ejemplo, si el evento se produjo en una rama particular del repositorio, los archivos de flujo de trabajo deben estar presentes en el repositorio en esa rama.
|
||||
1. Se inspeccionarán los archivos de flujo de trabajo para esa confirmación de SHA y referencia de Git, y se activará una nueva ejecución de flujo de trabajo para cualquier flujo de trabajo que tenga valores `on:` que coincidan con el evento desencadenante.
|
||||
|
||||
El flujo de trabajo se ejecuta en el código de tu repositorio en la misma confirmación SHA y la referencia de Git que desencadenó el evento. Cuando se ejecuta un flujo de trabajo, {% data variables.product.product_name %} establece las variables de entorno `GITHUB_SHA` (confirmar SHA) y `GITHUB_REF` (referencia de Git) en el entorno del ejecutor. Para obtener más información, consulta "[Usar variables de entorno](/actions/automating-your-workflow-with-github-actions/using-environment-variables)".
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** No puedes activar nuevas ejecuciones de flujo de trabajo usando el `GITHUB_TOKEN`. Para obtener más información, consulta "[Activar nuevos flujos de trabajo mediante un token de acceso personal](#triggering-new-workflows-using-a-personal-access-token)".
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% data reusables.github-actions.actions-on-examples %}
|
||||
|
||||
### Eventos de webhook
|
||||
|
||||
Puedes configurar tu flujo de trabajo para que se ejecute cuando se crean eventos de webhook en GitHub. Algunos eventos tienen más de un tipo de actividad que activa el evento. Si más de un tipo de actividad activa el evento, puedes especificar qué tipos de actividad activarán el flujo de trabajo para que se ejecute.
|
||||
|
||||
#### `check_run`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento que se produzca el evento `check_run`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información acerca de la API de REST, consulta la sección "[Ejecuciones de verificación](/v3/checks/runs/)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| -------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| [`check_run`](/webhooks/event-payloads/#check_run) | - `created`<br/>- `rerequested`<br/>- `completed`<br/>- `requested_action` | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando una comprobación de ejecución ha sido `resolicitada` o `requested_action`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
check_run:
|
||||
types: [rerequested, requested_action]
|
||||
```
|
||||
|
||||
#### `check_suite`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento `check_suite`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información acerca de la API de REST, consulta la sección de "[conjuntos de verificaciones](/v3/checks/suites/)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** Para evitar flujos de trabajo recurrentes, este evento no activa flujos de trabajo si la comprobación de suite fue creada por {% data variables.product.prodname_actions %}.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ------------------------------------------------------ | -------------------------------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| [`check_suite`](/webhooks/event-payloads/#check_suite) | - `completed`<br/>- `requested`<br/>- `rerequested`<br/> | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando una comprobación de ejecución ha sido `resolicitada` o `completada`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
check_suite:
|
||||
types: [rerequested, completed]
|
||||
```
|
||||
|
||||
#### `create (crear)`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que alguien cree una rama o etiqueta, que activa el evento `crear`. Para obtener más información sobre la API de REST, consulta la sección "[Crear una referencia](/v3/git/refs/#create-a-reference)".
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ---------------------------------------------------- | ------------------ | ------------------------------------------------ | ---------------------- |
|
||||
| [`create (crear)`](/webhooks/event-payloads/#create) | n/a | Última confirmación en la rama o etiqueta creada | Rama o etiqueta creada |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento `crear`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
create
|
||||
```
|
||||
|
||||
#### `eliminar`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que alguien cree una rama o etiqueta, que activa el evento `eliminar`. Para obtener más información sobre la API de REST, consulta la sección "[Borrar una referencia](/v3/git/refs/#delete-a-reference)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ---------------------------------------------- | ------------------ | ------------------------------------------ | ---------------- |
|
||||
| [`eliminar`](/webhooks/event-payloads/#delete) | n/a | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento `eliminar`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
delete
|
||||
```
|
||||
|
||||
#### `deployment`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que alguien cree una implementación, que activa el evento `implementación`. Las implementaciones creadas con SHA de confirmación pueden no tener una referencia de Git. Para obtener más información acerca de la API de REST, consulta la sección "[Despliegues](/v3/repos/deployments/)".
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ---------------------------------------------------- | ------------------ | ------------------------------ | ------------------------------------------------------------------ |
|
||||
| [`deployment`](/webhooks/event-payloads/#deployment) | n/a | Confirmación de implementación | Rama o etiqueta que se debe implementar (vacío si está confirmada) |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento `implementación`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
deployment
|
||||
```
|
||||
|
||||
#### `deployment_status`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que un tercero proporcione un estado de implementación, que activa un evento de `deployment_status`. Las implementaciones creadas con SHA de confirmación pueden no tener una referencia de Git. Para obtener más información acerca de la API de REST, consulta la sección "[Crear un estado de despliegue](/v3/repos/deployments/#create-a-deployment-status)".
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ------------------------------------------------------------------ | ------------------ | ------------------------------ | ------------------------------------------------------------------ |
|
||||
| [`deployment_status`](/webhooks/event-payloads/#deployment_status) | n/a | Confirmación de implementación | Rama o etiqueta que se debe implementar (vacío si está confirmada) |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento `implementación`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
deployment_status
|
||||
```
|
||||
|
||||
#### `bifurcación`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que alguien bifurque un repositorio, lo que activa el evento de `bifurcación`. Para obtener más información sobre la API de REST, consulta la sección "[Crear una bifurcación](/v3/repos/forks/#create-a-fork)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ----------------------------------------------- | ------------------ | ------------------------------------------ | ---------------- |
|
||||
| [`bifurcación`](/webhooks/event-payloads/#fork) | n/a | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento de `bifurcación`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
fork
|
||||
```
|
||||
|
||||
#### `gollum`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que alguien cree o actualice una página Wiki, que activa el evento `gollum`.
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| -------------------------------------------- | ------------------ | ------------------------------------------ | ---------------- |
|
||||
| [`gollum`](/webhooks/event-payloads/#gollum) | n/a | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento `gollum`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
gollum
|
||||
```
|
||||
|
||||
#### `comentario_propuesta`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento que se produzca el evento `issue_comment`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información acerca de la API de REST, consulta la sección "[comentarios de un informe de problemas](/v3/issues/comments/)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| [`comentario_propuesta`](/v3/activity/event_types/#issue_comment) | - `created`<br/>- `edited`<br/>- `deleted`<br/> | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando un miembro ha sido `creado` o `eliminado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created, deleted]
|
||||
```
|
||||
|
||||
#### `propuestas`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento que se produzca el evento de `propuestas`. {% data reusables.developer-site.multiple_activity_types %} Para obtener información acerca de la API de REST, consulta la sección "[informes de problemas](/v3/issues)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| [`propuestas`](/webhooks/event-payloads/#issues) | - `opened`<br/>- `edited`<br/>- `deleted`<br/>- `transferred`<br/>- `pinned`<br/>- `unpinned`<br/>- `closed`<br/>- `reopened`<br/>- `assigned`<br/>- `unassigned`<br/>- `labeled`<br/>- `unlabeled`<br/>- `locked`<br/>- `unlocked`<br/>- `milestoned`<br/> - `demilestoned` | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando una propuesta ha sido `abierta`, `editada`, o `marcada como hito`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
issues:
|
||||
types: [opened, edited, milestoned]
|
||||
```
|
||||
|
||||
#### `etiqueta`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento de `etiquetado`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información sobre la API de REST, consulta la sección "[Etiquetas](/v3/issues/labels/)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| --------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| [`etiqueta`](/webhooks/event-payloads/#label) | - `created`<br/>- `edited`<br/>- `deleted`<br/> | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando un miembro ha sido `creado` o `eliminado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
label:
|
||||
types: [created, deleted]
|
||||
```
|
||||
|
||||
#### `hito`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento que se produzca el evento de `milestone`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información sobre la API de REST, consulta la sección "[Hitos](/v3/issues/milestones/)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| [`hito`](/webhooks/event-payloads/#milestone) | - `created`<br/>- `closed`<br/>- `opened`<br/>- `edited`<br/>- `deleted`<br/> | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando un hito ha sido `abierto` o `eliminado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
milestone:
|
||||
types: [opened, deleted]
|
||||
```
|
||||
|
||||
#### `page_build`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que alguien suba a una {% data variables.product.product_name %} Rama habilitada para páginas, que activa el evento `page_build`. Para obtener más información acerca de la API de REST, consulta la sección "[Páginas](/v3/repos/pages/)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ---------------------------------------------------- | ------------------ | ------------------------------------------ | ------------ |
|
||||
| [`page_build`](/webhooks/event-payloads/#page_build) | n/a | Última confirmación en la rama por defecto | n/a |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento `page_build`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
page_build
|
||||
```
|
||||
|
||||
#### `project`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento de `project`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información sobre la API de REST, consulta la sección "[Proyectos](/v3/projects/)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| [`project`](/webhooks/event-payloads/#project) | - `created`<br/>- `updated`<br/>- `closed`<br/>- `reopened`<br/>- `edited`<br/>- `deleted`<br/> | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando un proyecto ha sido `creado` o `eliminado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
project:
|
||||
types: [created, deleted]
|
||||
```
|
||||
|
||||
#### `project_card`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento `project_card`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información sobre la API de REST, consulta la sección "[Tarjetas de proyecto](/v3/projects/cards)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| [`project_card`](/webhooks/event-payloads/#project_card) | - `created`<br/>- `moved`<br/>- `converted` to an issue<br/>- `edited`<br/>- `deleted` | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando un proyecto ha sido `abierto` o `eliminado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
project_card:
|
||||
types: [opened, deleted]
|
||||
```
|
||||
|
||||
#### `project_column`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento `project_column`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información sobre la API de REST, consulta la sección "[Columnas de proyecto](/v3/projects/columns)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ------------------------------------------------------------ | --------------------------------------------------------------------------- | ------------------------------------------ | ---------------- |
|
||||
| [`project_column`](/webhooks/event-payloads/#project_column) | - `created`<br/>- `updated`<br/>- `moved`<br/>- `deleted` | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando una columna de proyecto ha sido `creado` o `eliminado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
project_column:
|
||||
types: [created, deleted]
|
||||
```
|
||||
|
||||
#### `public`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que alguien haga público un repositorio privado, que activa el evento `público`. Para obtener más información acerca de la API de REST, consulta la sección "[Editar repositorios](/v3/repos/#edit)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| -------------------------------------------- | ------------------ | ------------------------------------------ | ---------------- |
|
||||
| [`public`](/webhooks/event-payloads/#public) | n/a | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento `público`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
public
|
||||
```
|
||||
|
||||
#### `solicitud_extracción`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento de `pull_request`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información sobre la API de REST, consulta la sección "[Solicitudes de extraccións](/v3/pulls)".
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** Por defecto, un flujo de trabajo solo se ejecuta cuando un tipo de actividad `pull_request` está `abierto`, `sincronizado`, o `reabierto`. Para activar los flujos de trabajo para más tipos de actividades, usa la palabra clave `tipos`.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------ |
|
||||
| [`solicitud_extracción`](/webhooks/event-payloads/#pull_request) | - `assigned`<br/>- `unassigned`<br/>- `labeled`<br/>- `unlabeled`<br/>- `opened`<br/>- `edited`<br/>- `closed`<br/>- `reopened`<br/>- `synchronize`<br/>- `ready_for_review`<br/>- `locked`<br/>- `unlocked` <br/>- `review_requested` <br/>- `review_request_removed` | Última confirmación de fusión en la rama `GITHUB_REF` | Rama de fusión de PR `refs/pull/:prNumber/merge` |
|
||||
|
||||
Puedes extender o limitar los tipos de actividad por defecto usando la palabra clave `types`. Para obtener más información, consulta "[Sintaxis del flujo de trabajo para {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#onevent_nametypes)".
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando una solicitud de extracción ha sido `assigned` (asignada), `opened`, `syncronize` o `reopened`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
pull_request:
|
||||
types: [assigned, opened, synchronize, reopened]
|
||||
```
|
||||
|
||||
{% data reusables.developer-site.pull_request_forked_repos_link %}
|
||||
|
||||
#### `revisión_solicitud de extracción`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento `pull_request_review`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información sobre la API de REST, consulta la sección "[Revisiones de solicitudes de extracción](/v3/pulls/reviews)".
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ----------------------------------------------------------------------------------- | ---------------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------ |
|
||||
| [`revisión_solicitud de extracción`](/webhooks/event-payloads/#pull_request_review) | - `submitted`<br/>- `edited`<br/>- `dismissed` | Última confirmación de fusión en la rama `GITHUB_REF` | Rama de fusión de PR `refs/pull/:prNumber/merge` |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando una revisión de solicitud de extracción ha sido `editada` o `descartada`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
pull_request_review:
|
||||
types: [edited, dismissed]
|
||||
```
|
||||
|
||||
{% data reusables.developer-site.pull_request_forked_repos_link %}
|
||||
|
||||
#### `comentarios _revisiones_solicitudes de extracción`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se modifique una diferencia unificada de solicitud de extracción, que activa el evento `pull_request_review_comment`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información sobre la API de REST, consulta la sección [Revisar comentarios](/v3/pulls/comments).
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------ | ----------------------------------------------------- | ------------------------------------------------ |
|
||||
| [`comentarios _revisiones_solicitudes de extracción`](/webhooks/event-payloads/#pull_request_review_comment) | - `created`<br/>- `edited`<br/>- `deleted` | Última confirmación de fusión en la rama `GITHUB_REF` | Rama de fusión de PR `refs/pull/:prNumber/merge` |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando un comentario de revisión de solicitud de extracción ha sido `creado` o `eliminado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
pull_request_review_comment:
|
||||
types: [created, deleted]
|
||||
```
|
||||
|
||||
{% data reusables.developer-site.pull_request_forked_repos_link %}
|
||||
|
||||
#### `pull_request_target`
|
||||
|
||||
Este evento es similar al de `pull_request`, con la diferencia de que se ejecuta en el contexto del repositorio base de la solicitud de extracción en vez de en la confirmación de fusión. Esto significa que puedes poner tus secretos como disponibles de forma más seguro en los flujos de trabajo que active la solicitud de extracción, ya que solo se ejecutan los flujos de trabajo que se definan en la confirmación del repositorio base. Por ejemplo, este evento te permite crear flujos de trabajo que etiquetan y comentan en las solicitudes de extracción con base en el contenido de la carga útil del evento.
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | --------------------------------------- |
|
||||
| [`solicitud_extracción`](/webhooks/event-payloads/#pull_request) | - `assigned`<br/>- `unassigned`<br/>- `labeled`<br/>- `unlabeled`<br/>- `opened`<br/>- `edited`<br/>- `closed`<br/>- `reopened`<br/>- `synchronize`<br/>- `ready_for_review`<br/>- `locked`<br/>- `unlocked` <br/>- `review_requested` <br/>- `review_request_removed` | Última confirmación en la rama base de la solicitud de extracción | Rama base de la solicitud de extracción |
|
||||
|
||||
Predeterminadamente, un flujo de trabajo se ejecuta únicamente cuando el tipo de actividad de un `pull_request_target` se encuentra como `opened`, `synchronize`, o `reopened`. Para activar los flujos de trabajo para más tipos de actividades, usa la palabra clave `tipos`. Para obtener más información, consulta "[Sintaxis del flujo de trabajo para {% data variables.product.prodname_actions %}](/articles/workflow-syntax-for-github-actions#onevent_nametypes)".
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando una solicitud de extracción ha sido `assigned` (asignada), `opened`, `syncronize` o `reopened`.
|
||||
|
||||
```yaml
|
||||
on: pull_request_target
|
||||
types: [assigned, opened, synchronize, reopened]
|
||||
```
|
||||
|
||||
#### `subir`
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** La carga disponible del webhook para las Acciones de GitHub no incluye los atributos `añadidos`, `eliminados`, y `modificados` en el objeto de `confirmación`. Puedes recuperar el objeto de confirmación completo usando la API REST. Para obtener más información, consulta la sección "[Obtener una sola confirmación](/v3/repos/commits/#get-a-single-commit)".
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Ejecuta tu flujo de trabajo cuando alguien sube una rama a tu repositorio, lo que activa el evento `push`.
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ----------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------- | --------------- |
|
||||
| [`subir`](/webhooks/event-payloads/#push) | n/a | Confirmación subida, a menos que se elimine una rama (cuando se trata de la rama por defecto) | Ref actualizado |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento `push`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
push
|
||||
```
|
||||
|
||||
#### `registry_package`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que un paquete es `publish` (publicado) o `updated` (actualizado). Para obtener más información, consulta "[Administrar paquetes con {% data variables.product.prodname_registry %}](/github/managing-packages-with-github-packages)".
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ------------------------------------------------------- | ----------------------------------- | ---------------------------------- | ------------------------------------- |
|
||||
| [`registry_package`](/webhooks/event-payloads/#package) | - `published`<br/>- `updated` | Confirmación del paquete publicado | Rama o etiqueta del paquete publicado |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando un paquete ha sido `publicado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
registry_package:
|
||||
types: [published]
|
||||
```
|
||||
|
||||
#### `lanzamiento`
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** El evento `release` no se activará para los lanzamientos en borrador.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento de `lanzamiento`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información sobre la API de REST, consulta la sección "[Lanzamientos](/v3/repos/releases/)".
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------- |
|
||||
| [`lanzamiento`](/webhooks/event-payloads/#release) | - `published`{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.18" %} <br/>- `unpublished` <br/>- `created` <br/>- `edited` <br/>- `deleted` <br/>- `prereleased`<br/> - `released`{% endif %} | Última confirmación en el lanzamiento etiquetado | Etiqueta de lanzamiento |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando un lanzamiento ha sido `publicado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
```
|
||||
|
||||
#### `estado`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que alguien cree una rama o etiqueta, que activa el evento `crear`. Para obtener más información acerca de la API de REST, consulta la sección "[Estados](/v3/repos/statuses/)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| -------------------------------------------- | ------------------ | ------------------------------------------ | ------------ |
|
||||
| [`estado`](/webhooks/event-payloads/#status) | n/a | Última confirmación en la rama por defecto | n/a |
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando se produzca el evento de `estado`.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
status
|
||||
```
|
||||
|
||||
#### `ver`
|
||||
|
||||
Ejecuta tu flujo de trabajo en cualquier momento en que se produzca el evento `ver`. {% data reusables.developer-site.multiple_activity_types %} Para obtener más información acerca de la API de REST, consulta la sección "[Marcar con una estrella](/v3/activity/starring/)".
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ---------------------------------------- | ------------------ | ------------------------------------------ | ---------------- |
|
||||
| [`ver`](/webhooks/event-payloads/#watch) | - `started` | Última confirmación en la rama por defecto | Rama por defecto |
|
||||
|
||||
{% data reusables.developer-site.limit_workflow_to_activity_types %}
|
||||
|
||||
Por ejemplo, puedes ejecutar un flujo de trabajo cuando alguien coloca una estrella en un repositorio, que es el tipo de actividad `comenzado` que activa el evento Ver.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
watch:
|
||||
types: [started]
|
||||
```
|
||||
|
||||
#### `workflow_run`
|
||||
|
||||
{% data reusables.webhooks.workflow_run_desc %}
|
||||
|
||||
Si necesitas filtrar las ramas de este evento, puedes utilizar `branches` o `branches-ignore`.
|
||||
|
||||
En este ejemplo, se configuró la ejecución de un flujo de trabajo después de que se completen las "Pruebas de ejecución" por separado para el mismo.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["Run Tests"]
|
||||
branches: [main]
|
||||
types:
|
||||
- completed
|
||||
- requested
|
||||
```
|
||||
|
||||
### Eventos programados
|
||||
|
||||
El evento `schedule` te permite activar un flujo de trabajo en una hora programada.
|
||||
|
||||
#### `programación`
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ------------------------ | ------------------ | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| n/a | n/a | Última confirmación en la rama por defecto | Rama por defecto | Cuando se establece la ejecución del flujo de trabajo programado. Un flujo de trabajo programado usa[sintaxis cron POSIX](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07). Para obtener más información, consulta "[Desencadenar un flujo de trabajo con eventos](/articles/configuring-a-workflow/#triggering-a-workflow-with-events)". |
|
||||
|
||||
{% data reusables.repositories.actions-scheduled-workflow-example %}
|
||||
|
||||
La sintaxis de cron tiene cinco campos separados por un espacio, y cada campo representa una unidad de tiempo.
|
||||
|
||||
```
|
||||
┌───────────── minuto (0 - 59)
|
||||
│ ┌───────────── hora (0 - 23)
|
||||
│ │ ┌───────────── día del mes (1 - 31)
|
||||
│ │ │ ┌───────────── mes (1 - 12 o EN-DIC)
|
||||
│ │ │ │ ┌───────────── día de la semana (0 - 6 o DOM-SÁB)
|
||||
│ │ │ │ │
|
||||
│ │ │ │ │
|
||||
│ │ │ │ │
|
||||
* * * * *
|
||||
```
|
||||
|
||||
Puedes usar estos operadores en cualquiera de los cinco campos:
|
||||
|
||||
| Operador | Descripción | Ejemplo |
|
||||
| -------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
||||
| * | Cualquier valor | `* * * * *` se ejecuta todos los días a cada minuto. |
|
||||
| , | Separador de la lista de valores | `2,10 4,5 * * *` se ejecuta en el minuto 2 y 10 de la cuarta y quinta hora de cada día. |
|
||||
| - | Rango de valores | `0 4-6 * * *` se ejecuta en el minuto 0 de la cuarta, quinta y sexta hora. |
|
||||
| / | Valores del paso | `20/15 * * * *` se ejecuta cada 15 minutos a partir del minuto 20 hasta el minuto 59 (minutos 20, 35 y 50). |
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** {% data variables.product.prodname_actions %} no es compatible con la sintaxis que no es estándar `@yearly`, `@monthly`, `@weekly`, `@daily`, `@hourly` y `@reboot`.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Puedes usar [contrab guru](https://crontab.guru/) para generar tu sintaxis de cron y confirmar a qué hora se ejecutará. Para que puedas comenzar, hay también una lista de [ejemplos de crontab guru](https://crontab.guru/examples.html).
|
||||
|
||||
### Eventos manuales
|
||||
|
||||
Puedes activar ejecuciones de flujo de trabajo manualmente. Para activar flujos de trabajo específicos en un repositorio, utiliza el evento `workflow_dispatch`. Para activar más de un flujo de trabajo en un repositorio y crear eventos personalizados y tipos de eventos, utiliza el evento `repository_dispatch`.
|
||||
|
||||
#### `workflow_dispatch`
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| ---------------------------------------------------------------- | ------------------ | ---------------------------------------------- | ------------------------- |
|
||||
| [workflow_dispatch](/webhooks/event-payloads/#workflow_dispatch) | n/a | Última confirmacion en la rama de `GITHUB_REF` | Rama que recibió el envío |
|
||||
|
||||
Puedes activar una ejecución de flujo de trabajo manualmente si utilizas la API de {% data variables.product.product_name %} y desde {% data variables.product.product_name %}. Para activar el evento de webhook personalizado de `workflow_dispatch` utilizando la API de REST, debes enviar una solicitud de `POST` a la terminal de la API de {% data variables.product.prodname_dotcom %} y proporcionar la `ref` y cualquier `input` relacionado. Para obtener más información, consulta terminal "[Crear un evento de envío de flujo de trabajo](/rest/reference/actions/#create-a-workflow-dispatch-event)" de la API de REST.
|
||||
|
||||
Cuando activas el evento en {% data variables.product.prodname_dotcom %}, puedes proporcionar la `ref` y cualquier `input` directamente en {% data variables.product.prodname_dotcom %}. Para obtener más información, consulta "[Configurar un flujo de trabajo](/actions/configuring-and-managing-workflows/configuring-a-workflow#manually-running-a-workflow)."
|
||||
|
||||
#### `repository_dispatch`
|
||||
|
||||
| Carga del evento Webhook | Tipos de actividad | `GITHUB_SHA` | `GITHUB_REF` |
|
||||
| -------------------------------------------------------------------- | ------------------ | ---------------------------------------------- | ------------------------- |
|
||||
| [repository_dispatch](/webhooks/event-payloads/#repository_dispatch) | n/a | Última confirmacion en la rama de `GITHUB_REF` | Rama que recibió el envío |
|
||||
|
||||
{% data reusables.github-actions.branch-requirement %}
|
||||
|
||||
Puedes utilizar la API de {% data variables.product.product_name %} para desencadenar un evento de webhook llamado [`repository_dispatch`](/webhooks/event-payloads/#repository_dispatch) cuando quieras desencadenar un flujo de trabajo para una actividad que sucede fuera de {% data variables.product.prodname_dotcom %}. Para obtener más información, consulta la sección "[Crear un evento de envío de repositorio](/v3/repos/#create-a-repository-dispatch-event)".
|
||||
|
||||
Para desencadenar el evento de webhook `repository_dispatch` personalizado, debes enviar una solicitud de `POST` a un punto final de una API de {% data variables.product.product_name %} y dar un nombre de `event_type` para describir el tipo de actividad. Para desencadenar la ejecución de un flujo de trabajo, también debes configurar tu flujo de trabajo para usar el evento `repository_dispatch`.
|
||||
|
||||
##### Ejemplo
|
||||
|
||||
Predeterminadamente, todos los `event_types` desencadenan la ejecución de un flujo de trabajo. Puedes limitar tu flujo de trabajo para que se ejecute cuando un valor específico de `event_type` se envíe en la carga útil del webhook de `repository_dispatch`. Tú defines los tipos de evento enviados en la carga útil de `repository_dispatch` cuando creas el repositorio.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
repository_dispatch:
|
||||
types: [opened, deleted]
|
||||
```
|
||||
|
||||
### Activar nuevos flujos de trabajo mediante un token de acceso personal
|
||||
|
||||
{% data reusables.github-actions.actions-do-not-trigger-workflows %} Para obtener más información, consulta "[Autenticar con el GITHUB_TOKEN](/actions/configuring-and-managing-workflows/authenticating-with-the-github_token)".
|
||||
|
||||
Si deseas activar un flujo de trabajo desde una ejecución de flujo de trabajo, puedes desencadenar el evento mediante un token de acceso personal. Necesitaras crear un token de acceso personal y almacenarlo como un secreto. Para minimizar tus costos de uso de {% data variables.product.prodname_actions %}, asegúrate de no crear ejecuciones de flujo de trabajo recurrentes o involuntarias. Para obtener más información, consulta "[Crear y almacenar secretos cifrados](/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets)".
|
||||
@@ -1,22 +0,0 @@
|
||||
---
|
||||
title: Referencia
|
||||
intro: 'Documentación de referencia para la construcción de acciones, la creación de flujos de trabajo y otras herramientas e información sobre las {% data variables.product.prodname_actions %}.'
|
||||
versions:
|
||||
free-pro-team: '*'
|
||||
enterprise-server: '>=2.22'
|
||||
github-ae: '*'
|
||||
redirect_from:
|
||||
- /actions/configuring-and-managing-workflows/using-variables-and-secrets-in-a-workflow
|
||||
children:
|
||||
- /workflow-syntax-for-github-actions
|
||||
- /context-and-expression-syntax-for-github-actions
|
||||
- /workflow-commands-for-github-actions
|
||||
- /events-that-trigger-workflows
|
||||
- /authentication-in-a-workflow
|
||||
- /encrypted-secrets
|
||||
- /environments
|
||||
- /environment-variables
|
||||
- /usage-limits-billing-and-administration
|
||||
---
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
@@ -1,216 +0,0 @@
|
||||
---
|
||||
title: Comandos de flujo de trabajo para Acciones de GitHub
|
||||
shortTitle: Comandos de flujo de trabajo
|
||||
intro: Puedes usar comandos de flujo de trabajo cuando ejecutas comandos de Shell en un flujo de trabajo o en el código de una acción.
|
||||
product: '{% data reusables.gated-features.actions %}'
|
||||
redirect_from:
|
||||
- /articles/development-tools-for-github-actions
|
||||
- /github/automating-your-workflow-with-github-actions/development-tools-for-github-actions
|
||||
- /actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions
|
||||
- /actions/reference/development-tools-for-github-actions
|
||||
- /actions/reference/logging-commands-for-github-actions
|
||||
versions:
|
||||
free-pro-team: '*'
|
||||
enterprise-server: '>=2.22'
|
||||
github-ae: '*'
|
||||
---
|
||||
|
||||
{% data reusables.actions.enterprise-beta %}
|
||||
{% data reusables.actions.enterprise-github-hosted-runners %}
|
||||
|
||||
### Acerca de los comandos de flujo
|
||||
|
||||
Las acciones pueden comunicarse con la máquina del ejecutor para establecer variables de entorno, valores de salida utilizados por otras acciones, agregar mensajes de depuración a los registros de salida y otras tareas.
|
||||
|
||||
Los comandos de flujo de trabajo usan el comando `echo` en un formato específico.
|
||||
|
||||
``` bash
|
||||
echo ":: Workflow-Command Parameter1 ={data}, parameter2 ={data}::{command value}"
|
||||
```
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** los nombres de comandos y parámetros de flujo de trabajo no distinguen mayúsculas de minúsculas.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia:** si estás usando el símbolo del sistema, omite los caracteres de comillas dobles (`"`) cuando uses comandos de flujo de trabajo.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
### Utilizar comandos de flujo de trabajo para acceder a las funciones de toolkit
|
||||
|
||||
El [actions/toolkit](https://github.com/actions/toolkit) incluye varias funciones que se pueden ejecutar como comandos de flujo de trabajo. Utiliza la sintaxis `::` para ejecutar los comandos de flujo de trabajo dentro de tu archivo YAML; estos comandos se envían entonces a través de `stdout`. Por ejemplo, en vez de utilizar el código para configurar una variable de ambiente, como se muestra a continuación:
|
||||
|
||||
```javascript
|
||||
core.exportVariable('SELECTED_COLOR', 'green');
|
||||
```
|
||||
|
||||
Puedes utilizar el comando `set-env` en tu flujo de trabajo para configurar el mismo valor:
|
||||
|
||||
``` yaml
|
||||
- name: Set selected color
|
||||
run: echo '::set-env name=SELECTED_COLOR::green'
|
||||
- name: Get color
|
||||
run: echo 'The selected color is' $SELECTED_COLOR
|
||||
```
|
||||
|
||||
La siguiente tabla muestra qué funciones del toolkit se encuentran disponibles dentro de un flujo de trabajo:
|
||||
|
||||
| Funcion del Toolkit | Comando equivalente del flujo de trabajo |
|
||||
| --------------------- | ----------------------------------------------------------- |
|
||||
| `core.addPath` | `add-path` |
|
||||
| `core.debug` | `debug` |
|
||||
| `core.error` | `error` |
|
||||
| `core.endGroup` | `endgroup` |
|
||||
| `core.exportVariable` | `set-env` |
|
||||
| `core.getInput` | Accesible utilizando la variable de ambiente `INPUT_{NAME}` |
|
||||
| `core.getState` | Accesible utilizando la variable de ambiente`STATE_{NAME}` |
|
||||
| `core.isDebug` | Accesible utilizando la variable de ambiente `RUNNER_DEBUG` |
|
||||
| `core.saveState` | `save-state` |
|
||||
| `core.setFailed` | Utilizada como un atajo para `::error` y `exit 1` |
|
||||
| `core.setOutput` | `set-output` |
|
||||
| `core.setSecret` | `add-mask` |
|
||||
| `core.startGroup` | `grupo` |
|
||||
| `core.warning` | `warning file` |
|
||||
|
||||
### Configurar una variable de ambiente
|
||||
|
||||
`::set-env name={name}::{value}`
|
||||
|
||||
Crea o actualiza una variable de entorno para todas las acciones que se ejecutan a continuación en un puesto. La acción que crea o actualiza la variable de entorno no tiene acceso al nuevo valor, pero todas las acciones subsiguientes en un puesto tendrán acceso. Las variables de entorno distinguen mayúsculas de minúsculas y puedes incluir puntuación.
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
``` bash
|
||||
echo "::set-env name=action_state::yellow"
|
||||
```
|
||||
|
||||
### Configurar un parámetro de salida
|
||||
|
||||
`::set-output name={name}::{value}`
|
||||
|
||||
Establece un parámetro de salida de la acción.
|
||||
|
||||
Opcionalmente, también puedes declarar parámetros de salida en el archivo de metadatos de una acción. Para obtener más información, consulta "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/articles/metadata-syntax-for-github-actions#outputs)".
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
``` bash
|
||||
echo "::set-output name=action_fruit::strawberry"
|
||||
```
|
||||
|
||||
### Agregar una ruta de sistema
|
||||
|
||||
`::add-path::{path}`
|
||||
|
||||
Anexa un directorio a la variable de `RUTA` del sistema para todas las acciones subsiguientes en el puesto actual. La acción que se ejecuta actualmente no puede acceder a la nueva variable de ruta.
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
``` bash
|
||||
echo "::add-path::/path/to/dir"
|
||||
```
|
||||
|
||||
### Agregar un mensaje de depuración
|
||||
|
||||
`::debug::{message}`
|
||||
|
||||
Imprime un mensaje de depuración para el registro. Debes crear un archivo `ACTIONS_STEP_DEBUG` designado secretamente con el valor `true` para ver los mensajes de depuración establecidos por este comando en el registro. Para obtener más información, consulta la sección "[Administrar la ejecución de un flujo de trabajo](/actions/configuring-and-managing-workflows/managing-a-workflow-run#enabling-debug-logging)".
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
``` bash
|
||||
echo "::debug::Set the Octocat variable"
|
||||
```
|
||||
|
||||
### Configurar un mensaje de advertencia
|
||||
|
||||
`::warning file={name},line={line},col={col}::{message}`
|
||||
|
||||
Crea un mensaje de advertencia e imprime el mensaje en el registro. Opcionalmente, puedes brindar un nombre de archivo (`file`), número de línea (`line`), y columna (`col`) donde se produjo la advertencia.
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
``` bash
|
||||
echo "::warning file=app.js,line=1,col=5::Missing semicolon"
|
||||
```
|
||||
|
||||
### Configurar un mensaje de error
|
||||
|
||||
`::error file={name},line={line},col={col}::{message}`
|
||||
|
||||
Crea un mensaje de error e imprime el mensaje en el registro Opcionalmente, puedes brindar un nombre de archivo (`file`), número de línea (`line`), y columna (`col`) donde se produjo la advertencia.
|
||||
|
||||
#### Ejemplo
|
||||
|
||||
``` bash
|
||||
echo "::error file=app.js,line=10,col=15::Something went wrong"
|
||||
```
|
||||
|
||||
### Enmascarar un valor en el registro
|
||||
|
||||
`::add-mask::{value}`
|
||||
|
||||
El enmascaramiento de un valor impide que una cadena o variable se imprima en el registro. Cada palabra enmascarada separada por un espacio en blanco se reemplaza con el carácter `*`. Puedes usar una variable de entorno o cadena para el `valor` de la máscara.
|
||||
|
||||
#### Ejemplo de enmascaramiento de una cadena
|
||||
|
||||
Cuando imprimas `"Mona The Octocat"` en el registro, verás `"***"`.
|
||||
|
||||
```bash
|
||||
echo "::add-mask::Mona The Octocat"
|
||||
```
|
||||
|
||||
#### Ejemplo de enmascaramiento de una variable de entorno
|
||||
|
||||
Cuando imprimes la variable `MY_NAME` o el valor `"Mona The Octocat"` en el registro, verás `"***"` en lugar de `"Mona The Octocat"`.
|
||||
|
||||
```bash
|
||||
MY_NAME="Mona The Octocat"
|
||||
echo "::add-mask::$MY_NAME"
|
||||
```
|
||||
|
||||
### Detener e iniciar comandos de flujo de trabajo
|
||||
|
||||
`::stop-commands::{endtoken}`
|
||||
|
||||
Detiene el procesamiento de cualquier comando de flujo de trabajo. Este comando especial te permite registrar cualquier cosa sin ejecutar accidentalmente un comando de flujo de trabajo. Por ejemplo, podrías dejar de registrar para producir un script completo que tenga comentarios.
|
||||
|
||||
#### Ejemplo deteniendo comandos de flujo de trabajo
|
||||
|
||||
``` bash
|
||||
echo "::stop-commands::pause-logging"
|
||||
```
|
||||
|
||||
Para iniciar los comandos de flujo de trabajo, pasa el token que usaste para detener los comandos de flujo de trabajo.
|
||||
|
||||
`::{endtoken}::`
|
||||
|
||||
#### Ejemplo de inicio de comandos de flujo
|
||||
|
||||
``` bash
|
||||
echo "::pause-logging::"
|
||||
```
|
||||
|
||||
### Enviar valores a las acciones pre y post
|
||||
|
||||
Puedes utilizar el comando `save-state` para crear variables de ambiente para compartir con tus acciones `pre:` o `post:` de flujo de trabajo. Por ejemplo, puedes crear un archivo con la acción `pre:`, pasar la ubicación del archivo a la acción `main:`, y después, utilizar la acción `post:` para borrar el archivo. Como alternativa, puedes crear un archivo con la acción `main:`, pasar la ubicación del archivo a la acción `post:`, y también utilizar la acción `post:` para borrar el archivo.
|
||||
|
||||
Si tienes varias acciones `pre:` o `post:`, solo podrás acceder al valor que se guardó en la acción donde se utilizó `save-state`. Para obtener más información sobre la acción `post:`, consulta la sección "[Sintaxis de metadatos para {% data variables.product.prodname_actions %}](/actions/creating-actions/metadata-syntax-for-github-actions#post)".
|
||||
|
||||
El comando `save-state` solo puede ejecutarse dentro de una acción y no está disponible para archivos YAML. El valor guardado se almacena en un valor de ambiente con el prefijo `STATE_`.
|
||||
|
||||
Este ejemplo utiliza JavaScript para ejecutar el comando `save-state`. La variable de ambiente resultante se nombra `STATE_processID` con el valor de `12345`:
|
||||
|
||||
``` javascript
|
||||
console.log('::save-state name=processID::12345')
|
||||
```
|
||||
|
||||
La variable `STATE_processID` se encontrará entonces exclusivamente disponible para el script de limpieza que se ejecuta bajo la acción `main`. Este ejemplo se ejecuta en `main` y utiliza JavaScript para mostrar el valor asignado a la variable de ambiente `STATE_processID`:
|
||||
|
||||
``` javascript
|
||||
console.log("The running PID from the main action is: " + process.env.STATE_processID);
|
||||
```
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,55 +0,0 @@
|
||||
---
|
||||
title: Permitir autenticación integrada para usuarios fuera de tu proveedor de identidad
|
||||
intro: 'Puedes configurar una autenticación integrada para autenticar usuarios que no tienen acceso a tu proveedor de identidad que usa LDAP, SAML o CAS.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/user-management/allowing-built-in-authentication-for-users-outside-your-identity-provider
|
||||
- /enterprise/admin/authentication/allowing-built-in-authentication-for-users-outside-your-identity-provider
|
||||
- /admin/authentication/allowing-built-in-authentication-for-users-outside-your-identity-provider
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Accounts
|
||||
- Authentication
|
||||
- Enterprise
|
||||
- Identity
|
||||
---
|
||||
### Acerca de la autenticación integrada para usuarios fuera de tu proveedor de identidad
|
||||
|
||||
Puedes utilizar la autenticación integrada para usuarios externos cuando no puedes agregar cuentas específicas a tu proveedor de identidad (IdP), como cuentas para contratistas o usuarios de equipos. También puedes usar la autenticación integrada para acceder a una cuenta de reserva si el proveedor de identidad no está disponible.
|
||||
|
||||
Una vez que se configura la autenticación integrada y un usuario autentica exitosamente con SAML o CAS, ya no tendrá la opción de autenticar con un nombre de usuario y una contraseña. Si un usuario autentica exitosamente con LDAP, las credenciales ya no se consideran internas.
|
||||
|
||||
La autenticación integrada para un IdP se desactiva por defecto.
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia:** Si desactivas la autenticación integrada, debes suspender individualmente a todo usuario que ya no debe tener acceso a la instancia. Para obtener más información, consulta [Suspender y anular suspensión de usuarios](/enterprise/{{ currentVersion }}/admin/guides/user-management/suspending-and-unsuspending-users)."
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
### Configurar autenticación integrada para usuarios fuera de tu proveedor de identidad
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.authentication %}
|
||||
4. Selecciona tu proveedor de identidad. 
|
||||
5. Selecciona **Permitir la creación de cuentas con autenticación integrada**. 
|
||||
6. Lee la advertencia, luego haz clic en **Aceptar**.
|
||||
|
||||
{% data reusables.enterprise_user_management.two_factor_auth_header %}
|
||||
{% data reusables.enterprise_user_management.2fa_is_available %}
|
||||
|
||||
### Invitar a usuarios fuera de tu proveedor de identidad a autenticar tu instancia
|
||||
|
||||
Cuando un usuario acepta la invitación, puede utilizar su nombre de usuario y contraseña para iniciar sesión en lugar de iniciar sesión a través del IdP.
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.sign-in %}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.invite-user-sidebar-tab %}
|
||||
{% data reusables.enterprise_site_admin_settings.invite-user-reset-link %}
|
||||
|
||||
### Leer más
|
||||
|
||||
- "[Usar LDAP](/enterprise/{{ currentVersion }}/admin/guides/user-management/using-ldap)"
|
||||
- "[Usar SAML](/enterprise/{{ currentVersion }}/admin/guides/user-management/using-saml)"
|
||||
- "[Usar CAS](/enterprise/{{ currentVersion }}/admin/guides/user-management/using-cas)"
|
||||
@@ -1,38 +0,0 @@
|
||||
---
|
||||
title: Modificar los métodos de autenticación
|
||||
intro: 'Puedes modificar la manera en que {% data variables.product.prodname_ghe_server %} se autentica con tus cuentas existentes en cualquier momento.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/user-management/changing-authentication-methods
|
||||
- /enterprise/admin/authentication/changing-authentication-methods
|
||||
- /admin/authentication/changing-authentication-methods
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Accounts
|
||||
- Authentication
|
||||
- Enterprise
|
||||
- Identity
|
||||
---
|
||||
Cuando modificas el método de autenticación, las cuentas de usuario en {% data variables.product.product_location_enterprise %} se conservan y los usuarios seguirán iniciando sesión en la misma cuenta siempre que su nombre de usuario no cambie.
|
||||
|
||||
Si el nuevo método de autenticación modifica los nombres de usuario, se crearán nuevas cuentas. Como administrador, puedes renombrar usuarios a través de los ajustes de administrador del sitio o utilizando [la API de Administración de Usuarios](/enterprise/{{currentVersion}}/v3/enterprise-admin/users/#rename-an-existing-user).
|
||||
|
||||
Otras cuestiones que deberías tener en cuenta son las siguientes:
|
||||
|
||||
* **Contraseñas:** Si comienzas a usar la autenticación integrada para tu instancia, los usuarios deben [configurar una contraseña](/enterprise/user/articles/how-can-i-reset-my-password/) una vez completado el cambio.
|
||||
|
||||
* **Administradores del sitio:** Los privilegios administrativos son [controlados por tu proveedor de identidad cuando usas SAML](/enterprise/admin/guides/user-management/using-saml/#saml-attributes) y pueden ser [controlados por los miembros del grupo cuando usas LDAP](/enterprise/admin/authentication/using-ldap#configuring-ldap-with-your-github-enterprise-server-instance).
|
||||
|
||||
* **Miembros del equipo:** Solo LDAP te permite [controlar los miembros del equipo](/enterprise/admin/authentication/using-ldap#configuring-ldap-with-your-github-enterprise-server-instance) desde tu servidor de directorios.
|
||||
|
||||
* **Suspensión de usuario:** cuando usas LDAP para autenticar, se puede controlar el acceso al {% data variables.product.prodname_ghe_server %} mediante _grupos restringidos_. Después de cambiar a LDAP, si se configuran grupos restringidos, los usuarios existentes que no estén en uno de esos grupos serán suspendidos. La suspensión ocurrirá cuando inicien sesión o durante la siguiente sincronización LDAP.
|
||||
|
||||
* **Miembros del grupo:** Cuando usas LDAP para autenticar, [se suspende y se anula la suspensión](/enterprise/admin/guides/user-management/suspending-and-unsuspending-users) de los usuarios automáticamente, en función de los miembros del grupo con restricciones y los estados de cuenta con Active Directory.
|
||||
|
||||
* **Autenticación Git:** SAML y CAS solo admiten la autenticación Git a través de HTTP o HTTPS usando un [token de acceso personal](/articles/creating-an-access-token-for-command-line-use). No se admite la autenticación de contraseña a través de HTTP o HTTPS. LDAP admite la autenticación Git basada en contraseña por defecto, pero te recomendamos [desactivar ese método](/enterprise/admin/authentication/using-ldap#disabling-password-authentication-for-git-operations) y forzar la autenticación mediante un token de acceso personal o clave SSH.
|
||||
|
||||
* **Autenticación de API:** SAML y CAS solo admiten la autenticación de API usando un [token de acceso personal](/articles/creating-an-access-token-for-command-line-use). No se admite la autenticación básica.
|
||||
|
||||
* **Autenticación de dos factores:** {% data reusables.enterprise_user_management.external_auth_disables_2fa %}
|
||||
|
||||
* **Autenticación integrada para usuarios fuera de tu proveedor de identidad:** Puedes invitar usuarios a autenticar {% data variables.product.product_location_enterprise %} sin agregarlos a tu proveedor de identidad. Para obtener más información, consulta "[Permitir autenticación integrada para usuarios fuera de tu proveedor de identidad](/enterprise/{{ currentVersion }}/admin/guides/user-management/allowing-built-in-authentication-for-users-outside-your-identity-provider)".
|
||||
@@ -1,20 +0,0 @@
|
||||
---
|
||||
title: Desactivar los registros no autenticados
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/disabling-sign-ups/
|
||||
- /enterprise/admin/user-management/disabling-unauthenticated-sign-ups
|
||||
- /enterprise/admin/authentication/disabling-unauthenticated-sign-ups
|
||||
- /admin/authentication/disabling-unauthenticated-sign-ups
|
||||
intro: 'Si usas la autenticación integrada, puedes impedir que las personas no autenticadas puedan crear una cuenta.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Accounts
|
||||
- Authentication
|
||||
- Enterprise
|
||||
---
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.privacy %}
|
||||
3. Quita la marca de selección en **Activar registro**. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
@@ -1,24 +0,0 @@
|
||||
---
|
||||
title: Autenticar usuarios para tu instancia de servidor de GitHub Enterprise
|
||||
intro: 'Puedes usar la autenticación integrada de {% data variables.product.prodname_ghe_server %} o elegir entre CAS, LDAP o SAML para integrar tus cuentas existentes y administrar centralmente el acceso de usuarios para {% data variables.product.product_location_enterprise %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/categories/authentication/
|
||||
- /enterprise/admin/guides/installation/user-authentication/
|
||||
- /enterprise/admin/articles/inviting-users/
|
||||
- /enterprise/admin/guides/migrations/authenticating-users-for-your-github-enterprise-instance/
|
||||
- /enterprise/admin/user-management/authenticating-users-for-your-github-enterprise-server-instance
|
||||
- /enterprise/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /using-built-in-authentication
|
||||
- /disabling-unauthenticated-sign-ups
|
||||
- /using-cas
|
||||
- /using-saml
|
||||
- /using-ldap
|
||||
- /allowing-built-in-authentication-for-users-outside-your-identity-provider
|
||||
- /changing-authentication-methods
|
||||
---
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
---
|
||||
title: Usar la autenticación integrada
|
||||
intro: 'Cuando usas el método de autenticación predeterminado, todos los detalles de autenticación se almacenan dentro de {% data variables.product.product_location_enterprise %}. La autenticación integrada es el método predeterminado, si ya no tienes un proveedor de autenticación establecido, como LDAP, SAML o CAS.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/user-management/using-built-in-authentication
|
||||
- /enterprise/admin/authentication/using-built-in-authentication
|
||||
- /admin/authentication/using-built-in-authentication
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Accounts
|
||||
- Authentication
|
||||
- Enterprise
|
||||
- Identity
|
||||
---
|
||||
Puedes crear mensajes personalizados que los usuarios verán en las páginas de inicio de sesión y de cierre de sesión. Para obtener más información, consulta "[Personalizar mensajes de usuario en tu instancia](/enterprise/admin/user-management/customizing-user-messages-on-your-instance)."
|
||||
|
||||
### Configurar la autenticación integrada
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.authentication %}
|
||||
4. Selecciona **Autenticación integrada**. 
|
||||
|
||||
{% data reusables.enterprise_user_management.two_factor_auth_header %}
|
||||
{% data reusables.enterprise_user_management.2fa_is_available %}
|
||||
|
||||
### Crear tu cuenta y agregar usuarios
|
||||
|
||||
Una vez que se ha creado tu instancia, necesitarás crear tu propia cuenta de administrador y usarla para aprovisionar usuarios.
|
||||
|
||||
1. En la página "Crear cuenta de administrador " en `http(s)://[hostname]/join`, elige tu nombre de usuario, contraseña y dirección de correo electrónico, luego haz clic en **Crear una cuenta**. 
|
||||
{% data reusables.enterprise_site_admin_settings.sign-in %}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.invite-user-sidebar-tab %}
|
||||
{% data reusables.enterprise_site_admin_settings.invite-user-reset-link %}
|
||||
@@ -1,50 +0,0 @@
|
||||
---
|
||||
title: Usar CAS
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/configuring-cas-authentication/
|
||||
- /enterprise/admin/articles/about-cas-authentication/
|
||||
- /enterprise/admin/user-management/using-cas
|
||||
- /enterprise/admin/authentication/using-cas
|
||||
- /admin/authentication/using-cas
|
||||
intro: 'CAS es un protocolo de inicio de sesión único (SSO) para varias aplicaciones web. Una cuenta de usuario CAS no usa un {% if currentVersion ver_gt "enterprise-server@2.16" %}asiento{% else %}de licencia de usuario{% endif %} hasta que el usuario inicia sesión.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Accounts
|
||||
- Authentication
|
||||
- Enterprise
|
||||
- Identity
|
||||
- SSO
|
||||
---
|
||||
{% data reusables.enterprise_user_management.built-in-authentication %}
|
||||
|
||||
### Consideraciones sobre el nombre de usuario con CAS
|
||||
|
||||
{% data reusables.enterprise_management_console.username_normalization %}
|
||||
|
||||
{% data reusables.enterprise_management_console.username_normalization_sample %}
|
||||
|
||||
{% data reusables.enterprise_user_management.two_factor_auth_header %}
|
||||
{% data reusables.enterprise_user_management.external_auth_disables_2fa %}
|
||||
|
||||
### Atributos de CAS
|
||||
|
||||
Están disponibles los siguientes atributos.
|
||||
|
||||
| Nombre del atributo | Tipo | Descripción |
|
||||
| ------------------- | --------- | ----------------------------------------------------------------------------- |
|
||||
| `nombre de usuario` | Requerido | El nombre de usuario {% data variables.product.prodname_ghe_server %}. |
|
||||
|
||||
### Configurar CAS
|
||||
{% warning %}
|
||||
|
||||
**Advertencia:** Antes de configurar CAS en {% data variables.product.product_location_enterprise %}, ten en cuenta que los usuarios no podrán usar sus nombres de usuario ni contraseñas CAS para autenticar las solicitudes de API o las operaciones Git a través de HTTP/HTTPS. En cambio, será necesario que [creen un token de acceso](/enterprise/{{ currentVersion }}/user/articles/creating-an-access-token-for-command-line-use).
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.authentication %}
|
||||
3. Selecciona **CAS**. 
|
||||
4. {% data reusables.enterprise_user_management.built-in-authentication-option %} 
|
||||
5. En el campo **URL del servidor**, escribe la URL completa de tu servidor CAS. Si tu servidor CAS usa un certificado que no puede ser validado por {% data variables.product.prodname_ghe_server %}, puedes usar el comando `ghe-ssl-ca-certificate-install` para instalarlo como un certificado de confianza.
|
||||
@@ -1,196 +0,0 @@
|
||||
---
|
||||
title: Usar LDAP
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/configuring-ldap-authentication/
|
||||
- /enterprise/admin/articles/about-ldap-authentication/
|
||||
- /enterprise/admin/articles/viewing-ldap-users/
|
||||
- /enterprise/admin/hidden/enabling-ldap-sync/
|
||||
- /enterprise/admin/hidden/ldap-sync/
|
||||
- /enterprise/admin/user-management/using-ldap
|
||||
- /enterprise/admin/authentication/using-ldap
|
||||
- /admin/authentication/using-ldap
|
||||
intro: 'LDAP te permite autenticar el {% data variables.product.prodname_ghe_server %} en tus cuentas existentes y administrar de manera centralizada el acceso a los repositorios. LDAP es un protocolo de aplicación popular para acceder a servicios de información de directorios y mantenerlos, y uno de los protocolos más comunes que se usan para integrar software de terceros con directorios de usuarios de empresas grandes.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Accounts
|
||||
- Authentication
|
||||
- Enterprise
|
||||
- Identity
|
||||
---
|
||||
{% data reusables.enterprise_user_management.built-in-authentication %}
|
||||
|
||||
### Servicios LDAP admitidos
|
||||
|
||||
El {% data variables.product.prodname_ghe_server %} se integra con los siguientes servicios LDAP:
|
||||
|
||||
* Active Directory
|
||||
* FreeIPA
|
||||
* Oracle Directory Server Enterprise Edition
|
||||
* OpenLDAP
|
||||
* Open Directory
|
||||
* 389-ds
|
||||
|
||||
### Consideraciones sobre el nombre de usuario con LDAP
|
||||
|
||||
{% data reusables.enterprise_management_console.username_normalization %}
|
||||
|
||||
{% data reusables.enterprise_management_console.username_normalization_sample %}
|
||||
|
||||
{% data reusables.enterprise_user_management.two_factor_auth_header %}
|
||||
{% data reusables.enterprise_user_management.2fa_is_available %}
|
||||
|
||||
### Configurar LDAP con {% data variables.product.product_location_enterprise %}
|
||||
|
||||
Una vez configurado LDAP, los usuarios podrán iniciar sesión en tu instancia con sus credenciales LDAP. Cuando los usuarios inician sesión por primera vez, sus nombres de perfil, direcciones de correo electrónico y claves SSH se establecen con los atributos de LDAP desde tu directorio.
|
||||
|
||||
Cuando configuras el acceso de LDAP para los usuarios a través de {% data variables.enterprise.management_console %}, tus licencias de usuario no se utilizarán sino hasta que los usuarios ingresen en tu instancia por primera vez. Sin embargo, si creas una cuenta manualmente utilizando la configuración de administrador para el sitio, esta licencia de usuario se tomará en cuenta.
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia:** Antes de configurar LDAP en {% data variables.product.product_location_enterprise %}, asegúrate de que tu servicio LDAP admita resultados paginados.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.authentication %}
|
||||
3. En "Authentication" (Autenticación), selecciona **LDAP**. 
|
||||
4. {% data reusables.enterprise_user_management.built-in-authentication-option %} 
|
||||
5. Agrega tus parámetros de configuración.
|
||||
|
||||
### Atributos de LDAP
|
||||
Usa estos atributos para terminar de configurar LDAP para {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
| Nombre del atributo | Tipo | Descripción |
|
||||
| --------------------------------------------------------------------------------------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `Host` | Requerido | El host LDAP, p. ej. `ldap.example.com` o `10.0.0.30`. Si el nombre del host solo está disponible desde tu red interna, es posible que primero debas configurar el DNS de {% data variables.product.product_location_enterprise %} para que pueda resolver el nombre del host usando tus servidores de nombres internos. |
|
||||
| `Port (Puerto)` | Requerido | El puerto que están escuchando los servicios LDAP. Los ejemplos incluyen: 389 y 636 (para LDAPS). |
|
||||
| `Encryption (Cifrado)` | Requerido | El método de cifrado usado para garantizar las comunicaciones con el servidor LDAP. Los ejemplos incluyen el normal (sin cifrado), el SSL/LDAPS (cifrado desde el principio) y el StartTLS (se actualiza a comunicación cifrada una vez que se conecta). |
|
||||
| `Domain search user (Usuario de búsqueda de dominio)` | Opcional | El usuario LDAP que realiza las búsquedas de usuario para autenticar otros usuarios cuando inician sesión. Esto suele ser una cuenta de servicio creada específicamente para integraciones de terceros. Usa un nombre certificado completo, como `cn=Administrator,cn=Users,dc=Example,dc=com`. Con Active Directory, también puedes usar la sintaxis `[DOMAIN]\[USERNAME]` (p. ej.,`WINDOWS\Administrator`) para el usuario de búsqueda de dominio. |
|
||||
| `Domain search password (Contraseña de búsqueda de dominio)` | Opcional | La contraseña para el usuario de búsqueda de dominio. |
|
||||
| `Administrators group (Grupo de administradores)` | Opcional | Los usuarios de este grupo son promovidos a administradores del sitio cuando inician sesión en tu aparato. Si no configuras un Grupo de administradores LDAP, la primera cuenta de usuario LDAP que inicie sesión en tu aparato será promovida automáticamente a administrador del sitio. |
|
||||
| `Domain base (Base de dominio)` | Requerido | El `Nombre Distintivo` (DN) completamente calificado de un subárbol LDAP que quieras buscar para usuarios y grupos. Puedes agregar tantos como quieras; sin embargo, cada grupo debe estar definido en la misma base de dominio que los usuarios que le pertenecen. Si especificas grupos de usuarios con restricciones, solo los usuarios que pertenecen a esos grupo estarán al alcance. Te recomendamos que especifiques el primer nivel de tu árbol de directorios LDAP como tu base de dominio y que uses grupos de usuarios con restricciones para controlar el acceso. |
|
||||
| `Restricted user groups (Grupos de usuarios con restricciones)` | Opcional | Si se especifica, solo los usuarios de estos grupos tendrán permiso para iniciar sesión. Solo necesitas especificar los nombres comunes (CN) de los grupos y puedes agregar tantos grupos como quieras. Si no se especifica ningún grupo, *todos* los usuarios dentro del alcance de la base de dominio especificada podrán iniciar sesión en tu instancia del {% data variables.product.prodname_ghe_server %}. |
|
||||
| `User ID (Identificación de usuario)` | Requerido | El atributo de LDAP que identifica al usuario LDAP que intenta una autenticación. Una vez que se establece una asignación, los usuarios pueden modificar sus nombres de usuario del {% data variables.product.prodname_ghe_server %}. El campo debería ser `sAMAccountName` para la mayoría de las instalaciones de Active Directory, pero puede ser `uid` para otras soluciones LDAP, como OpenLDAP. El valor predeterminado es `uid`. |
|
||||
| `Nombre de perfil` | Opcional | El nombre que aparecerá en la página de perfil del {% data variables.product.prodname_ghe_server %} del usuario. A menos que la sincronización LDAP esté activada, los usuarios pueden modificar sus nombres de perfil. |
|
||||
| `Emails (Correos electrónicos)` | Opcional | Las direcciones de correo electrónico para la cuenta del {% data variables.product.prodname_ghe_server %} de un usuario. |
|
||||
| `SSH keys (Claves SSH)` | Opcional | Las claves SSH públicas vinculadas a la cuenta del {% data variables.product.prodname_ghe_server %} de un usuario. Las claves deben ser en formato OpenSSH. |
|
||||
| `Claves GPG` | Opcional | Las claves GPG vinculadas a la cuenta del {% data variables.product.prodname_ghe_server %} de un usuario. |
|
||||
| `Disable LDAP authentication for Git operations (Desactivar la autenticación LDAP para las operaciones de Git)` | Opcional | Si está seleccionado, [desactiva](#disabling-password-authentication-for-git-operations) la posibilidad del usuario de usar contraseñas LDAP para autenticar las operaciones de Git. |
|
||||
| `Enable LDAP certificate verification (Activar la verificación de certificado LDAP)` | Opcional | Si está seleccionado, [activa](#enabling-ldap-certificate-verification) la verificación de certificado LDAP. |
|
||||
| `Synchronization (Sincronización)` | Opcional | Si está seleccionado, [activa](#enabling-ldap-sync) la sincronización LDAP. |
|
||||
|
||||
#### Desactivar la autenticación de contraseña para las operaciones de Git
|
||||
|
||||
Selecciona **Disable username and password authentication for Git operations** (Desactivar la autenticación de nombre de usuario y contraseña para las operaciones de Git) en los parámetros de tu LDAP para implementar el uso de los tokens de acceso personal o las claves SSH para el acceso a Git, que pueden ayudarte a prevenir que tu servidor se sobrecargue de solicitudes de autenticación LDAP. Recomendamos esta configuración, ya que un servidor LDAP de respuesta lenta, en especial combinado con una gran cantidad de solicitudes debido al sondeo, suele ser una causa de problemas e interrupciones.
|
||||
|
||||

|
||||
|
||||
Cuando se selecciona esta opción, si un usuario intenta usar una contraseña para las operaciones de Git a través de la línea de comando, recibirá un mensaje de error que dice: `La autenticación de contraseña no está permitida para las operaciones de Git. Debes usar un token de acceso personal.`
|
||||
|
||||
#### Activar la verificación de certificado LDAP
|
||||
|
||||
Selecciona **Enable LDAP certificate verification** (Activar verificación de certificado LDAP) en tus parámetros LDAP para validar el certificado del servidor LDAP que usas con TLS.
|
||||
|
||||

|
||||
|
||||
Cuando se selecciona esta opción, el certificado se valida para garantizar que:
|
||||
- Si el certificado contiene al menos un nombre alternativo del firmante (SAN), uno de los SAN coincida con el nombre del host de LDAP. De lo contrario, que el nombre común (CN) coincida con el nombre del host de LDAP.
|
||||
- El certificado no haya vencido.
|
||||
- El certificado esté firmado por una entidad de certificación (CA) de confianza.
|
||||
|
||||
#### Activar la sincronización LDAP
|
||||
|
||||
La sincronización LDAP te permite sincronizar usuarios y miembros del equipo del {% data variables.product.prodname_ghe_server %} con tus grupos LDAP establecidos. Esto te permite establecer un control de acceso basado en roles para los usuarios desde tu servidor LDAP, en lugar de hacerlo de forma manual dentro del {% data variables.product.prodname_ghe_server %}. Para obtener más información, consulta "[Crear equipos](/enterprise/{{ currentVersion }}/admin/guides/user-management/creating-teams#creating-teams-with-ldap-sync-enabled)".
|
||||
|
||||
Para activar la sincronización LDAP, en tus parámetros LDAP, selecciona **Synchronize Emails** (Sincronizar correos electrónicos), **Synchronize SSH Keys** (Sincronizar claves SSH) o **Synchronize GPG Keys** (Sincronizar claves GPG).
|
||||
|
||||

|
||||
|
||||
Una vez que actives la sincronización LDAP, se ejecutará un trabajo de sincronización en el intervalo de tiempo especificado para realizar las siguientes operaciones en cada cuenta de usuario:
|
||||
|
||||
- Si has permitido la autenticación integrada para usuarios externos a tu proveedor de identidad, y el usuario está usando la autenticación integrada, pasa al siguiente usuario.
|
||||
- Si no existe una asignación LDAP para el usuario, intenta asignar el usuario a una entrada LDAP en el directorio. Si el usuario no se puede asignar a una entrada LDAP, suspéndelo y pasa al siguiente usuario.
|
||||
- Si hay una asignación LDAP y falta la entrada LDAP correspondiente en el directorio, suspende el usuario y pasa al siguiente usuario.
|
||||
- Si la entrada LDAP correspondiente se marcó como desactivada, y el usuario aún no se suspendió, suspéndelo y pasa al siguiente usuario.
|
||||
- Si la entrada LDAP correspondiente no se marcó como desactivada, el usuario está suspendido y _Reactivate suspended users_ (Reactivar usuarios suspendidos) está activado en el centro de administración, anula la suspensión del usuario.
|
||||
- Si la entrada LDAP correspondiente incluye un atributo `name`, actualiza el nombre de perfil del usuario.
|
||||
- Si la entrada LDAP correspondiente está en el grupo de administradores, promueve al usuario a administrador del sitio.
|
||||
- Si la entrada LDAP correspondiente no está en el grupo de administradores, degrada al usuario a una cuenta normal.
|
||||
- Si un campo de usuario LDAP está definido para correos electrónicos, sincroniza los parámetros del correo electrónico del usuario con la entrada LDAP. Establece la primera entrada `mail` LDAP como el correo electrónico principal.
|
||||
- Si un campo de usuario LDAP está definido para claves públicas SSH, sincroniza las claves SSH públicas del usuario con la entrada LDAP.
|
||||
- Si un campo de usuario LDAP está definido para claves GPG, sincroniza las claves GPG del usuario con la entrada LDAP.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota**: Las entradas LDAP solo pueden estar marcadas como desactivadas si usas Active Directory y el atributo `userAccountControl` está presente y marcado con `ACCOUNTDISABLE`.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
También se ejecutará un trabajo de sincronización en el intervalo de tiempo especificado para realizar las siguientes operaciones en cada equipo que haya sido asignado a un grupo LDAP:
|
||||
|
||||
- Si se eliminó el grupo LDAP correspondiente de un equipo, elimina todos los miembros del equipo.
|
||||
- Si las entradas de miembros LDAP se eliminaron del grupo LDAP, elimina los usuarios correspondientes del equipo. Si como resultado el usuario pierde acceso a algún repositorio, elimina toda bifurcación privada que el usuario tenga de esos repositorios.
|
||||
- Si las entradas de miembros LDAP se agregaron al grupo LDAP, agrega los usuarios correspondientes al equipo. Si como resultado el usuario recupera el acceso a algún repositorio, restablece toda bifurcación privada de los repositorios que haya sido eliminada debido a que el usuario perdió acceso en los últimos 90 días.
|
||||
|
||||
{% data reusables.enterprise_user_management.ldap-sync-nested-teams %}
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia de seguridad:**
|
||||
|
||||
Cuando la sincronización LDAP está activada, los administradores del sitio y los propietarios de la organización pueden buscar en el directorio LDAP los grupos a los cuales asignar el equipo.
|
||||
|
||||
Esto posibilita divulgar información organizativa confidencial a contratistas u otros usuarios sin privilegios, incluidos los siguientes:
|
||||
|
||||
- La existencia de grupos LDAP específicos visibles para el *Usuario de búsqueda de dominio*.
|
||||
- Los miembros del grupo LDAP que tienen cuentas de usuario del {% data variables.product.prodname_ghe_server %}, que se divulga cuando se crea un equipo sincronizado con ese grupo LDAP.
|
||||
|
||||
Si no se desea divulgar dicha información, su empresa u organización debe restringir los permisos del *Usuario de búsqueda de dominio* en la consola de administración. Si no es posible aplicar dicha restricción, comuníquese con el {% data variables.contact.contact_ent_support %}.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
#### Clases de objetos del grupo LDAP admitidas
|
||||
|
||||
El {% data variables.product.prodname_ghe_server %} admite estas clases de objetos del grupo LDAP. Los grupos se pueden anidar.
|
||||
|
||||
- `grupo`
|
||||
- `groupOfNames`
|
||||
- `groupOfUniqueNames`
|
||||
- `posixGroup`
|
||||
|
||||
### Ver y crear usuarios LDAP
|
||||
|
||||
Puedes ver la lista completa de usuarios LDAP que tienen acceso a tu instancia y aprovisionar nuevos usuarios.
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.sign-in %}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
3. En la barra lateral izquierda, haz clic en **LDAP users** (Usuarios LDAP). 
|
||||
4. Para buscar un usuario, escribe un nombre de usuario completo o parcial y haz clic en **Search** (Buscar). Se mostrarán los usuarios existentes en los resultados de búsqueda. Si un usuario no existe, haz clic en **Create** (Crear) para aprovisionar la nueva cuenta de usuario. 
|
||||
|
||||
### Actualizar cuentas LDAP
|
||||
|
||||
A menos que [la sincronización LDAP esté activada](#enabling-ldap-sync), las modificaciones de las cuentas LDAP no se sincronizan automáticamente con el {% data variables.product.prodname_ghe_server %}.
|
||||
|
||||
* Para usar un nuevo grupo de administración LDAP, los usuarios deben ser promovidos y degradados de forma manual en el {% data variables.product.prodname_ghe_server %} para reflejar las modificaciones en LDAP.
|
||||
* Para agregar o eliminar cuentas LDAP de los grupos de administración LDAP, [promueve o degrada las cuentas en el {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/guides/user-management/promoting-or-demoting-a-site-administrator).
|
||||
* Para eliminar las cuentas LDAP, [suspende las cuentas del {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/guides/user-management/suspending-and-unsuspending-users).
|
||||
|
||||
#### Sincronizar cuentas LDAP de forma manual
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.sign-in %}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.search-user %}
|
||||
{% data reusables.enterprise_site_admin_settings.click-user %}
|
||||
{% data reusables.enterprise_site_admin_settings.admin-top-tab %}
|
||||
{% data reusables.enterprise_site_admin_settings.admin-tab %}
|
||||
5. En "LDAP", haz clic en **Sync now** (Sincronizar ahora) para actualizar de forma manual la cuenta con los datos de tu servidor LDAP. 
|
||||
|
||||
También puedes [utilizar la API para activar una sincronización manual](/enterprise/{{ currentVersion }}/user/rest/reference/enterprise-admin#ldap).
|
||||
|
||||
### Revocar acceso a {% data variables.product.product_location_enterprise %}
|
||||
|
||||
Si [la sincronización LDAP está activada](#enabling-ldap-sync), al eliminar las credenciales LDAP de un usuario, se suspenderá su cuenta hasta la siguiente ejecución de sincronización.
|
||||
|
||||
Si la sincronización LDAP **no** está activada, debes suspender de forma manual la cuenta del {% data variables.product.prodname_ghe_server %} después de eliminar las credenciales LDAP. Para obtener más información, consulta "[Suspender y anular suspensión de usuarios](/enterprise/{{ currentVersion }}/admin/guides/user-management/suspending-and-unsuspending-users)".
|
||||
@@ -1,187 +0,0 @@
|
||||
---
|
||||
title: Usar SAML
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/configuring-saml-authentication/
|
||||
- /enterprise/admin/articles/about-saml-authentication/
|
||||
- /enterprise/admin/user-management/using-saml
|
||||
- /enterprise/admin/authentication/using-saml
|
||||
- /admin/authentication/using-saml
|
||||
intro: 'SAML es un estándar basado en XML para autenticación y autorización. {% data variables.product.prodname_ghe_server %} puede actuar como un proveedor de servicios (SP) con tu proveedor de identidad (IdP) SAML interno.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Accounts
|
||||
- Authentication
|
||||
- Enterprise
|
||||
- Identity
|
||||
- SSO
|
||||
---
|
||||
{% data reusables.enterprise_user_management.built-in-authentication %}
|
||||
|
||||
### Servicios SAML admitidos
|
||||
|
||||
{% data reusables.saml.saml-supported-idps %}
|
||||
|
||||
{% data reusables.saml.saml-single-logout-not-supported %}
|
||||
|
||||
### Consideraciones sobre el nombre de usuario con SAML
|
||||
|
||||
Cada nombre de usuario {% data variables.product.prodname_ghe_server %} lo determina una de las siguientes aserciones en la respuesta SAML, ordenadas por prioridad:
|
||||
|
||||
- El atributo de nombre de usuario personalizado, si está definido y si hay uno.
|
||||
- Una aserción `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`, si hay una.
|
||||
- Una aserción `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress` assertion, si hay una.
|
||||
- El elemento `NameID`.
|
||||
|
||||
Se requiere el elemento `NameID`, incluso si hay otros atributos.
|
||||
|
||||
Se crea una asignación entre el `NameID` y el nombre de usuario {% data variables.product.prodname_ghe_server %}, para que el `NameID` sea persistente, único y no esté sujeto a cambios durante el ciclo de vida del usuario.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota**: Si la `NameID` de un usuario sí cambia en el IdP, el usuario verá un mensaje de error cuando intente ingresar en tu instancia de {% data variables.product.prodname_ghe_server %}. {% if currentVersion ver_gt "enterprise-server@2.21" %}Para restablecer el acceso del usuario, necesitarás actualizar el mapeo de la `NameID` de la cuenta del usuario. Para obtener más información, consulta la sección "[Actualizar la `NameID`](#updating-a-users-saml-nameid) de SAML de un usuario.{% else %} Para obtener más información, consulta "[Error: "Otro usuario ya tiene esta cuenta"](#error-another-user-already-owns-the-account)".{% endif %}
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% data reusables.enterprise_management_console.username_normalization %}
|
||||
|
||||
{% data reusables.enterprise_management_console.username_normalization_sample %}
|
||||
|
||||
{% data reusables.enterprise_user_management.two_factor_auth_header %}
|
||||
{% data reusables.enterprise_user_management.external_auth_disables_2fa %}
|
||||
|
||||
### Metadatos SAML
|
||||
|
||||
Los metadatos del proveedor de servicios de tu instancia {% data variables.product.prodname_ghe_server %} están disponible en `http(s)://[hostname]/saml/metadata`.
|
||||
|
||||
Para configurar tu proveedor de identidad de forma manual, la URL del Servicio de consumidor de aserciones (ACS) es `http(s)://[hostname]/saml/consume`. Esta usa el enlace `urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST`.
|
||||
|
||||
### Atributos de SAML
|
||||
|
||||
Estos atributos están disponibles. Puedes modificar el nombre del atributo en [Consola de administración](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-management-console/), a excepción del atributo `administrator`.
|
||||
|
||||
| Nombre de atributo predeterminado | Tipo | Descripción |
|
||||
| --------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `ID del nombre` | Requerido | Un identificador de usuario persistente. Se puede usar cualquier formato de identificador de nombre persistente. El elemento `NameID` se usará para un nombre de usuario {% data variables.product.prodname_ghe_server %}, a menos que se proporcione una de las aserciones alternativas. |
|
||||
| `administrador` | Opcional | Cuando el valor es "true", el usuario será promovido automáticamente como un administrador. Cualquier otro valor o un valor no existente degradará al usuario a una cuenta de usuario normal. |
|
||||
| `nombre de usuario` | Opcional | El nombre de usuario {% data variables.product.prodname_ghe_server %}. |
|
||||
| `nombre_completo` | Opcional | El nombre del usuario que se muestra en su página de perfil. Los usuarios pueden cambiar sus nombres después del aprovisionamiento. |
|
||||
| `correos electrónicos` | Opcional | Las direcciones de correo electrónico para el usuario. Se puede especificar más de una. |
|
||||
| `claves_públicas` | Opcional | Las claves SSH públicas para el usuario. Se puede especificar más de una. |
|
||||
| `claves_gpg` | Opcional | Las claves GPG para el usuario. Se puede especificar más de una. |
|
||||
|
||||
### Configurar parámetros SAML
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.authentication %}
|
||||
3. Selecciona **SAML**. 
|
||||
4. {% data reusables.enterprise_user_management.built-in-authentication-option %} 
|
||||
5. Opcionalmente, para activar el SSO de respuesta no solicitada, selecciona **IdP initiated SSO**. Por defecto, {% data variables.product.prodname_ghe_server %} responderá a una solicitud iniciada por un proveedor de identidad (IdP) no solicitada con una `AuthnRequest` de vuelta al IdP. 
|
||||
|
||||
{% tip %}
|
||||
|
||||
**Nota**: Te recomendamos mantener este valor **sin seleccionar**. Debes activar esta función **solo** en el caso inusual que tu implementación SAML no admita el SSO iniciado del proveedor de servicios y que {% data variables.contact.enterprise_support %} lo aconseje.
|
||||
|
||||
{% endtip %}
|
||||
|
||||
5. Selecciona **Disable administrator demotion/promotion (Desactivar la degradación/promoción del administrador)** si **no** quieres que tu proveedor de SAML determine los derechos del administrador para los usuarios en {% data variables.product.product_location_enterprise %}. 
|
||||
6. En el campo **URL de inicio de sesión único**, escribe la HTTP o el extremo HTTPS en tu IdP para las solicitudes de inicio de sesión único. Este valor lo provee la configuración de tu IdP. Si el host solo está disponible desde tu red interna, es posible que sea necesario [configurar {% data variables.product.product_location_enterprise %} para usar los servidores de nombres internos](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-dns-nameservers/). 
|
||||
7. También puedes escribir tu nombre de emisor de SAML en el campo **Emisor**. Esto verifica la autenticidad de los mensajes enviados a {% data variables.product.product_location_enterprise %}. 
|
||||
8. En los menúes desplegables **Método de firma** y **Método de resumen**, elige el algoritmo de hash que usa tu emisor SAML para verificar la integridad de las respuestas desde {% data variables.product.product_location_enterprise %}. Especifica el formato con el menú desplegable **Formato de identificador de nombre**. 
|
||||
9. Dentro de **Verification certificate (Certificado de comprobación)**, haz clic en **Choose File (Elegir archivo)** y elige un certificado para validar las respuestas SAML desde el IdP. 
|
||||
10. Modifica los nombres de atributo de SAML para hacerlos coincidir con tu IdP, si es necesario, o acepta los nombres predeterminados. 
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
|
||||
### Revocar acceso a {% data variables.product.product_location_enterprise %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
2. Selecciona **SAML**. 
|
||||
3. En la lista de usuarios, da clic en el nombre de usuario del cual te gustaría actualizar el mapeo de la `NameID`. 
|
||||
{% data reusables.enterprise_site_admin_settings.security-tab %}
|
||||
5. Dentro de **Verification certificate (Certificado de comprobación)**, haz clic en **Choose File (Elegir archivo)** y elige un certificado para validar las respuestas SAML desde el IdP. 
|
||||
6. En el campo de "NameID", teclea la `NameID` nueva para el usuario. 
|
||||
7. Da clic en **Actualizar NameID**. 
|
||||
|
||||
{% endif %}
|
||||
|
||||
### Revocar acceso a {% data variables.product.product_location_enterprise %}
|
||||
|
||||
Si eliminas un usuario desde tu proveedor de identidad, también debes suspenderlos de forma manual. De lo contrario, seguirán estando disponibles para autenticarse usando los tokens de acceso o las claves SSH. Para obtener más información, consulta "[Suspender y anular suspensión de usuarios](/enterprise/admin/guides/user-management/suspending-and-unsuspending-users)".
|
||||
|
||||
### Requisitos para los mensajes de respuesta
|
||||
|
||||
El mensaje de respuesta debe cumplir con los siguientes requisitos:
|
||||
|
||||
- Se debe proporcionar el elemento `<Destination>` en el documento de respuesta raíz y empatar la URL ACS únicamente cuando dicho documento se firme. Si la aserción está firmada, ésta se ignorará.
|
||||
- Siempre deberá proporcionarse el elemento `<Audience>` como parte del elemento `<AudienceRestriction>`. Siempre deberá proporcionarse el elemento `<Audience>` como parte del elemento `<AudienceRestriction>`. Ésta es la URL para la instancia de {% data variables.product.prodname_ghe_server %}, tal como `https://ghe.corp.example.com`.
|
||||
- Cada aserción en la respuesta **debe** estar protegida por una firma digital. Esto se puede lograr firmando cada elemento `<Assertion>` individual o firmando el elemento `<Response>`.
|
||||
- Un elemento `<NameID>` se debe proporcionar como parte del elemento `<Subject>`. Se puede usar cualquier formato de identificador de nombre persistente.
|
||||
- El atributo `Recipient` debe estar presente y establecido en la URL ACS. Por ejemplo:
|
||||
|
||||
```xml
|
||||
<samlp:Response ...>
|
||||
<saml:Assertion ...>
|
||||
<saml:Subject>
|
||||
<saml:NameID ...>...</saml:NameID>
|
||||
<saml:SubjectConfirmation ...>
|
||||
<saml:SubjectConfirmationData Recipient="https://ghe.corp.example.com/saml/consume" .../>
|
||||
</saml:SubjectConfirmation>
|
||||
</saml:Subject>
|
||||
<saml:AttributeStatement>
|
||||
<saml:Attribute FriendlyName="USERNAME-ATTRIBUTE" ...>
|
||||
<saml:AttributeValue>monalisa</saml:AttributeValue>
|
||||
</saml:Attribute>
|
||||
</saml:AttributeStatement>
|
||||
</saml:Assertion>
|
||||
</samlp:Response>
|
||||
```
|
||||
|
||||
### Autenticación SAML
|
||||
|
||||
de entidad del {% data variables.product.prodname_ghe_server %}, se presentará el siguiente mensaje de error en el registro de autenticación: Para obtener más información sobre los requisitos de respuesta de SAML, consulta la sección "[Requisitos de mensaje de respuesta](#response-message-requirements)".
|
||||
|
||||
#### Error: "Otro usuario ya tiene la cuenta"
|
||||
|
||||
Cuando un usuario ingresa en {% data variables.product.prodname_ghe_server %} por primera vez con la autenticación de SAML, {% data variables.product.prodname_ghe_server %} crea una cuenta de usuario en la instancia y mapea la `NameID` de SAML hacia la cuenta.
|
||||
|
||||
Cuando el usuario vuelve a ingresar, {% data variables.product.prodname_ghe_server %} compara el mapeo de la `NameID` de la cuenta con la respuesta del IdP. Si la `NameID` en la respuesta del IdP ya no empata con la `NameID` que {% data variables.product.prodname_ghe_server %} espera para el usuario, el inicio de sesión fallará. El usuario verá el siguiente mensaje.
|
||||
|
||||
> Another user already owns the account. Please have your administrator check the authentication log.
|
||||
|
||||
The message typically indicates that the person's username or email address has changed on the IdP. {% if currentVersion ver_gt "enterprise-server@2.21" %}Ensure that the `NameID` mapping for the user account on {% data variables.product.prodname_ghe_server %} matches the user's `NameID` on your IdP. For more information, see "[Updating a user's SAML `NameID`](#updating-a-users-saml-nameid)."{% else %}For help updating the `NameID` mapping, contact {% data variables.contact.contact_ent_support %}.{% endif %}
|
||||
|
||||
#### Si la respuesta SAML no está firmada o la firma no coincide con los contenidos, se presentará el siguiente mensaje de error en el registro de autenticación:
|
||||
|
||||
Si el `Recipient` no coincide con la URL ACS, se presentará el siguiente mensaje de error en el registro de autenticación:
|
||||
|
||||
```
|
||||
El destinatario en la respuesta SAML no debe estar en blanco.
|
||||
```
|
||||
|
||||
```
|
||||
El destinatario en la respuesta SAML no era válido.
|
||||
```
|
||||
|
||||
Ensure that you set the value for `Recipient` on your IdP to the full ACS URL for your {% data variables.product.prodname_ghe_server %} instance. Por ejemplo, `https://ghe.corp.example.com/saml/consume`.
|
||||
|
||||
#### Error: "SAML Response is not signed or has been modified"
|
||||
|
||||
If your IdP does not sign the SAML response, or the signature does not match the contents, the following error message will appear in the authentication log.
|
||||
|
||||
```
|
||||
La respuesta SAML no está firmada o ha sido modificada.
|
||||
```
|
||||
|
||||
Ensure that you configure signed assertions for the {% data variables.product.prodname_ghe_server %} application on your IdP.
|
||||
|
||||
#### Error: "Audience is invalid" or "No assertion found"
|
||||
|
||||
If the IdP's response has a missing or incorrect value for `Audience`, the following error message will appear in the authentication log.
|
||||
|
||||
```shell
|
||||
La audiencia es no válida. Audience attribute does not match https://<em>YOUR-INSTANCE-URL</em>
|
||||
```
|
||||
|
||||
Ensure that you set the value for `Audience` on your IdP to the `EntityId` for your {% data variables.product.prodname_ghe_server %} instance, which is the full URL to your {% data variables.product.prodname_ghe_server %} instance. Por ejemplo, `https://ghe.corp.example.com`.
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
title: Autenticación
|
||||
intro: 'Puedes usar la autenticación integrada de {% data variables.product.prodname_ghe_server %} o elegir entre CAS, LDAP o SAML para integrar tus cuentas existentes y administrar centralmente el acceso de usuarios para {% data variables.product.product_location_enterprise %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/authentication
|
||||
versions:
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /authenticating-users-for-your-github-enterprise-server-instance
|
||||
- /managing-identity-and-access-for-your-enterprise
|
||||
- /configuring-authentication-and-provisioning-with-your-identity-provider
|
||||
---
|
||||
### Índice
|
||||
@@ -1,82 +0,0 @@
|
||||
---
|
||||
title: Configuring code scanning for your appliance
|
||||
shortTitle: Configurar el escaneo de código
|
||||
intro: 'You can enable, configure and disable {% data variables.product.prodname_code_scanning %} for {% data variables.product.product_location_enterprise %}. {% data variables.product.prodname_code_scanning_capc %} allows users to scan code for vulnerabilities and errors.'
|
||||
product: '{% data reusables.gated-features.code-scanning %}'
|
||||
miniTocMaxHeadingLevel: 4
|
||||
redirect_from:
|
||||
- /enterprise/admin/configuration/configuring-code-scanning-for-your-appliance
|
||||
- /admin/configuration/configuring-code-scanning-for-your-appliance
|
||||
versions:
|
||||
enterprise-server: '>=2.22'
|
||||
topics:
|
||||
- Enterprise
|
||||
---
|
||||
{% data reusables.code-scanning.beta %}
|
||||
|
||||
### Acerca de {% data variables.product.prodname_code_scanning %}
|
||||
|
||||
{% data reusables.code-scanning.about-code-scanning %}
|
||||
|
||||
The table below summarizes the available types of analysis for {% data variables.product.prodname_code_scanning %}, and provides links on enabling the feature for individual repositories.
|
||||
|
||||
{% data reusables.code-scanning.enabling-options %}
|
||||
|
||||
For the users of {% data variables.product.product_location_enterprise %} to be able to enable and use {% data variables.product.prodname_code_scanning %} in their repositories, you need, as a site administrator, to enable this feature for the whole appliance.
|
||||
|
||||
### How do I know if {% data variables.product.prodname_code_scanning %} is enabled for my appliance
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
1. Check if there is an **{% data variables.product.prodname_advanced_security %}** entry in the left sidebar. 
|
||||
|
||||
If you can't see **{% data variables.product.prodname_advanced_security %}** in the sidebar, it means that your license doesn't include support for {% data variables.product.prodname_advanced_security %} features including {% data variables.product.prodname_code_scanning %}. The {% data variables.product.prodname_advanced_security %} license gives you and your users access to features that help you make your repositories and code more secure.
|
||||
|
||||
### Habilitar {% data variables.product.prodname_code_scanning %}
|
||||
|
||||
{% data reusables.enterprise_management_console.enable-disable-code-scanning %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.advanced-security-tab %}
|
||||
1. Under "{% data variables.product.prodname_advanced_security %}," click **{% data variables.product.prodname_code_scanning_capc %}**. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
|
||||
### Running {% data variables.product.prodname_code_scanning %} using {% data variables.product.prodname_actions %}
|
||||
|
||||
#### Setting up a self-hosted runner
|
||||
|
||||
If you are enrolled in the {% data variables.product.prodname_actions %} beta, then {% data variables.product.prodname_ghe_server %} can run {% data variables.product.prodname_code_scanning %} using a {% data variables.product.prodname_actions %} workflow. First, you need to provision one or more self-hosted {% data variables.product.prodname_actions %} runners in your environment. You can provision self-hosted runners at the repository, organization, or enterprise account level. For more information, see "[About self-hosted runners](/actions/hosting-your-own-runners/about-self-hosted-runners)" and "[Adding self-hosted runners](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
|
||||
|
||||
#### Provisioning the action
|
||||
To run {% data variables.product.prodname_code_scanning %} on {% data variables.product.prodname_ghe_server %} with {% data variables.product.prodname_actions %}, the appropriate action must be available locally. You can make the action available in three ways.
|
||||
|
||||
- **Recommended** You can use [{% data variables.product.prodname_github_connect %}](/enterprise/admin/configuration/connecting-github-enterprise-server-to-github-enterprise-cloud) to automatically download actions from {% data variables.product.prodname_dotcom_the_website %}. The machine that hosts your instance must be able to access {% data variables.product.prodname_dotcom_the_website %}. This approach ensures that you get the latest software automatically. For more information, see "[Configuring {% data variables.product.prodname_github_connect %} to sync {% data variables.product.prodname_actions %}](/enterprise/admin/configuration/configuring-code-scanning-for-your-appliance#configuring-github-connect-to-sync-github-actions)."
|
||||
- If you want to use the {% data variables.product.prodname_codeql_workflow %}, you can sync the repository from {% data variables.product.prodname_dotcom_the_website %} to {% data variables.product.prodname_ghe_server %}, by using the {% data variables.product.prodname_codeql %} Action sync tool available at [https://github.com/github/codeql-action-sync-tool](https://github.com/github/codeql-action-sync-tool/). You can use this tool regardless of whether {% data variables.product.product_location_enterprise %} or your {% data variables.product.prodname_actions %} runners have access to the internet, as long as you can access both {% data variables.product.product_location_enterprise %} and {% data variables.product.prodname_dotcom_the_website %} simultaneously on your computer.
|
||||
- You can create a local copy of the action's repository on your server, by cloning the {% data variables.product.prodname_dotcom_the_website %} repository with the action. For example, if you want to use the {% data variables.product.prodname_codeql %} action, you can create a repository in your instance called `github/codeql-action`, then clone the [repository](https://github.com/github/codeql-action) from {% data variables.product.prodname_dotcom_the_website %}, and then push that repository to your instance's `github/codeql-action` repository. You will also need to download any of the releases from the repository on {% data variables.product.prodname_dotcom_the_website %} and upload them to your instance's `github/codeql-action` repository as releases.
|
||||
|
||||
|
||||
##### Configuring {% data variables.product.prodname_github_connect %} to sync {% data variables.product.prodname_actions %}
|
||||
|
||||
1. If you want to download action workflows on demand from {% data variables.product.prodname_dotcom_the_website %}, you need to enable {% data variables.product.prodname_github_connect %}. For more information, see "[Enabling {% data variables.product.prodname_github_connect %}](/enterprise/admin/configuration/connecting-github-enterprise-server-to-github-enterprise-cloud#enabling-github-connect)."
|
||||
2. You'll also need to enable {% data variables.product.prodname_actions %} for {% data variables.product.product_location_enterprise %}. For more information, see "[Enabling {% data variables.product.prodname_actions %} and configuring storage](/enterprise/admin/github-actions/enabling-github-actions-and-configuring-storage)."
|
||||
3. The next step is to configure access to actions on {% data variables.product.prodname_dotcom_the_website %} using {% data variables.product.prodname_github_connect %}. For more information, see "[Enabling automatic access to {% data variables.product.prodname_dotcom_the_website %} actions using {% data variables.product.prodname_github_connect %}](/enterprise/admin/github-actions/enabling-automatic-access-to-githubcom-actions-using-github-connect)."
|
||||
4. Add a self-hosted runner to your repository, organization, or enterprise account. Para obtener más información, consulta "[Agregar ejecutores autoalojados](/actions/hosting-your-own-runners/adding-self-hosted-runners)."
|
||||
|
||||
After you configure a self-hosted runner, users can enable {% data variables.product.prodname_code_scanning %} for individual repositories on {% data variables.product.product_location_enterprise %}. El flujo de trabajo predeterminado de {% data variables.product.prodname_code_scanning %} utiliza el evento `on.push` para activar el escaneo de código cada vez que alguien carga información a cualquier rama que contenga el archivo de flujo de trabajo.
|
||||
|
||||
### Running {% data variables.product.prodname_code_scanning %} using the {% data variables.product.prodname_codeql_runner %}
|
||||
If your organization isn't taking part in the beta for {% data variables.product.prodname_actions %}, or if you don't want to use {% data variables.product.prodname_actions %}, you can run {% data variables.product.prodname_code_scanning %} using the {% data variables.product.prodname_codeql_runner %}.
|
||||
|
||||
The {% data variables.product.prodname_codeql_runner %} is a command-line tool that you can add to your third-party CI/CD system. The tool runs {% data variables.product.prodname_codeql %} analysis on a checkout of a {% data variables.product.prodname_dotcom %} repository. For more information, see "[Running {% data variables.product.prodname_code_scanning %} in your CI system](/github/finding-security-vulnerabilities-and-errors-in-your-code/running-code-scanning-in-your-ci-system)."
|
||||
|
||||
### Inhabilitar las {% data variables.product.prodname_code_scanning %}
|
||||
|
||||
{% data reusables.enterprise_management_console.enable-disable-code-scanning %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.advanced-security-tab %}
|
||||
1. Under "{% data variables.product.prodname_advanced_security %}", unselect **{% data variables.product.prodname_code_scanning_capc %}**. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
title: Configuring Advanced Security features
|
||||
shortTitle: Configuring Advanced Security
|
||||
intro: 'You can enable or disable {% data variables.product.prodname_advanced_security %} features, such as {% data variables.product.prodname_code_scanning %}, on your instance.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/configuration/configuring-advanced-security-features
|
||||
versions:
|
||||
enterprise-server: '>=2.22'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /configuring-code-scanning-for-your-appliance
|
||||
---
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
---
|
||||
title: Configurar un nombre del host
|
||||
intro: Recomendamos establecer un nombre del host para tu aparato en lugar de utilizar una dirección IP codificada de forma rígida.
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/configuring-hostnames/
|
||||
- /enterprise/admin/installation/configuring-a-hostname
|
||||
- /enterprise/admin/configuration/configuring-a-hostname
|
||||
- /admin/configuration/configuring-a-hostname
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
---
|
||||
Si configuras un nombre del host en lugar de una dirección IP codificada de forma rígida, podrás cambiar el hardware físico que ejecuta {% data variables.product.product_location_enterprise %} sin afectar a los usuarios o al software del cliente.
|
||||
|
||||
La configuración del nombre de host en la {% data variables.enterprise.management_console %} debe ajustarse a un nombre de dominio adecuado y que cumpla con todos los requisitos (FQDN) el cual se pueda resolver en la internet o dentro de tu red interna. Por ejemplo, tu configuración de nombre del host podría ser `github.companyname.com.` También recomendamos habilitar el aislamiento de subdominio para el nombre del host elegido a fin de mitigar varias vulnerabilidades del estilo cross-site scripting. Para obtener más información, consulta [Sección 2.1 del HTTP RFC](https://tools.ietf.org/html/rfc1123#section-2).
|
||||
|
||||
{% data reusables.enterprise_installation.changing-hostname-not-supported %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.hostname-menu-item %}
|
||||
4. Escribe el nombre del host que quieres establecer para {% data variables.product.product_location_enterprise %}. 
|
||||
5. Para probar las configuraciones de DNS y SSL para el nombre del host nuevo, haz clic en **Configuraciones del dominio de prueba**. 
|
||||
{% data reusables.enterprise_management_console.test-domain-settings-failure %}
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
Después de configurar un nombre del host, recomendamos que habilites el aislamiento de subdominio para {% data variables.product.product_location_enterprise %}. Para obtener más información, consulta "[Habilitar el aislamiento de subdominio](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-subdomain-isolation/)."
|
||||
@@ -1,30 +0,0 @@
|
||||
---
|
||||
title: Configurar un servidor proxy web fuera de banda
|
||||
intro: 'Un servidor proxy proporciona otro nivel de seguridad para {% data variables.product.product_location_enterprise %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/configuring-a-proxy-server/
|
||||
- /enterprise/admin/installation/configuring-an-outbound-web-proxy-server
|
||||
- /enterprise/admin/configuration/configuring-an-outbound-web-proxy-server
|
||||
- /admin/configuration/configuring-an-outbound-web-proxy-server
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Networking
|
||||
---
|
||||
Cuando se habilita un servidor proxy para {% data variables.product.product_location_enterprise %}, primero {% data variables.product.prodname_ghe_server %} envía mensajes fuera de banda a través del servidor proxy, a menos que el host de destino se agregue como una exclusión de servidor proxy HTTP. Los tipos de mensajes fuera de banda incluyen webhooks salientes, carga de paquetes y extracción de avatares heredados. La URL del servidor proxy es el protocolo, dominio o dirección IP más el número de puerto, por ejemplo `http://127.0.0.1:8123`.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** Para conectarte a {% data variables.product.product_location_enterprise %} para {% data variables.product.prodname_dotcom_the_website %}, tu configuración proxy debe permitir la conectividad a `github.com` y a `api.github.com`. Para obtener más información, consulta "[Conectarse a {% data variables.product.prodname_ghe_server %} para {% data variables.product.prodname_dotcom_the_website %}](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/connecting-github-enterprise-server-to-github-com)."
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.privacy %}
|
||||
4. En **Servidor proxy HTTP**, escribe la URL de tu servidor proxy. 
|
||||
5. De manera opcional, en **Exclusión de servidor proxy HTTP**, escribe cualquier host que no exija acceso proxy, separando los hosts con comas. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
@@ -1,121 +0,0 @@
|
||||
---
|
||||
title: Configurar las reglas de firewall incorporado
|
||||
intro: 'Puedes ver las reglas de firewall predeterminadas y personalizar reglas para {% data variables.product.product_location_enterprise %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/configuring-firewall-settings/
|
||||
- /enterprise/admin/installation/configuring-built-in-firewall-rules
|
||||
- /enterprise/admin/configuration/configuring-built-in-firewall-rules
|
||||
- /admin/configuration/configuring-built-in-firewall-rules
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Networking
|
||||
---
|
||||
### Acerca del firewell de {% data variables.product.product_location_enterprise %}
|
||||
|
||||
{% data variables.product.prodname_ghe_server %} utiliza Ubuntu's Uncomplicated Firewall (UFW) en el aparato virtual. Para obtener más información, consulta "[UFW](https://help.ubuntu.com/community/UFW)" en la documentación de Ubuntu. Con cada lanzamiento, {% data variables.product.prodname_ghe_server %} actualiza automáticamente la lista blanca de los servicios permitidos del firewell.
|
||||
|
||||
Después de que instales {% data variables.product.prodname_ghe_server %}, se abren automáticamente todos los puertos de red obligatorios para aceptar las conexiones. Cada puerto no obligatorio se configura automáticamente en `deny` (rechazar), y la directiva predeterminada resultante se configura en `allow` (permitir). Se habilita el rastreo con estado para todas las conexiones nuevas. Estas suelen ser paquetes de red con el conjunto de bits `SYN`. Para obtener más información, consulta "[Puertos de red](/enterprise/admin/guides/installation/network-ports)."
|
||||
|
||||
El firewall de UFW también abre varios puertos más que son obligatorios para que {% data variables.product.prodname_ghe_server %} funcione correctamente. Para obtener más información sobre el conjunto de reglas de UFW, consulta [el README de UFW](https://bazaar.launchpad.net/~jdstrand/ufw/0.30-oneiric/view/head:/README#L213).
|
||||
|
||||
### Ver las reglas de firewell predeterminadas
|
||||
|
||||
{% data reusables.enterprise_installation.ssh-into-instance %}
|
||||
2. Para ver las reglas de firewall predeterminadas, utiliza el comando `sudo ufw status`. Debes ver un resultado similar a este:
|
||||
```shell
|
||||
$ sudo ufw status
|
||||
> Status: active
|
||||
> To Action From
|
||||
> -- ------ ----
|
||||
> ghe-1194 ALLOW Anywhere
|
||||
> ghe-122 ALLOW Anywhere
|
||||
> ghe-161 ALLOW Anywhere
|
||||
> ghe-22 ALLOW Anywhere
|
||||
> ghe-25 ALLOW Anywhere
|
||||
> ghe-443 ALLOW Anywhere
|
||||
> ghe-80 ALLOW Anywhere
|
||||
> ghe-8080 ALLOW Anywhere
|
||||
> ghe-8443 ALLOW Anywhere
|
||||
> ghe-9418 ALLOW Anywhere
|
||||
> ghe-1194 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-122 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-161 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-22 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-25 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-443 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-80 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-8080 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-8443 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-9418 (v6) ALLOW Anywhere (v6)
|
||||
```
|
||||
|
||||
### Agregar reglas de firewell personalizadas
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia:** Antes de que agregues reglas de cortafuegos personalizadas, respalda tus reglas actuales en caso de que necesites restablecerlas a algún punto funcional. Si estás bloqueado de tu servidor, comunícate con {% data variables.contact.contact_ent_support %} para reconfigurar las reglas originales del firewall. Restaurar las reglas originales del firewall implica tiempo de inactividad para tu servidor.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
1. Configura una regla de firewall personalizada.
|
||||
2. Verifica el estado de cada nueva regla con el comando `estado numerado`.
|
||||
```shell
|
||||
$ sudo ufw status numbered
|
||||
```
|
||||
3. Para hacer una copia de seguridad de tus reglas de firewall personalizadas, utiliza el comando `cp` para pasar las reglas a un archivo nuevo.
|
||||
```shell
|
||||
$ sudo cp -r /lib/ufw ~/ufw.backup
|
||||
```
|
||||
|
||||
Después de actualizar {% data variables.product.product_location_enterprise %}, debes volver a aplicar tus reglas de firewall personalizadas. Recomendamos que crees un script para volver a aplicar las reglas de firewall personalizadas.
|
||||
|
||||
### Restaurar las reglas de firewell predeterminadas
|
||||
|
||||
Si algo sale mal después de que cambies las reglas de firewell, puedes restablecer las reglas desde la copia de seguridad original.
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia:** Si no respaldaste las reglas originales antes de hacer cambios al cortafuegos. contacta a {% data variables.contact.contact_ent_support %} para obtener más asistencia.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
{% data reusables.enterprise_installation.ssh-into-instance %}
|
||||
2. Para restablecer las reglas de la copia de seguridad anterior, vuélvelas a copiar en el firewell con el comando `cp`.
|
||||
```shell
|
||||
$ sudo cp -f ~/ufw.backup/*rules /lib/ufw
|
||||
```
|
||||
3. Vuelve a iniciar el firewell con el comando `systemctl`.
|
||||
```shell
|
||||
$ sudo systemctl restart ufw
|
||||
```
|
||||
4. Confirma que las reglas recuperaron su forma predeterminada con el comando `ufw status` (estado de ufw).
|
||||
```shell
|
||||
$ sudo ufw status
|
||||
> Status: active
|
||||
> To Action From
|
||||
> -- ------ ----
|
||||
> ghe-1194 ALLOW Anywhere
|
||||
> ghe-122 ALLOW Anywhere
|
||||
> ghe-161 ALLOW Anywhere
|
||||
> ghe-22 ALLOW Anywhere
|
||||
> ghe-25 ALLOW Anywhere
|
||||
> ghe-443 ALLOW Anywhere
|
||||
> ghe-80 ALLOW Anywhere
|
||||
> ghe-8080 ALLOW Anywhere
|
||||
> ghe-8443 ALLOW Anywhere
|
||||
> ghe-9418 ALLOW Anywhere
|
||||
> ghe-1194 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-122 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-161 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-22 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-25 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-443 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-80 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-8080 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-8443 (v6) ALLOW Anywhere (v6)
|
||||
> ghe-9418 (v6) ALLOW Anywhere (v6)
|
||||
```
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
title: Configurar servidores de nombres DNS
|
||||
intro: '{% data variables.product.prodname_ghe_server %} utiliza el protocolo de configuración dinámica de host (DHCP) para los ajustes DNS cuando las concesiones de DHCP ofrecen servidores de nombres. Si una concesión del protocolo de configuración dinámica de host (DHCP) no proporciona los servidores de nombres o si debes utilizar ajustes DNS particulares, puedes especificar los servidores de nombres de manera manual.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/about-dns-nameservers/
|
||||
- /enterprise/admin/installation/configuring-dns-nameservers
|
||||
- /enterprise/admin/configuration/configuring-dns-nameservers
|
||||
- /admin/configuration/configuring-dns-nameservers
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Networking
|
||||
---
|
||||
Los servidores de nombres que especifiques deben resolver el nombre del host de {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
{% data reusables.enterprise_installation.changing-hostname-not-supported %}
|
||||
|
||||
### Configurar servidores de nombres utilizando la consola de la máquina virtual
|
||||
|
||||
{% data reusables.enterprise_installation.open-vm-console-start %}
|
||||
2. Configurar servidores de nombres para tu instancia.
|
||||
{% data reusables.enterprise_installation.vm-console-done %}
|
||||
|
||||
### Configurar servidores de nombres utilizando el shell administrativo
|
||||
|
||||
{% data reusables.enterprise_installation.ssh-into-instance %}
|
||||
2. Para editar tus servidores de nombres, ingresa lo siguiente:
|
||||
```shell
|
||||
$ sudo vim /etc/resolvconf/resolv.conf.d/head
|
||||
```
|
||||
3. Agrega cualquier entrada de `nameserver` (servidor de nombres) y luego guarda el archivo.
|
||||
4. Después de verificar tus cambios, guarda el archivo.
|
||||
5. Para agregar tus entradas nuevas de servidores de nombres en {% data variables.product.product_location_enterprise %}, ingresa lo siguiente:
|
||||
```shell
|
||||
$ sudo service resolvconf restart
|
||||
```
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
title: Configurar la dirección IP usando la consola de la máquina virtual
|
||||
intro: 'Por defecto, {% data variables.product.prodname_ghe_server %} recupera las configuraciones de red a través del protocolo de configuración dinámica de host (DHCP). Si es compatible con tu plataforma, o si el DHCP no está disponible, también puedes establecer las configuraciones de red usando la consola de la máquina virtual.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/configuring-the-ip-address-using-the-virtual-machine-console
|
||||
- /enterprise/admin/configuration/configuring-the-ip-address-using-the-virtual-machine-console
|
||||
- /admin/configuration/configuring-the-ip-address-using-the-virtual-machine-console
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Networking
|
||||
---
|
||||
{% data reusables.enterprise_installation.open-vm-console-start %}
|
||||
3. Para configurar, elige el protocolo `IPv4` o `IPv6`. 
|
||||
4. Configura las opciones para el protocolo que elegiste. 
|
||||
{% data reusables.enterprise_installation.vm-console-done %}
|
||||
@@ -1,76 +0,0 @@
|
||||
---
|
||||
title: Configurar TLS
|
||||
intro: 'Puedes configurar la Seguridad de la capa de transporte (TLS) en {% data variables.product.product_location_enterprise %} para poder usar un certificado firmado por una entidad de certificación confiable.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/ssl-configuration/
|
||||
- /enterprise/admin/guides/installation/about-tls/
|
||||
- /enterprise/admin/installation/configuring-tls
|
||||
- /enterprise/admin/configuration/configuring-tls
|
||||
- /admin/configuration/configuring-tls
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Networking
|
||||
- Security
|
||||
---
|
||||
### Acerca de la Seguridad de la capa de transporte
|
||||
|
||||
El TLS, que reemplazó al SSL, se habilita y configura con un certificado autofirmado cuando se inicia el {% data variables.product.prodname_ghe_server %} por primera vez. Como los certificados autofirmados no son confiables para los navegadores web y los clientes de Git, estos clientes informarán advertencias de certificados hasta que inhabilites TLS o cargues un certificado firmado por una entidad confiable, como Let's Encrypt.
|
||||
|
||||
El aparato {% data variables.product.prodname_ghe_server %} enviará encabezados de Seguridad de transporte estricta de HTTP mientras SSL esté habilitado. Inhabilitar TLS hará que los usuarios pierdan acceso al aparato, porque sus navegadores no permitirán que un protocolo se degrade a HTTP. Para obtener más información, consulta "[Seguridad de transporte estricta de HTTP (HSTS)](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security)" en Wikipedia.
|
||||
|
||||
{% data reusables.enterprise_installation.terminating-tls %}
|
||||
|
||||
Para permitir que los usuarios utilicen FIDO U2F para la autenticación de dos factores, debes habilitar TLS para tu instancia. Para obtener más información, consulta "[Configurar autenticación de dos factores](/articles/configuring-two-factor-authentication)".
|
||||
|
||||
### Prerrequisitos
|
||||
|
||||
Para utilizar TLS en la producción, debes tener un certificado en un formato de PEM no cifrado firmado por una entidad de certificación confiable.
|
||||
|
||||
Tu certificado también deberá tener configurados Nombres alternativos de sujeto para los subdominios detallados en "[Habilitar aislamiento de subdominio](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-subdomain-isolation#about-subdomain-isolation)" y deberá incluir toda la cadena de certificación si lo firmó una entidad de certificación intermedia. Para obtener más información, consulta "[Nombre alternativo de sujeto](http://en.wikipedia.org/wiki/SubjectAltName)" en Wikipedia.
|
||||
|
||||
Puedes generar una solicitud de firma de certificados (CSR) para tu instancia usando el comando `ghe-ssl-generate-csr`. Para obtener más información, consulta "[utilidades de línea de comandos](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities/#ghe-ssl-generate-csr)"
|
||||
|
||||
### Cargar un certificado TLS personalizado
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.privacy %}
|
||||
{% data reusables.enterprise_management_console.select-tls-only %}
|
||||
4. En "TLS Protocol support" (Asistencia de protocolo TLS), selecciona los protocolos que quieres permitir. 
|
||||
5. En "Certificate" (Certificado), haz clic en **Choose File** (Elegir archivo) para elegir el certificado TLS o la cadena de certificación (en formato de PEM) que quieras instalar. Este archivo suele tener una extensión *.pem*, *.crt* o *.cer*. 
|
||||
6. En "Unencrypted key" (Clave no cifrada), haz clic en **Choose File** (Elegir archivo) para elegir la clave TLS (en formato de PEM) que quieras instalar. Ese archivo suele tener una extensión *.key*. 
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia**: Tu clave TLS no debe tener contraseña. Para obtener más información, consulta "[Eliminar la contraseña de tu archivo clave](/enterprise/{{ currentVersion }}/admin/guides/installation/troubleshooting-ssl-errors#removing-the-passphrase-from-your-key-file)".
|
||||
|
||||
{% endwarning %}
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
### Acerca de la asistencia de Let's Encrypt
|
||||
|
||||
Let's Encrypt es una entidad de certificación pública que emite certificados TLS gratuitos y automáticos que son confiables para los navegadores que usan el protocolo ACME. De hecho, puedes obtener y renovar los certificados de Let's Encrypt para tu aparato sin la necesidad de realizar ningún mantenimiento manual.
|
||||
|
||||
{% data reusables.enterprise_installation.lets-encrypt-prerequisites %}
|
||||
|
||||
Cuando habilites la automatización de la gestión de certificado TLS con Let's Encrypt, {% data variables.product.product_location_enterprise %} se contactará con los servidores de Let's Encrypt para obtener un certificado. Para renovar un certificado, los servidores de Let's Encrypt deben validar el control del nombre de dominio configurado con las solicitudes HTTP entrantes.
|
||||
|
||||
También puedes usar la utilidad de la línea de comando `ghe-ssl-acme` en {% data variables.product.product_location_enterprise %} para generar un certificado de Let's Encrypt de manera automática. Para obtener más información, consulta "[Utilidades de la línea de comando](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-ssl-acme)."
|
||||
|
||||
### Configurar TLS usando Let's Encrypt
|
||||
|
||||
{% data reusables.enterprise_installation.lets-encrypt-prerequisites %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.privacy %}
|
||||
{% data reusables.enterprise_management_console.select-tls-only %}
|
||||
5. Selecciona **Enable automation of TLS certificate management using Let's Encrypt** (Habilitar la automatización de la gestión de certificado TLS con Let's Encrypt). 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
{% data reusables.enterprise_management_console.privacy %}
|
||||
7. Haz clic en **Request TLS certificate** (Solicitar certificado TLS). 
|
||||
8. Haz clic en **Save configuration** (Guardar configuración).
|
||||
@@ -1,68 +0,0 @@
|
||||
---
|
||||
title: Habilitar el aislamiento de subdominio
|
||||
intro: 'Puedes configurar el aislamiento de subdominio para separar en forma segura el contenido suministrado por el usuario de las demás partes de tu aparato {% data variables.product.prodname_ghe_server %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/about-subdomain-isolation/
|
||||
- /enterprise/admin/installation/enabling-subdomain-isolation
|
||||
- /enterprise/admin/configuration/enabling-subdomain-isolation
|
||||
- /admin/configuration/enabling-subdomain-isolation
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Networking
|
||||
- Security
|
||||
---
|
||||
### Acerca del aislamiento de subdominio
|
||||
|
||||
El aislamiento de subdominio mitiga las vulnerabilidades del estilo cross-site scripting y otras vulnerabilidades relacionadas. Para obtener más información, consulta "[Cross-site scripting](http://en.wikipedia.org/wiki/Cross-site_scripting)" en Wikipedia. Es altamente recomendable que habilites el aislamiento de subdominio en {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
Cuando el aislamiento de subdominio está habilitado, {% data variables.product.prodname_ghe_server %} reemplaza varias rutas con subdominios.
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
To use Docker with {% data variables.product.prodname_registry %}, you must also enable subdomain isolation. For more information, see "[Configuring Docker for use with {% data variables.product.prodname_registry %}](/enterprise/{{ currentVersion }}/user/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages)."
|
||||
|
||||
{% data reusables.package_registry.packages-ghes-release-stage %}
|
||||
|
|
||||
{% endif %}
|
||||
| Ruta sin aislamiento de subdominio | Ruta con aislamiento de subdominio |
|
||||
| --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| `http(s)://HOSTNAME/assets/` | `http(s)://assets.HOSTNAME/` |
|
||||
| `http(s)://HOSTNAME/avatars/` | `http(s)://avatars.HOSTNAME/` |
|
||||
| `http(s)://HOSTNAME/codeload/` | `http(s)://codeload.HOSTNAME/` |
|
||||
| `http(s)://HOSTNAME/gist/` | `http(s)://gist.HOSTNAME/` |
|
||||
| `http(s)://HOSTNAME/media/` | `http(s)://media.HOSTNAME/` |
|
||||
| `http(s)://HOSTNAME/pages/` | `http(s)://pages.HOSTNAME/` |
|
||||
| `http(s)://HOSTNAME/raw/` | `http(s)://raw.HOSTNAME/` |
|
||||
| `http(s)://HOSTNAME/render/` | `http(s)://render.HOSTNAME/` |
|
||||
| `http(s)://HOSTNAME/reply/` | `http(s)://reply.HOSTNAME/` |
|
||||
| `http(s)://HOSTNAME/uploads/` | `http(s)://uploads.HOSTNAME/` |{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
| N/A, Docker with {% data variables.product.prodname_registry %} will not work with subdomain isolation disabled. | `http(s)://uploads.HOSTNAME/` |
|
||||
| `https://HOSTNAME/_registry/npm/` | `https://npm.HOSTNAME/` |
|
||||
| `https://HOSTNAME/_registry/rubygems/` | `https://rubygems.HOSTNAME/` |
|
||||
| `https://HOSTNAME/_registry/maven/` | `https://maven.HOSTNAME/` |
|
||||
| `https://HOSTNAME/_registry/nuget/` | `https://nuget.HOSTNAME/`{% endif %}
|
||||
|
||||
### Prerrequisitos
|
||||
|
||||
{% data reusables.enterprise_installation.disable-github-pages-warning %}
|
||||
|
||||
Antes de que habilites el aislamiento de subdominio, debes configurar tus ajustes de red para el nuevo dominio.
|
||||
|
||||
- Especifica un nombre de dominio válido como tu nombre del host, en lugar de una dirección IP. Para obtener más información, consulta "[Configurar un nombre del host](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-a-hostname)."
|
||||
|
||||
{% data reusables.enterprise_installation.changing-hostname-not-supported %}
|
||||
|
||||
- Configura un registro de Sistema de nombres de dominio (DNS) de carácter comodín o registros DNS individuales para los subdominios detallados más arriba. Recomendamos crear un registro A para `*.HOSTNAME` que apunte a la dirección IP de tu servidor así no tienes que crear múltiples registros para cada subdominio.
|
||||
- Obtén un certificado de Seguridad de la capa de transporte (TLS) de carácter comodín para `*.HOSTNAME` con un Nombre alternativo del firmante (SAN) para el `HOSTNAME` y para el `*.HOSTNAME` de dominio de carácter comodín. Por ejemplo, si tu nombre del host es `*.github.octoinc.com` obtén un certificado con el valor del nombre común configurado en `*.github.octoinc.com` y un valor SAN configurado en `github.octoinc.com` y `*.github.octoinc.com`.
|
||||
- Habilita TLS en tu aparato. Para obtener más información, consulta "[Configurar TLS](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-tls/)."
|
||||
|
||||
### Habilitar el aislamiento de subdominio
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.hostname-menu-item %}
|
||||
4. Selecciona **Subdomain isolation (recommended)** (Aislamiento de subdominio [recomendado]). 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
@@ -1,27 +0,0 @@
|
||||
---
|
||||
title: Configurar los ajustes de red
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/dns-hostname-subdomain-isolation-and-ssl/
|
||||
- /enterprise/admin/articles/about-dns-ssl-and-subdomain-settings/
|
||||
- /enterprise/admin/articles/configuring-dns-ssl-and-subdomain-settings/
|
||||
- /enterprise/admin/guides/installation/configuring-your-github-enterprise-network-settings/
|
||||
- /enterprise/admin/installation/configuring-your-github-enterprise-server-network-settings
|
||||
- /enterprise/admin/configuration/configuring-network-settings
|
||||
intro: 'Configura {% data variables.product.prodname_ghe_server %} con los servidores de nombres y el nombre del host DNS necesarios para tu red. También puedes configurar un servidor proxy o reglas de firewall. Debes permitir el acceso a determinados puertos con fines administrativos y relacionados con el usuario.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /configuring-the-ip-address-using-the-virtual-machine-console
|
||||
- /configuring-dns-nameservers
|
||||
- /configuring-a-hostname
|
||||
- /validating-your-domain-settings
|
||||
- /configuring-tls
|
||||
- /enabling-subdomain-isolation
|
||||
- /configuring-an-outbound-web-proxy-server
|
||||
- /configuring-built-in-firewall-rules
|
||||
- /network-ports
|
||||
- /using-github-enterprise-server-with-a-load-balancer
|
||||
---
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
---
|
||||
title: Puertos de red
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/configuring-firewalls/
|
||||
- /enterprise/admin/articles/firewall/
|
||||
- /enterprise/admin/guides/installation/network-configuration/
|
||||
- /enterprise/admin/guides/installation/network-ports-to-open/
|
||||
- /enterprise/admin/installation/network-ports
|
||||
- /enterprise/admin/configuration/network-ports
|
||||
- /admin/configuration/network-ports
|
||||
intro: 'Abre los puertos de red de forma selectiva en base a los servicios de red que necesitas exponer a los administradores, usuarios finales y apoyo de correo electrónico.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
- Networking
|
||||
- Security
|
||||
---
|
||||
### Puertos administrativos
|
||||
|
||||
Se requieren algunos puertos administrativos para configurar {% data variables.product.product_location_enterprise %} y ejecutar determinadas funciones. No se requieren puertos administrativos para el uso de la aplicación básica por parte de los usuarios finales.
|
||||
|
||||
| Port (Puerto) | Servicio | Descripción |
|
||||
| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| 8443 | HTTPS | {% data variables.enterprise.management_console %} segura basada en la web. Requerida para la instalación y la configuración básicas. |
|
||||
| 8080 | HTTP | {% data variables.enterprise.management_console %} basada en la web de texto simple. No se requiere excepto que el SSL esté inhabilitado de forma manual. |
|
||||
| 122 | SSH | Acceso shell para {% data variables.product.product_location_enterprise %}. Se requiere para abrir las conexiones entrantes de todos los otros nodos en la configuración de alta disponibilidad. El puerto SSH predeterminado (22) está destinado al tráfico de red de la aplicación SSH y Git. |
|
||||
| 1194/UDP | VPN | Túnel de red de replicación segura en la configuración de alta disponibilidad. Se requiere que esté abierto para todos los otros nodos en la configuración. |
|
||||
| 123/UDP | NTP | Se requiere para operar el protocolo de tiempo. |
|
||||
| 161/UDP | SNMP | Se requiere para operar el protocolo de revisión de red. |
|
||||
|
||||
### Puertos de la aplicación para usuarios finales
|
||||
|
||||
Los puertos de la aplicación permiten que los usuarios finales accedan a Git y a la aplicación web.
|
||||
|
||||
| Port (Puerto) | Servicio | Descripción |
|
||||
| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 443 | HTTPS | Acceso a la aplicación web y a Git por HTTPS. |
|
||||
| 80 | HTTP | Acceso a la aplicación web. Todas las solicitudes se redireccionan al puerto HTTPS cuando se habilita SSL. |
|
||||
| 22 | SSH | Acceso a Git por SSH. Admite las operaciones clonar, extraer y subir a los repositorios privados y públicos. |
|
||||
| 9418 | Git | El puerto de protocolo Git admite las operaciones clonar y extraer a los repositorios públicos con comunicación de red desencriptada. |
|
||||
|
||||
{% data reusables.enterprise_installation.terminating-tls %}
|
||||
|
||||
### Puertos de correo electrónico
|
||||
|
||||
Los puertos de correo electrónico deben ser accesibles directamente o por medio de la retransmisión del correo electrónico entrante para los usuarios finales.
|
||||
|
||||
| Port (Puerto) | Servicio | Descripción |
|
||||
| ------------- | -------- | ---------------------------------------------- |
|
||||
| 25 | SMTP | Soporte para SMTP con encriptación (STARTTLS). |
|
||||
@@ -1,60 +0,0 @@
|
||||
---
|
||||
title: Utilizar el servidor de GitHub Enterprise con un balanceador de carga
|
||||
intro: 'Utiliza un balanceador de carga frente a un aparato único del {% data variables.product.prodname_ghe_server %} o un par de aparatos en una configuración de alta disponibilidad.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/using-github-enterprise-with-a-load-balancer/
|
||||
- /enterprise/admin/installation/using-github-enterprise-server-with-a-load-balancer
|
||||
- /enterprise/admin/configuration/using-github-enterprise-server-with-a-load-balancer
|
||||
- /admin/configuration/using-github-enterprise-server-with-a-load-balancer
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- High availability
|
||||
- Infrastructure
|
||||
- Networking
|
||||
---
|
||||
{% data reusables.enterprise_clustering.load_balancer_intro %}
|
||||
|
||||
{% data reusables.enterprise_clustering.load_balancer_dns %}
|
||||
|
||||
### Manejar información de conexión de clientes
|
||||
|
||||
Debido a que las conexiones de cliente al {% data variables.product.prodname_ghe_server %} provienen del balanceador de carga, se puede perder la dirección IP del cliente.
|
||||
|
||||
{% data reusables.enterprise_clustering.proxy_preference %}
|
||||
|
||||
{% data reusables.enterprise_clustering.proxy_xff_firewall_warning %}
|
||||
|
||||
#### Habilitar soporte para protocolo de PROXY en {% data variables.product.product_location_enterprise %}
|
||||
|
||||
Recomendamos firmemente habilitar el soporte para protocolo de PROXY para tu aparato y el balanceador de carga. Utiliza las instrucciones provistas por tu proveedor para habilitar el protocolo PROXY en tu balanceador de carga. Para obtener más información, consulta [la documentación de protocolo PROXY](http://www.haproxy.org/download/1.6/doc/proxy-protocol.txt).
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.privacy %}
|
||||
3. Dentro de **External load balancers (Balanceadores de carga externos)**, selecciona **Enable support for PROXY protocol (Habilitar soporte para el protocolo de PROXY)**. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
{% data reusables.enterprise_clustering.proxy_protocol_ports %}
|
||||
|
||||
#### Habilitar soporte para X-Forwarded-For en {% data variables.product.product_location_enterprise %}
|
||||
|
||||
{% data reusables.enterprise_clustering.x-forwarded-for %}
|
||||
|
||||
{% data reusables.enterprise_installation.terminating-tls %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.privacy %}
|
||||
3. Dentro de **External load balancers (Balanceadores de carga externos)**, selecciona **Allow HTTP X-Forwarded-For header (Permitir encabezados HTTP X-Forwarded-For)**. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
{% data reusables.enterprise_clustering.without_proxy_protocol_ports %}
|
||||
|
||||
### Configurar la revisión de estado
|
||||
|
||||
Las comprobaciones de estado permiten que un balanceador de carga deje de enviar tráfico a un nodo que no responde si una comprobación preconfigurada falla en ese nodo. Si el aparato está fuera de línea debido a un mantenimiento o una falla inesperada, el balanceador de carga puede mostrar una página de estado. En una configuración de alta disponibilidad (HA), un balanceador de carga puede usarse como parte de una estrategia de conmutación por error. Sin embargo, no está admitida la conmutación por error automática de los pares de HA. Debes impulsar de forma manual el aparato réplica antes de que comience con las consultas activas. Para obtener más información, consulta "[Configurar {% data variables.product.prodname_ghe_server %} para alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-github-enterprise-server-for-high-availability/)."
|
||||
|
||||
{% data reusables.enterprise_clustering.health_checks %}
|
||||
{% data reusables.enterprise_site_admin_settings.maintenance-mode-status %}
|
||||
@@ -1,21 +0,0 @@
|
||||
---
|
||||
title: Validar tus parámetros de dominio
|
||||
intro: 'Asegúrate de que tus parámetros de dominio estén configurados adecuadamente antes de arrancar {% data variables.product.product_location_enterprise %} por primera vez.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/validating-your-domain-settings
|
||||
- /enterprise/admin/configuration/validating-your-domain-settings
|
||||
- /admin/configuration/validating-your-domain-settings
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Networking
|
||||
---
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.hostname-menu-item %}
|
||||
4. Para probar los parámetros DNS y SSL de tu aparato, haz clic en **Test domain settings (Pruebar parámetros de dominio)**. 
|
||||
{% data reusables.enterprise_management_console.test-domain-settings-failure %}
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
@@ -1,76 +0,0 @@
|
||||
---
|
||||
title: Acceder al shell administrativo (SSH)
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/ssh-access/
|
||||
- /enterprise/admin/articles/adding-an-ssh-key-for-shell-access/
|
||||
- /enterprise/admin/guides/installation/administrative-shell-ssh-access/
|
||||
- /enterprise/admin/articles/troubleshooting-ssh-permission-denied-publickey/
|
||||
- /enterprise/admin/2.13/articles/troubleshooting-ssh-permission-denied-publickey/
|
||||
- /enterprise/admin/2.14/articles/troubleshooting-ssh-permission-denied-publickey/
|
||||
- /enterprise/admin/2.15/articles/troubleshooting-ssh-permission-denied-publickey/
|
||||
- /enterprise/admin/installation/accessing-the-administrative-shell-ssh
|
||||
- /enterprise/admin/configuration/accessing-the-administrative-shell-ssh
|
||||
- /admin/configuration/accessing-the-administrative-shell-ssh
|
||||
intro: 'El acceso al SSH te permite ejecutar las utilidades de la línea de comando del {% data variables.product.prodname_ghe_server %} y es útil para la solución de problemas, para ejecutar copias de seguridad y para configurar la replicación.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- SSH
|
||||
---
|
||||
### Acerca del acceso al shell administrativo
|
||||
|
||||
Si tienes acceso SSH al shell administrativo, puedes ejecutar las utilidades de la línea de comando del {% data variables.product.prodname_ghe_server %}. El acceso SSH también es útil para la solución de problemas, para ejecutar copias de seguridad y para configurar la replicación. El acceso SSH administrativo se administra por separado desde el acceso SSH de Git y es accesible solo desde el puerto 122.
|
||||
|
||||
### Habilitar el acceso al shell administrativo por medio de SSH
|
||||
|
||||
Para habilitar el acceso SSH administrativo, debes agregar tu llave pública SSH a tu lista de llaves autorizadas de la instancia.
|
||||
|
||||
{% tip %}
|
||||
|
||||
**Consejo:** Los cambios en las claves SSH entran en vigor de inmediato.
|
||||
|
||||
{% endtip %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
3. En "SSH access" (Acceso SSH), pega tu clave en el cuadro de texto, luego haz clic en **Add key** (Agregar clave). 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
### Conectarse con el shell administrativo por SSH
|
||||
|
||||
Después de que hayas agregado tu clave SSH a la lista, conéctate a la instancia por SSH como el usuario `admin` en el puerto 122.
|
||||
|
||||
```shell
|
||||
$ ssh -p 122 admin@github.example.com
|
||||
Último inicio de sesión: dom 9 de nov 07:53:29 2014 desde 169.254.1.1
|
||||
admin@github-example-com:~$ █
|
||||
```
|
||||
|
||||
#### Solucionar problemas de conexión al SSH
|
||||
|
||||
Si te encuentras con el error `Permiso denegado (publickey)` cuando intentas conectarte a {% data variables.product.product_location_enterprise %} por medio de SSH, confirma que te estés conectando por el puerto 122. Puede que debas especificar de manera explícita qué clave SSH privada utilizar.
|
||||
|
||||
Para especificar una clave SSH utilizando la línea de comando, ejecuta `ssh` con el argumento `-i`.
|
||||
|
||||
```shell
|
||||
ssh -i /path/to/ghe_private_key -p 122 admin@<em>hostname</em>
|
||||
```
|
||||
|
||||
También puedes especificar una clave SSH privada utilizando el archivo de configuración de SSH (`~/.ssh/config`).
|
||||
|
||||
```shell
|
||||
Host <em>hostname</em>
|
||||
IdentityFile /path/to/ghe_private_key
|
||||
Usuario Admin
|
||||
Puerto 122
|
||||
```
|
||||
|
||||
### Acceder al shell administrativo utilizando la consola local
|
||||
|
||||
En una situación de emergencia, por ejemplo, si el SSH no está disponible, puedes acceder al shell administrativo de manera local. Inicia sesión como usuario `admin` y utiliza la contraseña establecida durante la configuración inicial de {% data variables.product.prodname_ghe_server %}.
|
||||
|
||||
### Limitaciones de acceso al shell administrativo
|
||||
|
||||
El acceso al shell administrativo se permite solo para la solución de problemas y para realizar procedimientos de operaciones documentadas. Si modificas archivos del sistema y de la aplicación, ejecutas programas o instalas paquetes de software incompatibles se puede invalidar tu contrato de asistencia. Contáctate con {% data variables.contact.contact_ent_support %} si tienes alguna pregunta acerca de las actividades que permite tu contrato de asistencia.
|
||||
@@ -1,53 +0,0 @@
|
||||
---
|
||||
title: Acceder a la consola de administración
|
||||
intro: 'Utiliza la {% data variables.enterprise.management_console %} para configurar y establecer {% data variables.product.product_location %}, programa las ventanas de mantenimiento, soluciona problemas y administra tu licencia.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/about-the-management-console/
|
||||
- /enterprise/admin/articles/management-console-for-emergency-recovery/
|
||||
- /enterprise/admin/articles/web-based-management-console/
|
||||
- /enterprise/admin/categories/management-console/
|
||||
- /enterprise/admin/articles/accessing-the-management-console/
|
||||
- /enterprise/admin/guides/installation/web-based-management-console/
|
||||
- /enterprise/admin/installation/accessing-the-management-console
|
||||
- /enterprise/admin/configuration/accessing-the-management-console
|
||||
- /admin/configuration/accessing-the-management-console
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
---
|
||||
### Acerca de {% data variables.enterprise.management_console %}
|
||||
|
||||
Utiliza {% data variables.enterprise.management_console %} para las actividades administrativas básicas:
|
||||
- **Configuración inicial**: Atraviesa el proceso de configuración inicial durante el primer lanzamiento {% data variables.product.product_location_enterprise %} visitando la dirección IP de {% data variables.product.product_location_enterprise %} en tu navegador.
|
||||
- **Establecer configuraciones básicas para tu instancia**: Configura DNS, nombre del host, SSL, autenticación de usuario, correo electrónico, servicios de monitoreo y redireccionamiento de registro en la página de Configuraciones.
|
||||
- **Programar ventanas de mantenimiento**: Trabaja sin conexión en tu {% data variables.product.product_location_enterprise %} mientras realizas mantenimiento con {% data variables.enterprise.management_console %} o el shell administrativo.
|
||||
- **Solucionar problemas**: Genera un paquete de soporte o visualiza la información de diagnóstico de alto nivel.
|
||||
- **Administración de licencias**: Visualiza o actualiza tu licencia {% data variables.product.prodname_enterprise %}.
|
||||
|
||||
También puedes acceder a {% data variables.enterprise.management_console %} utilizando la dirección IP de {% data variables.product.product_location_enterprise %}, incluso cuando la instancia se encuentre en modo de mantenimiento o si ocurre una falla crítica en la aplicación o si están mal configurados el nombre del host o la SSL.
|
||||
|
||||
Para acceder a {% data variables.enterprise.management_console %}, debes utilizar la contraseña de administrador establecida durante la configuración inicial de {% data variables.product.product_location_enterprise %}. También debes poder conectarte con el host de la máquina virtual en el puerto 8443. Si tienes problemas para acceder a {% data variables.enterprise.management_console %}, controla las configuraciones del firewall intermedio y del grupo de seguridad.
|
||||
|
||||
### Acceder a la {% data variables.enterprise.management_console %} como administrador del sitio
|
||||
|
||||
La primera vez que accedas a la {% data variables.enterprise.management_console %} como administrador de sitio, deberás cargar tu archivo de licencia de {% data variables.product.prodname_enterprise %} para autenticarte en la app. Para obtener más información, consulta la sección "[Administrar tu licencia de {% data variables.product.prodname_enterprise %}](/enterprise/{{ currentVersion }}/admin/guides/installation/managing-your-github-enterprise-license)".
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.type-management-console-password %}
|
||||
|
||||
### Acceder a {% data variables.enterprise.management_console %} como usuario sin autenticación
|
||||
|
||||
1. Visita esta URL en tu navegador, reemplazando el `nombre del host` por tu nombre del host o tu dirección IP actuales {% data variables.product.prodname_ghe_server %}:
|
||||
```shell
|
||||
http(s)://HOSTNAME/setup
|
||||
```
|
||||
{% data reusables.enterprise_management_console.type-management-console-password %}
|
||||
|
||||
### Desbloquear {% data variables.enterprise.management_console %} después de los intentos de inicio de sesión fallidos
|
||||
|
||||
Los bloqueos de la {% data variables.enterprise.management_console %} después de diez intentos de inicio de sesión fallidos se hacen en el transcurso de diez minutos. Debes esperar para que la pantalla de inicio de sesión se desbloquee automáticamente antes de intentar iniciar sesión nuevamente. La pantalla de inicio de sesión se desbloquea automáticamente siempre que el período de diez minutos previo contenga menos de diez intentos de inicio de sesión fallidos. El contador se reinicia después de que ocurra un inicio de sesión exitoso.
|
||||
|
||||
Para desbloquear de inmediato la {% data variables.enterprise.management_console %}, utilice el comando `ghe-reactivate-admin-login` a través del shell administrativo. Para obtener más información, consulta "[Utilidades de la línea de comando](/enterprise/{{ currentVersion }}/admin/guides/installation/command-line-utilities#ghe-reactivate-admin-login)" y "[Acceder al shell administrativo (SSH)](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/)."
|
||||
@@ -1,822 +0,0 @@
|
||||
---
|
||||
title: Utilidades de la línea de comando
|
||||
intro: '{% data variables.product.prodname_ghe_server %} incluye una gama de utilidades para ayudar a resolver problemas particulares o realizar tareas específicas.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/viewing-all-services/
|
||||
- /enterprise/admin/articles/command-line-utilities/
|
||||
- /enterprise/admin/installation/command-line-utilities
|
||||
- /enterprise/admin/configuration/command-line-utilities
|
||||
- /admin/configuration/command-line-utilities
|
||||
miniTocMaxHeadingLevel: 3
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- SSH
|
||||
---
|
||||
Puedes ejecutar estos comandos desde cualquier lugar en la VM después de iniciar sesión como usuario administrador de SSH. Para obtener más información, consulta "[Acceder al shell administrativo (SSH)](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/)."
|
||||
|
||||
### General
|
||||
|
||||
#### ghe-announce
|
||||
|
||||
Esta utilidad establece un mensaje emergente en la parte superior de cada página {% data variables.product.prodname_enterprise %}. Puedes usarlo para difundir un mensaje entre tus usuarios.
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
You can also set an announcement banner using the enterprise settings on {% data variables.product.product_name %}. Para obtener más información, consulta "[Personalizar mensajes de usuario en tu instancia](/enterprise/admin/user-management/customizing-user-messages-on-your-instance#creating-a-global-announcement-banner)."
|
||||
{% endif %}
|
||||
|
||||
```shell
|
||||
# Establece un mensaje que es visible para todos
|
||||
$ ghe-announce -s MESSAGE
|
||||
> Mensaje de anuncio establecido.
|
||||
# Elimina un mensaje establecido previamente
|
||||
$ ghe-announce -u
|
||||
> Eliminó el mensaje de anuncio
|
||||
```
|
||||
|
||||
#### ghe-check-disk-usage
|
||||
|
||||
Esta utilidad busca en el disco los archivos grandes o los archivos que se han eliminado, pero siguen teniendo identificadores de archivo abiertos. Esto se debería ejecutar cuando intentes liberar espacio en la partición raíz.
|
||||
|
||||
```shell
|
||||
ghe-check-disk-usage
|
||||
```
|
||||
|
||||
#### ghe-cleanup-caches
|
||||
|
||||
Esta utilidad borra una variedad de cachés que podrían ocupar espacio extra del disco en el volumen raíz. Si notas que el uso del espacio de disco del volumen raíz aumenta de manera considerable, sería buena idea ejecutar esta utilidad para ver si ayuda a reducir el uso general.
|
||||
|
||||
```shell
|
||||
ghe-cleanup-caches
|
||||
```
|
||||
#### ghe-cleanup-settings
|
||||
|
||||
Esta utilidad borra todas las configuraciones {% data variables.enterprise.management_console %} existentes.
|
||||
|
||||
{% tip %}
|
||||
|
||||
**Consejo**: {% data reusables.enterprise_enterprise_support.support_will_ask_you_to_run_command %}
|
||||
|
||||
{% endtip %}
|
||||
|
||||
```shell
|
||||
ghe-cleanup-settings
|
||||
```
|
||||
|
||||
#### ghe-config
|
||||
|
||||
Con esta utilidad, puedes recuperar y modificar los ajustes de configuración de {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
```shell
|
||||
$ ghe-config <em>core.github-hostname</em>
|
||||
# Obtiene el valor de configuración de `core.github-hostname`
|
||||
$ ghe-config <em>core.github-hostname</em> <em>'example.com'</em>
|
||||
# Establece el valor de configuración de `core.github-hostname` en `example.com`
|
||||
$ ghe-config -l
|
||||
# Detalla todos los valores de configuración
|
||||
```
|
||||
Te permite encontrar el uuid de tu nodo en `cluster.conf`.
|
||||
|
||||
``` shell
|
||||
$ ghe-config _hostname_.uuid
|
||||
```
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
Allows you to exempt a list of users from API rate limits. Para obtener más información, consulta la sección "[Limites de tasa](/enterprise/{{ currentVersion }}/v3/#rate-limiting)."
|
||||
|
||||
``` shell
|
||||
$ ghe-config app.github.rate_limiting_exempt_users "<em>hubot</em> <em>github-actions</em>"
|
||||
# Exempts the users hubot and github-actions from rate limits
|
||||
```
|
||||
{% endif %}
|
||||
|
||||
#### ghe-config-apply
|
||||
|
||||
Esta utilidad aplica configuraciones {% data variables.enterprise.management_console %}, vuelve a cargar servicios del sistema, prepara un dispositivo de almacenamiento y ejecuta cualquier migración de base de datos pendiente. Es equivalente a dar clic en **Guardar configuración** en la IU web de {% data variables.enterprise.management_console %} o a enviar una solicitud de POST a [la terminal `/setup/api/configure`](/enterprise/{{ currentVersion }}/user/rest/reference/enterprise-admin#management-console).
|
||||
|
||||
Probablemente, nunca la debas ejecutar en forma manual, pero está disponible si quieres automatizar el proceso de guardar tus configuraciones a través de SSH.
|
||||
|
||||
```shell
|
||||
ghe-config-apply
|
||||
```
|
||||
|
||||
#### ghe-console
|
||||
|
||||
Esta utilidad abre la consola GitHub Rails en tu aparato {% data variables.product.prodname_enterprise %}. {% data reusables.command_line.use_with_support_only %}
|
||||
|
||||
```shell
|
||||
ghe-console
|
||||
```
|
||||
|
||||
#### ghe-dbconsole
|
||||
|
||||
Esta utilidad abre una sesión de base de datos de MySQL en tu aparato {% data variables.product.prodname_enterprise %}. {% data reusables.command_line.use_with_support_only %}
|
||||
|
||||
```shell
|
||||
ghe-dbconsole
|
||||
```
|
||||
|
||||
#### ghe-es-index-status
|
||||
Esta utilidad genera un resumen de los índices de Elasticsearch en formato CSV.
|
||||
|
||||
Imprime un resumen de los índices con un encabezado para `STDOUT`:
|
||||
```shell
|
||||
$ ghe-es-index-status -do
|
||||
> warning: parser/current is loading parser/ruby23, which recognizes
|
||||
> warning: 2.3.3-compliant syntax, but you are running 2.3.4.
|
||||
> warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
|
||||
> Name,Primary,Searchable,Writable,UpToDate,RepairProgress,Version
|
||||
> code-search-1,true,true,true,true,100.0,72e27df7c631b45e026b42bfef059328fa040e17
|
||||
> commits-5,true,true,true,true,100.0,7ed28813100c47813ef654c0ee2bb9abf21ab744
|
||||
> gists-4,true,true,true,true,100.0,cf8e7d04fcf2564c902e2873c424a279cc41079d
|
||||
> issues-4,false,false,false,true,100.0,d0bb08f71eebf6e7b070572aa399b185dbdc8a76
|
||||
> issues-5,true,true,true,true,100.0,d0bb08f71eebf6e7b070572aa399b185dbdc8a76
|
||||
> projects-2,true,true,true,true,100.0,c5cac1c4b3c66d42e609d088d174dbc3dd44469a
|
||||
> pull-requests-6,true,true,true,true,100.0,6a466ad6b896a3499509990979bf9a18d7d41de3
|
||||
> repos-6,true,true,true,true,100.0,6c8b5fbba0fc1e409558db411d05e092c1387082
|
||||
> users-5,true,true,true,true,100.0,38984875552bb826c9ec42999f409cb2e95556eb
|
||||
> wikis-4,true,true,true,true,100.0,2613dec44bd14e14577803ac1f9e4b7e07a7c234
|
||||
```
|
||||
|
||||
Imprime un resumen de los índices y canaliza los resultados en `columnas` para mejor legibilidad:
|
||||
|
||||
```shell
|
||||
$ ghe-es-index-status -do | column -ts,
|
||||
> warning: parser/current is loading parser/ruby23, which recognizes
|
||||
> warning: 2.3.3-compliant syntax, but you are running 2.3.4.
|
||||
> warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
|
||||
> Nombre Principal Se puede buscar Editable Actualizado Avance reparación Versión
|
||||
> code-search-1 true true true true 100.0 72e27df7c631b45e026b42bfef059328fa040e17
|
||||
> commits-5 true true true true 100.0 7ed28813100c47813ef654c0ee2bb9abf21ab744
|
||||
> gists-4 true true true true 100.0 cf8e7d04fcf2564c902e2873c424a279cc41079d
|
||||
> issues-4 falso falso falso true 100.0 d0bb08f71eebf6e7b070572aa399b185dbdc8a76
|
||||
> issues-5 true true true true 100.0 d0bb08f71eebf6e7b070572aa399b185dbdc8a76
|
||||
> projects-2 true true true true 100.0 c5cac1c4b3c66d42e609d088d174dbc3dd44469a
|
||||
> pull-requests-6 true true true true 100.0 6a466ad6b896a3499509990979bf9a18d7d41de3
|
||||
> repos-6 true true true true 100.0 6c8b5fbba0fc1e409558db411d05e092c1387082
|
||||
> users-5 true true true true 100.0 38984875552bb826c9ec42999f409cb2e95556eb
|
||||
> wikis-4 true true true true 100.0 2613dec44bd14e14577803ac1f9e4b7e07a7c234
|
||||
```
|
||||
|
||||
#### ghe-legacy-github-services-report
|
||||
|
||||
Esta utilidad enumera los repositorios de tu aparato que usan Servicios {% data variables.product.prodname_dotcom %}, un método de integración que se interrumpirá el 1 de octubre de 2018. Los usuarios de tu aparato pueden tener configurados servicios {% data variables.product.prodname_dotcom %} para crear notificaciones de subidas a determinados repositorios. Para obtener más información, consulta la sección "[Anunciar la obsoletización de servicios de {% data variables.product.prodname_dotcom %} ](https://developer.github.com/changes/2018-04-25-github-services-deprecation/)" en {% data variables.product.prodname_blog %} o la sección "[Reemplazar servicios de {% data variables.product.prodname_dotcom %}](/v3/guides/replacing-github-services/)". Para obtener más información acerca de este comando o para conocer otras opciones, utiliza la marca `-h`.
|
||||
|
||||
```shell
|
||||
ghe-legacy-github-services-report
|
||||
|
||||
```
|
||||
|
||||
#### ghe-logs-tail
|
||||
|
||||
Esta utilidad te permite hacer un registro final de todos los archivos de registro relevantes desde tu instalación. Puedes aprobar opciones para limitar los registros a conjuntos específicos. Utiliza la marca -h para más opciones.
|
||||
|
||||
```shell
|
||||
ghe-logs-tail
|
||||
```
|
||||
|
||||
#### ghe-maintenance
|
||||
|
||||
Esta utilidad te permite controlar el estado del modo de mantenimiento de la instalación. Está diseñada para que la use principalmente la {% data variables.enterprise.management_console %} en segundo plano, pero también se puede usar directamente.
|
||||
|
||||
```shell
|
||||
ghe-maintenance -h
|
||||
```
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.17" %}
|
||||
#### ghe-motd
|
||||
|
||||
Esta utilidad vuelve a mostrar el mensaje del día (MOTD) en el que los administradores ven cuando se accede a la isntancia a través del shell administrativo. El resultado contiene un resumen del estado de la instancia.
|
||||
|
||||
```shell
|
||||
ghe-motd
|
||||
```
|
||||
{% endif %}
|
||||
|
||||
#### ghe-nwo
|
||||
|
||||
Esta utilidad genera un nombre y propietario de repositorio en función del Id. del repositorio.
|
||||
|
||||
```shell
|
||||
ghe-nwo <em>REPOSITORY_ID</em>
|
||||
```
|
||||
|
||||
#### ghe-org-admin-promote
|
||||
|
||||
Usa este comando para otorgarles privilegios de propietario de la organización a los usuarios con privilegios de administrador del sitio sobre el aparato o para otorgarle privilegios de propietario de la organización a cualquier usuario único de una organización única. Debes especificar un usuario o una organización. El comando `ghe-org-admin-promote` siempre pedirá confirmación antes de ejecutarse, a menos que uses la marca `-y` para omitir la confirmación.
|
||||
|
||||
Puedes usar las siguientes opciones con la utilidad:
|
||||
|
||||
- La marca `-u` especifica un nombre de usuario. Usa esta marca para otorgarle privilegios de propietario de la organización a un usuario específico. Omite la marca `-u` para promover todos los administradores del sitio a la organización específica.
|
||||
- La marca `-o` especifica una organización. Usa esta marca para otorgar privilegios de propietario en una organización específica. Omite la marca `-o` para otorgarle permisos de propietario en todas las organizaciones al administrador del sitio especificado.
|
||||
- La marca `-a` otorga privilegios de propietario en todas las organizaciones a todos los administradores del sitio.
|
||||
- La marca `-y` omite la confirmación manual.
|
||||
|
||||
Esta utilidad no puede promover una cuenta de usuario que no sea administrador del sitio a propietario de todas las organizaciones. Puedes promover una cuenta de usuario común a administrador del sitio con [ghe-user-promote](#ghe-user-promote).
|
||||
|
||||
Otorga privilegios de propietario de la organización en una organización específica a un usuario único
|
||||
|
||||
```shell
|
||||
ghe-org-admin-promote -u <em>USERNAME</em> -o <em>ORGANIZATION</em>
|
||||
```
|
||||
|
||||
Otorga privilegios de propietario de la organización en todas las organizaciones a un administrador del sitio específico
|
||||
|
||||
```shell
|
||||
ghe-org-admin-promote -u <em>USERNAME</em>
|
||||
```
|
||||
|
||||
Otorga privilegios de propietario de la organización en una organización específica a todos los administradores del sitio
|
||||
|
||||
```shell
|
||||
ghe-org-admin-promote -o <em>ORGANIZATION</em>
|
||||
```
|
||||
|
||||
Otorga privilegios de propietario de la organización en todas las organizaciones a todos los administradores del sitio
|
||||
|
||||
```shell
|
||||
ghe-org-admin-promote -a
|
||||
```
|
||||
|
||||
#### ghe-reactivate-admin-login
|
||||
|
||||
Usa este comando para desbloquear de inmediato la {% data variables.enterprise.management_console %} después de 10 intentos fallidos de inicio de sesión en el transcurso de 10 minutos.
|
||||
|
||||
```shell
|
||||
$ ghe-reactivate-admin-login
|
||||
```
|
||||
|
||||
#### ghe-resque-info
|
||||
|
||||
Esta utilidad muestra información sobre los trabajos en segundo plano, tanto activos como en cola. Proporciona las mismas cantidades de recuento de trabajos que la barra de estado del administrador que aparece en la parte superior de cada página.
|
||||
|
||||
Esta utilidad puede ayudar a identificar si el servidor Resque está teniendo problemas para procesar los trabajos de segundo plano. Cualquiera de los siguientes escenarios puede ser indicativo de un problema con Reque:
|
||||
|
||||
* Aumenta la cantidad de trabajos de segundo plano, pero los trabajos activos siguen siendo los mismos.
|
||||
* Las fuentes de eventos no se actualizan.
|
||||
* Los webhooks no se están activando.
|
||||
* La interfaz web no se actualiza después de una subida de Git.
|
||||
|
||||
Si sospechas que Resque está fallando, contáctate con {% data variables.contact.contact_ent_support %} para obtener ayuda.
|
||||
|
||||
Con este comando, también puedes detener o reanudar los trabajos en cola.
|
||||
|
||||
```shell
|
||||
$ ghe-resque-info
|
||||
# detalla las colas y la cantidad de trabajos actualmente en cola
|
||||
$ ghe-resque-info -p <em>QUEUE</em>
|
||||
# detiene la cola especificada
|
||||
$ ghe-resque-info -r <em>QUEUE</em>
|
||||
# reanuda la cola especificada
|
||||
```
|
||||
|
||||
#### ghe-saml-mapping-csv
|
||||
|
||||
Esta utilidad puede ayudar a mapear los registros de SAML.
|
||||
|
||||
Para crear un archivo CSV que contenga todo el mapeo de SAML para tus usuarios de {% data variables.product.product_name %}:
|
||||
```shell
|
||||
$ ghe-saml-mapping-csv -d
|
||||
```
|
||||
|
||||
Para realizar una simulación de actualización de mapeo de SAML con nuevos valores:
|
||||
```shell
|
||||
$ ghe-saml-mapping-csv -u -n -f /path/to/file
|
||||
```
|
||||
|
||||
Para actualizar el mapeo de SAML con nuevos valores:
|
||||
```shell
|
||||
$ ghe-saml-mapping-csv -u -f /path/to/file
|
||||
```
|
||||
|
||||
#### ghe-service-list
|
||||
|
||||
Esta utilidad enumera todos los servicios que se han iniciado o detenido (en ejecución o en espera) en tu aparato.
|
||||
|
||||
```shell
|
||||
$ ghe-service-list
|
||||
start/running
|
||||
- github-resqued, process 12711
|
||||
- github-unicorn, process 12726
|
||||
- github-gitauth, process 12743
|
||||
- git-daemon, process 12755
|
||||
- babeld, process 12771
|
||||
- github-svn-proxy, process 12802
|
||||
- gist-unicorn, process 12832
|
||||
- gist-resqued, process 12881
|
||||
- render-unicorn, process 12939
|
||||
- hookshot-unicorn, process 13076
|
||||
- nodeload2, process 13192
|
||||
- slumlord-unicorn, process 13304
|
||||
- ghe-storage, process 2012
|
||||
- enterprise-manage-unicorn, process 2024
|
||||
- enterprise-manage-resque, process 2053
|
||||
|
||||
stop/waiting
|
||||
- ghe-replica-mode
|
||||
```
|
||||
|
||||
{% tip %}
|
||||
|
||||
Los nombres de servicio que se generen con este comando se pueden utilizar con comandos [`systemctl`](https://www.freedesktop.org/software/systemd/man/systemctl.html) para detener, iniciar o restablecer estos servicios manualmente si así se requiere. Por ejemplo:
|
||||
|
||||
```shell
|
||||
$ sudo systemctl restart github-resqued
|
||||
```
|
||||
|
||||
Detener los servicios generará un tiempo de inactividad en tu instalación, así que recomendamos que te contactes con {% data variables.contact.contact_ent_support %} antes de detener o reiniciar cualquier servicio.
|
||||
|
||||
{% endtip %}
|
||||
|
||||
#### ghe-set-password
|
||||
|
||||
Con `ghe-set-password`, puedes establecer una contraseña nueva para autenticarla en la [{% data variables.enterprise.management_console %}](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-management-console).
|
||||
|
||||
```shell
|
||||
ghe-set-password <new_password>
|
||||
```
|
||||
|
||||
#### ghe-ssh-check-host-keys
|
||||
|
||||
Esta utilidad compara las claves del host de SSH existentes con la lista de claves del host de SHH filtradas conocidas.
|
||||
|
||||
```shell
|
||||
$ ghe-ssh-check-host-keys
|
||||
```
|
||||
|
||||
Si se encuentra una clave del host filtrada, se cierra la utilidad en un estado `1` y con un mensaje:
|
||||
```shell
|
||||
> Una o más de tus claves del host de SHH aparecen en la lista negra.
|
||||
> Restablece tus claves del host usando ghe-ssh-roll-host-keys.
|
||||
```
|
||||
|
||||
Si no se encontró una clave del host filtrada, se cierra la utilidad en un estado `0` y con un mensaje:
|
||||
```shell
|
||||
> Las claves del host de SSH no se encontraron en la lista negra de claves del host de SSH.
|
||||
> No se requieren/recomiendan más pasos en este momento.
|
||||
```
|
||||
|
||||
#### ghe-ssh-roll-host-keys
|
||||
|
||||
Esta utilidad rota las claves del host de SSH y las reemplaza con claves que se generan nuevas.
|
||||
|
||||
```shell
|
||||
$ sudo ghe-ssh-roll-host-keys
|
||||
¿Quieres proceder con la rotación de claves del host de SSH? Esto eliminará las
|
||||
las claves existentes en /etc/ssh/ssh_host_* y generará nuevas. [y/N]
|
||||
|
||||
# Presiona 'Y' para confirmar la eliminación o utiliza el modificador -y para omitir esta pregunta
|
||||
|
||||
> Las claves del host de SSH se han rotado con éxito.
|
||||
```
|
||||
|
||||
#### ghe-ssh-weak-fingerprints
|
||||
|
||||
Esta utilidad genera un informe de claves de SSH débiles conocidas que están almacenadas en el aparato {% data variables.product.prodname_enterprise %}. Opcionalmente, puedes revocar las claves de usuario como acción masiva. La utilidad informará las claves de sistema débiles que puedes revocar en forma manual en la [{% data variables.enterprise.management_console %}](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-management-console).
|
||||
|
||||
```shell
|
||||
# Imprime un informe de usuario y claves SSH del sistema débiles
|
||||
$ ghe-ssh-weak-fingerprints
|
||||
|
||||
# Revoca todas las claves de usuario débiles
|
||||
$ ghe-ssh-weak-fingerprints --revoke
|
||||
```
|
||||
|
||||
#### ghe-ssl-acme
|
||||
|
||||
Esta utilidad te permite instalar un certificado de Let's Encrypt en tu aparato {% data variables.product.prodname_enterprise %}. Para obtener más información, consulta "[Configurar TLS](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-tls)."
|
||||
|
||||
Puede utilizar la etiqueta `-x` para eliminar la configuración ACME.
|
||||
|
||||
```shell
|
||||
ghe-ssl-acme -e
|
||||
```
|
||||
|
||||
#### ghe-ssl-ca-certificate-install
|
||||
|
||||
Esta utilidad te termine instalar un certificado CA de raíz personalizado en tu servidor {% data variables.product.prodname_enterprise %}. El certificado debe tener un formato PEM. Además, si tu proveedor de certificación incluye varios certificados CA en un único archivo, debes separarlos en archivos individuales que luego pasarás a `ghe-ssl-ca-certificate-install` de a uno por vez.
|
||||
|
||||
Ejecuta esta utilidad para agregar una cadena de certificación para la verificación de firma de confirmación S/MIME. Para obtener más información, consulta "[Acerca de la verificación de firma de confirmación](/enterprise/{{ currentVersion }}/user/articles/about-commit-signature-verification/)".
|
||||
|
||||
Ejecuta esta utilidad cuando {% data variables.product.product_location_enterprise %} no pueda conectarse con otro servidor porque el segundo está usando un certificado SSL autofirmado o un certificado SSL para el cual no proporciona el paquete de soporte CA necesario. Una manera de confirmar esto es ejecutar `openssl s_client -connect host:port -verify 0 -CApath /etc/ssl/certs` desde {% data variables.product.product_location_enterprise %}. Si el certificado SSL del servidor remoto se puede verificar, tu `SSL-Session` debe tener un código de retorno de 0, como se muestra a continuación.
|
||||
|
||||
```
|
||||
SSL-Session:
|
||||
Protocol : TLSv1
|
||||
Cipher : AES128-SHA
|
||||
Session-ID: C794EBCC3CBC10F747C9AFC029C03C1048FC99CFC34D13D7444E0F267C58DF4C
|
||||
Session-ID-ctx:
|
||||
Master-Key: 02A7C47CFD6EEC87D3C710E9DD87390E04EF82DDD7514AE03127D5DC1945FC0CAEFB5395791AEA598667EFA61B9EA8C5
|
||||
Key-Arg : None
|
||||
Start Time: 1394581597
|
||||
Timeout : 300 (sec)
|
||||
Verify return code: 0 (ok)
|
||||
```
|
||||
|
||||
Si, de lo contrario, el certificado SSL del servidor remoto *no* se puede verificar, tu `SSL-Session` debería tener un código de retorno distinto de cero:
|
||||
|
||||
```
|
||||
SSL-Session:
|
||||
Protocol : TLSv1
|
||||
Cipher : AES128-SHA
|
||||
Session-ID: 82CB288051A6DB66094C50A69CF1292AEE7E54C6B01B659B98AB336F8C33863E
|
||||
Session-ID-ctx:
|
||||
Master-Key: 01B025B2F764043A27919A8D1355AAECD8844FF0831B1D664042334790574A6F4025BAB085D4ED71D71AAB3091B849E5
|
||||
Key-Arg : None
|
||||
Start Time: 1394581782
|
||||
Timeout : 300 (sec)
|
||||
Verify return code: 27 (certificate not trusted)
|
||||
```
|
||||
|
||||
Puedes usar estas opciones adicionales con la utilidad:
|
||||
- La marca `-r` te permite desinstalar un certificado CA.
|
||||
- La marca `-h` muestra más información de uso.
|
||||
|
||||
```shell
|
||||
ghe-ssl-ca-certificate-install -c <em>/path/to/certificate</em>
|
||||
```
|
||||
|
||||
#### ghe-ssl-generate-csr
|
||||
|
||||
Esta utilidad te permite generar una clave privada y una solicitud de firma de certificado (CSR), que puedes compartir con una autoridad de certificación comercial o privada para obtener un certificado válido para utilizar con tu instancia. Para obtener más información, consulta "[Configurar TLS](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-tls)."
|
||||
|
||||
Para obtener más información acerca de este comando o para conocer otras opciones, utiliza la marca `-h`.
|
||||
|
||||
```shell
|
||||
ghe-ssl-generate-csr
|
||||
```
|
||||
|
||||
#### ghe-storage-extend
|
||||
|
||||
Algunas plataformas exigen este script para ampliar el volumen de usuarios. Para obtener más información, consulta "[Aumentar la capacidad de almacenamiento](/enterprise/admin/guides/installation/increasing-storage-capacity/)".
|
||||
|
||||
```shell
|
||||
$ ghe-storage-extend
|
||||
```
|
||||
|
||||
#### ghe-version
|
||||
|
||||
Esta utilidad imprime la versión, la plataforma y la compilación de {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
```shell
|
||||
$ ghe-version
|
||||
```
|
||||
|
||||
#### ghe-webhook-logs
|
||||
|
||||
Esta utilidad genera registros de entregas de webhooks para que los administradores los revisen e identifiquen cualquier problema.
|
||||
|
||||
```shell
|
||||
ghe-webhook-logs
|
||||
```
|
||||
|
||||
Para mostrar todas las entregas fallidas del gancho en el día anterior:
|
||||
```shell
|
||||
ghe-webhook-logs -f -a <em>YYYYMMDD</em>
|
||||
```
|
||||
|
||||
Para mostrar todos los resultados, carga útil y excepciones del gancho para la entrega:
|
||||
```shell
|
||||
ghe-webhook-logs -g <em>delivery-guid</em> -v
|
||||
```
|
||||
|
||||
Para mostrar las entregas globales de webhook:
|
||||
```shell
|
||||
ghe-webhook-logs --global
|
||||
```
|
||||
|
||||
### Agrupación
|
||||
|
||||
#### estado ghe-dpages
|
||||
|
||||
Esta utilidad le permite gestionar el servidor {% data variables.product.prodname_pages %} distribuido.
|
||||
|
||||
```shell
|
||||
$ ghe-cluster-status
|
||||
```
|
||||
|
||||
#### ghe-cluster-support-bundle
|
||||
|
||||
Esta utilidad crea un tarball de paquetes de soporte que contiene registros importantes de cada nodo, tanto en la configuración de Replicación geográfica como de Agrupación.
|
||||
|
||||
Por defecto, el comando crea el tarball en */tmp*, pero también puedes tener `cat` el tarball en `STDOUT` para una fácil transmisión por SSH. Esto es útil en caso de que la UI web no responda o que no funcione descargar un paquete de soporte desde */setup/support*. Debes usar este comando si quieres generar un paquete *ampliado* que contenga registros antiguos. También puedes usar este comando para cargar el paquete de soporte de agrupación directamente para {% data variables.product.prodname_enterprise %} recibir asistencia.
|
||||
|
||||
Para crear un paquete estándar:
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>hostname</em> -- 'ghe-cluster-support-bundle -o' > cluster-support-bundle.tgz
|
||||
```
|
||||
|
||||
Para crear un paquete extendido:
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>hostname</em> -- 'ghe-cluster-support-bundle -x -o' > cluster-support-bundle.tgz
|
||||
```
|
||||
|
||||
Para enviar un paquete a {% data variables.contact.github_support %}:
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>hostname</em> -- 'ghe-cluster-support-bundle -u'
|
||||
```
|
||||
|
||||
Para mandar un paquete a {% data variables.contact.github_support %} y asociarlo con un ticket:
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>hostname</em> -- 'ghe-cluster-support-bundle -t <em>ticket-id</em>'
|
||||
```
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
#### ghe-cluster-failover
|
||||
|
||||
Fail over from active cluster nodes to passive cluster nodes. For more information, see "[Initiating a failover to your replica cluster](/enterprise/admin/enterprise-management/initiating-a-failover-to-your-replica-cluster)."
|
||||
|
||||
```shell
|
||||
ghe-cluster-failover
|
||||
```
|
||||
{% endif %}
|
||||
|
||||
#### ghe-dpages
|
||||
|
||||
Esta utilidad le permite gestionar el servidor {% data variables.product.prodname_pages %} distribuido.
|
||||
|
||||
```shell
|
||||
ghe-dpages
|
||||
```
|
||||
|
||||
Para mostrar un resumen de la ubicación y salud del repositorio:
|
||||
```shell
|
||||
estado ghe-dpages
|
||||
```
|
||||
|
||||
Para evacuar un servicio de almacenamiento {% data variables.product.prodname_pages %} antes de evacuar un nodo de agrupación:
|
||||
``` shell
|
||||
ghe-dpages evacuate pages-server-<uuid>
|
||||
```
|
||||
|
||||
#### ghe-spokes
|
||||
|
||||
Esta utilidad te permite administrar las tres copias de cada repositorio en los servidores de git distribuidos.
|
||||
|
||||
```shell
|
||||
ghe-spokes
|
||||
```
|
||||
|
||||
Para mostrar un resumen de la ubicación y salud del repositorio:
|
||||
|
||||
```shell
|
||||
estado ghe-spokes
|
||||
```
|
||||
|
||||
Para mostrar los servidores en donde el repositorio se encuentra almacenado:
|
||||
|
||||
```shell
|
||||
ruta ghe-spokes
|
||||
```
|
||||
|
||||
Para evacuar los servicios de almacenamiento en un nodo de la agrupación:
|
||||
|
||||
``` shell
|
||||
ghe-spokes server evacuate git-server-<uuid>
|
||||
```
|
||||
|
||||
#### ghe-storage
|
||||
|
||||
Esta utilidad te permite evacuar todos los servicios de almacenamiento antes de evacuar un nodo de agrupación.
|
||||
|
||||
``` shell
|
||||
ghe-storage evacuate storage-server-<uuid>
|
||||
```
|
||||
|
||||
### Git
|
||||
|
||||
#### ghe-btop
|
||||
|
||||
Una interfaz del tipo `top` para las operaciones actuales de Git.
|
||||
|
||||
```shell
|
||||
ghe-btop [ <port number> | --help | --usage ]
|
||||
```
|
||||
|
||||
#### ghe-repo
|
||||
|
||||
Esta utilidad te permite cambiar a un directorio del repositorio y abrir un shell interactivo como el de usuario de `git`. Puedes realizar inspecciones o mantenimientos manuales de un repositorio a través de comandos como `git-*` o `git-nw-*`.
|
||||
|
||||
```shell
|
||||
ghe-repo <em>username</em>/<em>reponame</em>
|
||||
```
|
||||
|
||||
#### ghe-repo-gc
|
||||
|
||||
Esta utilidad reempaqueta en forma manual una red de repositorios para optimizar el almacenamiento de paquetes. Si tienes un repositorio grande, ejecutar este comando puede ayudar a reducir su tamaño general. {% data variables.product.prodname_enterprise %} ejecuta en forma automática este comando durante toda tu interacción con una red de repositorios.
|
||||
|
||||
Puedes agregar el argumento opcional `--prune` para eliminar los objetos de Git inaccesibles que no están referenciados desde una rama, una etiqueta o cualquier otra referencia. Esto es útil, en especial, para eliminar de inmediato [información sensible previamente suprimida](/enterprise/user/articles/remove-sensitive-data/).
|
||||
|
||||
```shell
|
||||
ghe-repo-gc <em>username</em>/<em>reponame</em>
|
||||
```
|
||||
|
||||
### Importar y exportar
|
||||
|
||||
#### ghe-migrator
|
||||
|
||||
`ghe-migrator` es una herramienta de alta fidelidad que te ayuda a realizar migraciones desde una instancia de GitHub a otra. Puedes consolidar tus instancias o mover tu organización, usuarios, equipos y repositorios desde GitHub.com a {% data variables.product.prodname_enterprise %}.
|
||||
|
||||
Para obtener más información, consulta nuestra guía en [migrar datos de usuarios, organizaciones y repositorios](/enterprise/admin/guides/migrations/).
|
||||
|
||||
#### git-import-detect
|
||||
|
||||
Con una URL, detecta qué tipo de sistema de administración de control de fuente hay en el otro extremo. Durante una importación manual, probablemente ya lo sepas, pero puede ser muy útil en scripts automáticos.
|
||||
```shell
|
||||
git-import-detect
|
||||
```
|
||||
|
||||
#### git-import-hg-raw
|
||||
|
||||
Esta utilidad importa un repositorio de Mercurial a este repositorio de Git. Para obtener más información, consulta "[importar datos de sistemas de control de versiones de terceros](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/)."
|
||||
```shell
|
||||
git-import-hg-raw
|
||||
```
|
||||
|
||||
#### git-import-svn-raw
|
||||
|
||||
Esta utilidad importa los datos del archivo y el historial de Subversion en una rama de Git. Es una copia exacta del árbol, que ignora cualquier distinción de tronco o rama. Para obtener más información, consulta "[importar datos de sistemas de control de versiones de terceros](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/)."
|
||||
```shell
|
||||
git-import-svn-raw
|
||||
```
|
||||
|
||||
#### git-import-tfs-raw
|
||||
|
||||
Esta utilidad importa desde el Control de Versiones de Team Foundation. Para obtener más información, consulta "[importar datos de sistemas de control de versiones de terceros](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/)."
|
||||
```shell
|
||||
git-import-tfs-raw
|
||||
```
|
||||
|
||||
#### git-import-rewrite
|
||||
|
||||
Esta utilidad reescribe el repositorio importado. Esto te permite renombrar a los autores y, en el caso de TFS y Subversion, produce ramas de Git basadas en carpetas. Para obtener más información, consulta "[importar datos de sistemas de control de versiones de terceros](/enterprise/admin/guides/migrations/importing-data-from-third-party-version-control-systems/)."
|
||||
```shell
|
||||
git-import-rewrite
|
||||
```
|
||||
|
||||
### Asistencia
|
||||
|
||||
#### ghe-diagnostics
|
||||
|
||||
Esta utilidad realiza varias comprobaciones y reúne información acerca de tu instalación que puedes enviar a la asistencia para que te ayude a diagnosticar los problemas que tienes.
|
||||
|
||||
Actualmente, el resultado de esta utilidad es similar a descargar la información de diagnóstico en la {% data variables.enterprise.management_console %}, pero con el tiempo se pueden agregar otras mejoras que no están disponibles en la UI web. Para obtener más información, consulta "[Crear y compartir archivos de diagnóstico](/enterprise/admin/guides/enterprise-support/providing-data-to-github-support#creating-and-sharing-diagnostic-files)."
|
||||
|
||||
```shell
|
||||
ghe-diagnostics
|
||||
```
|
||||
|
||||
#### ghe-support-bundle
|
||||
|
||||
{% data reusables.enterprise_enterprise_support.use_ghe_cluster_support_bundle %}
|
||||
Esta utilidad crea un tarball de paquetes de soporte que contiene registros importantes de tu instancia.
|
||||
|
||||
Por defecto, el comando crea el tarball en */tmp*, pero también puedes tener `cat` el tarball en `STDOUT` para una fácil transmisión por SSH. Esto es útil en caso de que la UI web no responda o que no funcione descargar un paquete de soporte desde */setup/support*. Debes usar este comando si quieres generar un paquete *ampliado* que contenga registros antiguos. También puedes usar este comando para cargar el paquete de soporte directamente en la asistencia de {% data variables.product.prodname_enterprise %}.
|
||||
|
||||
Para crear un paquete estándar:
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>hostname</em> -- 'ghe-support-bundle -o' > support-bundle.tgz
|
||||
```
|
||||
|
||||
Para crear un paquete extendido:
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>hostname</em> -- 'ghe-support-bundle -x -o' > support-bundle.tgz
|
||||
```
|
||||
|
||||
Para enviar un paquete a {% data variables.contact.github_support %}:
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>hostname</em> -- 'ghe-support-bundle -u'
|
||||
```
|
||||
|
||||
Para mandar un paquete a {% data variables.contact.github_support %} y asociarlo con un ticket:
|
||||
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>hostname</em> -- 'ghe-support-bundle -t <em>ticket-id</em>'
|
||||
```
|
||||
|
||||
#### ghe-support-upload
|
||||
|
||||
Esta utilidad envía información desde tu aparato a la asistencia de {% data variables.product.prodname_enterprise %}. Puedes especificar un archivo local u ofrecer una transmisión de hasta 100MB de datos a través de `STDIN`. Opcionalmente, los datos cargados se pueden asociar a un ticket de asistencia.
|
||||
|
||||
Para enviar un archivo a {% data variables.contact.github_support %} y asociarlo con un ticket:
|
||||
```shell
|
||||
ghe-support-upload -f <em>path/to/your/file</em> -t <em>ticket-id</em>
|
||||
```
|
||||
|
||||
Para subir datos a través de `STDIN` y asociarlos con un ticket:
|
||||
```shell
|
||||
<em>ghe-repl-status -vv</em> | ghe-support-upload -t <em>ticket-id</em> -d "<em>Verbose Replication Status</em>"
|
||||
```
|
||||
|
||||
En este ejemplo, `ghe-repl-status -vv` envía información de estado detallada desde un aparato réplica. Debes reemplazar `ghe-repl-status -vv` con los datos específicos que quieras transmitir a `STDIN` y `Verbose Replication Status` (Estado de replicación detallado) con una breve descripción de los datos. {% data reusables.enterprise_enterprise_support.support_will_ask_you_to_run_command %}
|
||||
|
||||
### Actualizar {% data variables.product.prodname_ghe_server %}
|
||||
|
||||
#### ghe-upgrade
|
||||
|
||||
Esta utilidad instala o verifica un paquete actualizado. También puedes usar esta utilidad para revertir un lanzamiento de patch si falla o se interrumpe una actualización. Para obtener más información, consulta "[Actualizar {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-github-enterprise-server/)".
|
||||
|
||||
Para verificar un paquete de mejora:
|
||||
```shell
|
||||
ghe-upgrade --verify <em>UPGRADE-PACKAGE-FILENAME</em>
|
||||
```
|
||||
|
||||
Para instalar un paquete de mejora:
|
||||
```shell
|
||||
ghe-upgrade <em>UPGRADE-PACKAGE-FILENAME</em>
|
||||
```
|
||||
|
||||
{% data reusables.enterprise_installation.command-line-utilities-ghe-upgrade-rollback %}
|
||||
|
||||
#### ghe-upgrade-scheduler
|
||||
|
||||
Esta utilidad administra la instalación programada de paquetes de actualización. Puedes mostrar, crear nuevas o eliminar las actualizaciones programadas. Debes crear cronogramas usando expresiones cron. Para obtener más información, consulta [Entrada de Cron en Wikipedia](https://en.wikipedia.org/wiki/Cron#Overview).
|
||||
|
||||
Para programar una nueva instalación para un paquete:
|
||||
```shell
|
||||
$ ghe-upgrade-scheduler -c "0 2 15 12 *" <em>UPGRADE-PACKAGE-FILENAME</em>
|
||||
```
|
||||
|
||||
Para mostrar las instalaciones programadas para un paquete:
|
||||
```shell
|
||||
$ ghe-upgrade-scheduler -s <em>UPGRADE PACKAGE FILENAME</em>
|
||||
> 0 2 15 12 * /usr/local/bin/ghe-upgrade -y -s <em>UPGRADE-PACKAGE-FILENAME</em> > /data/user/common/<em>UPGRADE-PACKAGE-FILENAME</em>.log 2>&1
|
||||
```
|
||||
|
||||
Para eliminar las instalaciones programadas para un paquete:
|
||||
```shell
|
||||
$ ghe-upgrade-scheduler -r <em>UPGRADE PACKAGE FILENAME</em>
|
||||
```
|
||||
|
||||
#### ghe-update-check
|
||||
|
||||
Esta utilidad buscará si hay disponible un nuevo lanzamiento de patch de {% data variables.product.prodname_enterprise %}. Si lo hay, y si hay espacio disponible en tu instancia, descargará el paquete. Por defecto, se guarda en */var/lib/ghe-updates*. Luego, un administrador puede [realizar la actualización](/enterprise/admin/guides/installation/updating-the-virtual-machine-and-physical-resources/).
|
||||
|
||||
En */var/lib/ghe-updates/ghe-update-check.status* puedes acceder a un archivo que contiene el estado de la descarga.
|
||||
|
||||
Para buscar el último lanzamiento de {% data variables.product.prodname_enterprise %}, usa el modificador `-i`.
|
||||
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>hostname</em> -- 'ghe-update-check'
|
||||
```
|
||||
|
||||
### Gestión de usuarios
|
||||
|
||||
#### ghe-license-usage
|
||||
|
||||
Esta utilidad exporta una lista de los usuarios de la instalación en formato JSON. Si tu instancia se conecta a {% data variables.product.prodname_ghe_cloud %}, {% data variables.product.prodname_ghe_server %} utiliza esta información para reportar la información de licencia a {% data variables.product.prodname_ghe_cloud %}. Para obtener más información, consulta la sección "[Conectar {% data variables.product.prodname_ghe_server %} a{% data variables.product.prodname_ghe_cloud %}](/enterprise/admin/installation/connecting-github-enterprise-server-to-github-enterprise-cloud)".
|
||||
|
||||
Predeterminadamente, la lista de usuarios en el JSON resultante se encuentra cifrada. Usa la marca `-h` para obtener más opciones.
|
||||
|
||||
```shell
|
||||
ghe-license-usage
|
||||
```
|
||||
|
||||
#### ghe-org-membership-update
|
||||
|
||||
Esta utilidad aplicará la visibilidad de la membresía a la organización predeterminada mostrando todos los miembros de tu instancia. Para obtener más información, consulta la sección "[Configurar la visibilidad para la membrecía de la organización](/enterprise/{{ currentVersion }}/admin/guides/user-management/configuring-visibility-for-organization-membership)". Las opciones de configuración son `public` o `private`.
|
||||
|
||||
```shell
|
||||
ghe-org-membership-update --visibility=<em>SETTING</em>
|
||||
```
|
||||
|
||||
#### ghe-user-csv
|
||||
|
||||
Esta utilidad exporta una lista de todos los usuarios en la instalación a un formato CSV. El archivo CSV incluye las direcciones de correo electrónico, el tipo de usuario que son (p. ej., administrador, usuario), cuántos repositorios tienen, cuántas claves SSH tienen, la cantidad de membresías a la organización, la última dirección IP que inició sesión, etc. Usa la marca `-h` para obtener más opciones.
|
||||
|
||||
```shell
|
||||
ghe-user-csv -o > users.csv
|
||||
```
|
||||
|
||||
#### ghe-user-demote
|
||||
|
||||
Esta utilidad baja de categoría al usuario especificado del estado de administrador al de usuario normal. Recomendamos usar la UI web para realizar esta acción, pero proporcionamos esta utilidad en caso de que la utilidad `ghe-user-promote` se ejecute con error, y debas volver a bajar de categoría a un usuario desde la CLI (interfaz de línea de comandos).
|
||||
|
||||
```shell
|
||||
ghe-user-demote <em>some-user-name</em>
|
||||
```
|
||||
|
||||
#### ghe-user-promote
|
||||
|
||||
Esta utilidad promueve la cuenta de usuario especificada a administrador del sitio.
|
||||
|
||||
```shell
|
||||
ghe-user-promote <em>some-user-name</em>
|
||||
```
|
||||
|
||||
#### ghe-user-suspend
|
||||
|
||||
Esta utilidad suspende el usuario especificado, evitando que inicie sesión, suba o extraiga datos de tu repositorio.
|
||||
|
||||
```shell
|
||||
ghe-user-suspend <em>some-user-name</em>
|
||||
```
|
||||
|
||||
#### ghe-user-unsuspend
|
||||
|
||||
Esta utilidad anula la suspensión del usuario especificado, otorgándole acceso para iniciar sesión, subir o extraer datos de tu repositorio.
|
||||
|
||||
```shell
|
||||
ghe-user-unsuspend <em>some-user-name</em>
|
||||
```
|
||||
@@ -1,22 +0,0 @@
|
||||
---
|
||||
title: Configurar aplicaciones
|
||||
intro: 'Puedes establecer configuraciones de solicitud interna para {% data variables.product.product_location_enterprise %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/configuring-applications
|
||||
- /enterprise/admin/configuration/configuring-applications
|
||||
- /admin/configuration/configuring-applications
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
---
|
||||
### Ajustar el almacenamiento en caché de las imágenes
|
||||
|
||||
Puedes elegir la cantidad de tiempo que {% data variables.product.product_location_enterprise %} almacena en caché los avatares. Cuando aumentas el tiempo de almacenamiento en caché, aumentas la cantidad de tiempo que tardará en cargar el avatar de un usuario. Configurar el tiempo de almacenamiento en caché con un valor demasiado bajo puede sobrecargar {% data variables.product.product_location_enterprise %} los procesos de trabajo.
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
3. En la barra lateral izquierda, haz clic en **Applications** (Aplicaciones). 
|
||||
4. Debajo de "Avatar image cache time (seconds)" (Tiempo de almacenamiento en caché del avatar [en segundos]), escribe la cantidad de segundos que quieres que {% data variables.product.product_location_enterprise %} almacene en caché las imágenes de avatar.
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
@@ -1,115 +0,0 @@
|
||||
---
|
||||
title: Configurar copias de seguridad en tu aparato
|
||||
redirect_from:
|
||||
- /enterprise/admin/categories/backups-and-restores/
|
||||
- /enterprise/admin/articles/backup-and-recovery/
|
||||
- /enterprise/admin/articles/backing-up-github-enterprise/
|
||||
- /enterprise/admin/articles/restoring-github-enterprise/
|
||||
- /enterprise/admin/articles/backing-up-repository-data/
|
||||
- /enterprise/admin/articles/restoring-enterprise-data/
|
||||
- /enterprise/admin/articles/restoring-repository-data/
|
||||
- /enterprise/admin/articles/backing-up-enterprise-data/
|
||||
- /enterprise/admin/guides/installation/backups-and-disaster-recovery/
|
||||
- /enterprise/admin/installation/configuring-backups-on-your-appliance
|
||||
- /enterprise/admin/configuration/configuring-backups-on-your-appliance
|
||||
- /admin/configuration/configuring-backups-on-your-appliance
|
||||
intro: 'Como parte de un plan de recuperación ante desastres, puedes proteger los datos de producción en {% data variables.product.product_location_enterprise %} configurando copias de seguridad automáticas.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Backups
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
---
|
||||
### Acerca de {% data variables.product.prodname_enterprise_backup_utilities %}
|
||||
|
||||
{% data variables.product.prodname_enterprise_backup_utilities %} es un sistema de copias de seguridad que instalas en un host separado, el cual realiza instantáneas de copias de seguridad de {% data variables.product.product_location_enterprise %} en intervalos regulares a través de una conexión de red SSH segura. Puedes utilizar una instantánea para restablecer una instancia existente del {% data variables.product.prodname_ghe_server %} a su estado previo desde el host de copias de seguridad.
|
||||
|
||||
Solo se transferirán por la red y ocuparán espacio de almacenamiento físico adicional los datos que se hayan agregado después de esa última instantánea. Para minimizar el impacto en el rendimiento, las copias de seguridad se realizan en línea con la prioridad CPU/IO más baja. No necesitas programar una ventana de mantenimiento para realizar una copia de seguridad.
|
||||
|
||||
Para obtener información más detallada sobre las funciones, los requisitos y el uso avanzado, consulta [{% data variables.product.prodname_enterprise_backup_utilities %} README](https://github.com/github/backup-utils#readme).
|
||||
|
||||
### Prerrequisitos
|
||||
|
||||
Para utilizar {% data variables.product.prodname_enterprise_backup_utilities %}, debes tener un sistema de host Linux o Unix separado de {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
También puedes incorporar {% data variables.product.prodname_enterprise_backup_utilities %} en un entorno existente para almacenar los datos críticos de manera permanente y a largo plazo.
|
||||
|
||||
Recomendamos que exista una distancia geográfica entre el host de copias de seguridad y {% data variables.product.product_location_enterprise %}. Esto asegura que las copias de seguridad estén disponibles para su recuperación en el caso de que ocurra un desastre significativo o una interrupción de red en el sitio principal.
|
||||
|
||||
Los requisitos de almacenamiento físico variarán en función del uso del disco del repositorio de Git y de los patrones de crecimiento esperados:
|
||||
|
||||
| Hardware | Recomendación |
|
||||
| ------------------ | ---------------------------------------------------------------- |
|
||||
| **vCPU** | 2 |
|
||||
| **Memoria** | 2 GB |
|
||||
| **Almacenamiento** | Cinco veces el almacenamiento asignado de la instancia principal |
|
||||
|
||||
Es posible que se requieran más recursos según su uso, como la actividad del usuario y las integraciones seleccionadas.
|
||||
|
||||
### Instalar {% data variables.product.prodname_enterprise_backup_utilities %}
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** Para asegurar que un aparato recuperado esté disponible de inmediato, realiza copias de seguridad apuntando a la instancia principal, incluso en una configuración de replicación geográfica.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
1. Desgarga el último lanzamiento de [{% data variables.product.prodname_enterprise_backup_utilities %} ](https://github.com/github/backup-utils/releases) y extrae el archivo con el comando `tar`.
|
||||
```shell
|
||||
$ tar -xzvf /path/to/github-backup-utils-v<em>MAJOR.MINOR.PATCH</em>.tar.gz
|
||||
```
|
||||
2. Copia el archivo incluido `backup.config-example` en `backup.config` y ábrelo en un editor.
|
||||
3. Configura el valor `GHE_HOSTNAME` al {% data variables.product.prodname_ghe_server %} primario del nombre del host de tu instancia o dirección IP.
|
||||
4. Configura el valor `GHE_DATA_DIR` en la ubicación del sistema de archivos donde deseas almacenar las instantáneas de copia de seguridad.
|
||||
5. Abre la página de configuración de tu instancia primaria en `https://HOSTNAME/setup/settings` y agrega la clave SSH del host de copia de seguridad a la lista de claves SSH autorizadas. Para obtener más información, consulta [Acceder al shell administrativo (SSH)](/enterprise/{{ currentVersion }}/admin/guides/installation/accessing-the-administrative-shell-ssh/).
|
||||
5. Verifica la conectividad SSH con {% data variables.product.product_location_enterprise %} con el comando `ghe-host-check`.
|
||||
```shell
|
||||
$ bin/ghe-host-check
|
||||
```
|
||||
6. Para crear una copia de respaldo completa inicial, ejecuta el comando `ghe-backup`.
|
||||
```shell
|
||||
$ bin/ghe-backup
|
||||
```
|
||||
|
||||
Para obtener más información sobre uso avanzado, consulta el archivo README en [{% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils#readme).
|
||||
|
||||
### Programar una copia de seguridad
|
||||
|
||||
Puedes programar copias de seguridad regulares en el host de copia de seguridad utilizando el comando `cron(8)` o un servicio de programación de comando similar. La frecuencia de copias de seguridad configurada dictará el peor caso de Punto Objetivo de Recuperación (RPO) de tu plan de recuperación. Por ejemplo, si has programado que la copia de seguridad se ejecute todos los días a la medianoche, podrías perder hasta 24 horas de datos en un escenario de desastre. Recomendamos comenzar con un cronograma de copias de seguridad por hora, que garantice un peor caso máximo de una hora de pérdida de datos, si los datos del sitio principal se destruyen.
|
||||
|
||||
Si los intentos de copias de seguridad se superponen, el comando `ghe-backup` se detendrá con un mensaje de error que indicará la existencia de una copia de seguridad simultánea. Si esto ocurre, recomendamos que disminuyas la frecuencia de tus copias de seguridad programadas. Para obtener más información, consulta la sección "Programar copias de seguridad" del archivo README en [{% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils#scheduling-backups).
|
||||
|
||||
### Recuperar una copia de seguridad
|
||||
|
||||
En el caso de una interrupción de red prolongada o de un evento catastrófico en el sitio principal, puedes restablecer {% data variables.product.product_location_enterprise %} proporcionando otro aparato para {% data variables.product.prodname_enterprise %} y haciendo un restablecimiento desde el host de copias de seguridad. Debes agregar la clave SSH del host de copias de seguridad en el aparato objetivo {% data variables.product.prodname_enterprise %} como una clave SSH autorizada antes de restablecer un aparato.
|
||||
|
||||
Para restablecer {% data variables.product.product_location_enterprise %} desde la última instantánea exitosa, usa el comando `ghe-restore`. Debes ver un resultado similar a este:
|
||||
|
||||
```shell
|
||||
$ ghe-restore -c 169.154.1.1
|
||||
> Comprobando claves filtradas en la instantánea de respaldo que se está restableciendo ...
|
||||
> * No se encontraron claves filtradas
|
||||
> Conectarse a 169.154.1.1:122 OK (v2.9.0)
|
||||
|
||||
> ADVERTENCIA: Todos los datos del aparato GitHub Enterprise 169.154.1.1 (v2.9.0)
|
||||
> se sobrescribirán con los datos de la instantánea 20170329T150710.
|
||||
> Antes de continuar, verifica que sea el host de restauración correcto.
|
||||
> Escribe 'yes' (sí) para continuar: <em>yes</em>
|
||||
|
||||
> Comenzando la restauración de 169.154.1.1:122 desde la instantánea 20170329T150710
|
||||
# ...resultado truncado
|
||||
> Restauración completa de 169.154.1.1:122 desde la instantánea 20170329T150710
|
||||
> Visita https://169.154.1.1/setup/settings para revisar la configuración del aparato.
|
||||
```
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** Los ajustes de red están excluidos de la instantánea de copias de seguridad. Debes configurar manualmente la red en el aparato objetivo para el {% data variables.product.prodname_ghe_server %} como obligatoria para tu entorno.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Puedes utilizar estas otras opciones con el comando `ghe-restore`:
|
||||
- La marca `-c` sobrescribe los ajustes, el certificado y los datos de licencia en el host objetivo, incluso si ya está configurado. Omite esta marca si estás configurando una instancia de preparación con fines de prueba y si quieres conservar la configuración existente en el objetivo. Para obtener más información, consulta la sección "Utilizar una copia de seguridad y restablecer los comandos" de [{% data variables.product.prodname_enterprise_backup_utilities %} README](https://github.com/github/backup-utils#using-the-backup-and-restore-commands).
|
||||
- La marca `-s` te permite seleccionar otra instantánea de copias de seguridad.
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
title: Configurar las Páginas de GitHub en su aparato
|
||||
intro: 'Puedes habilitar o inhabilitar {% data variables.product.prodname_pages %} en tu instancia. También puedes elegir hacer que los sitios {% data variables.product.prodname_pages %} sean de acceso público.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/disabling-github-enterprise-pages/
|
||||
- /enterprise/admin/guides/installation/configuring-github-enterprise-pages/
|
||||
- /enterprise/admin/installation/configuring-github-pages-on-your-appliance
|
||||
- /enterprise/admin/configuration/configuring-github-pages-on-your-appliance
|
||||
- /admin/configuration/configuring-github-pages-on-your-appliance
|
||||
versions:
|
||||
enterprise-server: '*'
|
||||
---
|
||||
### Making {% data variables.product.prodname_pages %} publicly accessible
|
||||
|
||||
El modo privado está habilitado en tu aparato, el público no puede acceder a los sitios {% data variables.product.prodname_pages %} alojados en {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia:** Si habilitas los sitios públicos {% data variables.product.prodname_pages %}, todos los sitios {% data variables.product.prodname_pages %} de cada repositorio de tu instancia serán de acceso público.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.pages-tab %}
|
||||
4. Selecciona **Public Pages** (Páginas públicas). 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
### Inhabilitar {% data variables.product.prodname_pages %} en {% data variables.product.product_location_enterprise %}
|
||||
|
||||
Si el aislamiento de subdominio está inhabilitado para {% data variables.product.product_location_enterprise %}, también debes inhabilitar {% data variables.product.prodname_pages %} para protegerte a ti mismo contra posibles vulnerabilidades de seguridad. Para obtener más información, consulta "[Habilitar el aislamiento de subdominio](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-subdomain-isolation)."
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.pages-tab %}
|
||||
4. Anula la selección de **Enable Pages** (Habilitar páginas). 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
### Leer más
|
||||
|
||||
- "[Habilitar el modo privado](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-private-mode)"
|
||||
@@ -1,53 +0,0 @@
|
||||
---
|
||||
title: Configurar límites de tasa
|
||||
intro: 'Puedes configurar límites de tasa para {% data variables.product.prodname_ghe_server %} usando la {% data variables.enterprise.management_console %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/configuring-rate-limits
|
||||
- /enterprise/admin/configuration/configuring-rate-limits
|
||||
- /admin/configuration/configuring-rate-limits
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
- Performance
|
||||
---
|
||||
### Habilitar límites de tasa para {% data variables.product.prodname_enterprise_api %}
|
||||
|
||||
Habilitar límites de tasa en {% data variables.product.prodname_enterprise_api %} puede evitar el uso excesivo de recursos por parte de usuarios individuales o sin autenticación. Para obtener más información, consulta la sección "[Limites de tasa](/enterprise/{{ currentVersion }}/v3/#rate-limiting)."
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
You can exempt a list of users from API rate limits using the `ghe-config` utility in the administrative shell. For more information, see "[Command-line utilities](/enterprise/admin/configuration/command-line-utilities#ghe-config)."
|
||||
{% endif %}
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** La {% data variables.enterprise.management_console %} detalla el período de tiempo (por minuto o por hora) de cada límite de tasa.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
2. En "Limitación de tasa", selecciona **Enable API Rate Limiting** (Habilitar la limitación de tasa de API). 
|
||||
3. Escribe los límites para las solicitudes autenticadas y no autenticadas para cada API o acepta los límites predeterminados que aparecen completados.
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
### Habilitar límites de tasa de abuso
|
||||
|
||||
Establecer límites de tasa de abuso protege el nivel general de servicio en {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
2. En "Limitación de tasa", selecciona **Enable Abuse Rate Limiting** (Habilitar limitación de tasa de abuso). 
|
||||
3. Escribe límites para las solicitudes totales, límite de CPU y límite de CPU para búsquedas, o acepta los límites predeterminados que aparecen completados.
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
### Habilitar límites de tasa de Git
|
||||
|
||||
Puedes aplicar límites de tasa de Git por red de repositorios o por Id. de usuario. Los límites de tasa de Git se expresan en operaciones simultáneas por minuto y se adaptan en función de la carga de CPU actual.
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
2. En "Limitación de tasa", selecciona **Enable Git Rate Limiting** (Habilitar limitación de tasa de Git). 
|
||||
3. Escribe los límites para cada red de repositorios o ID de usuario. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
@@ -1,45 +0,0 @@
|
||||
---
|
||||
title: Configurar la sincronización de hora
|
||||
intro: '{% data variables.product.prodname_ghe_server %} sincroniza automáticamente el reloj conectándose con los servidores NTP. Puedes establecer los servidores NTP que se utilicen para sincronizar el reloj o puedes usar los servidores NTP predeterminados.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/adjusting-the-clock/
|
||||
- /enterprise/admin/articles/configuring-time-zone-and-ntp-settings/
|
||||
- /enterprise/admin/articles/setting-ntp-servers/
|
||||
- /enterprise/admin/categories/time/
|
||||
- /enterprise/admin/installation/configuring-time-synchronization
|
||||
- /enterprise/admin/configuration/configuring-time-synchronization
|
||||
- /admin/configuration/configuring-time-synchronization
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Networking
|
||||
---
|
||||
### Cambiar los servidores NTP predeterminados
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
2. En la barra lateral izquierda, haz clic en **Time** (Hora). 
|
||||
3. En "Servidor NTP principal", escribe el nombre del host del servidor NTP principal. En "Servidor NTP secundario", escribe el nombre del host del servidor NTP secundario. 
|
||||
4. Al final de la página, haz clic en **Save settings** (Guardar configuraciones). 
|
||||
5. Espera a que la configuración se ejecute por completo.
|
||||
|
||||
### Corregir un desface de tiempo prolongado
|
||||
|
||||
El protocolo NTP corrige permanentemente las pequeñas discrepancias de sincronización de hora. Puedes usar el shell administrativo para sincronizar la hora de inmediato.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Notas:**
|
||||
- No puedes modificar la zona horaria universal coordinada (UTC).
|
||||
- Debes evitar que tu hipervisor trate de configurar el reloj de la máquina virtual. Para obtener más información, consulta la documentación proporcionada por el proveedor de virtualización.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
- Utiliza el comando `chronyc` para sincronizar el servidor con el servidor NTP configurado. Por ejemplo:
|
||||
|
||||
```shell
|
||||
$ sudo chronyc -a makestep
|
||||
```
|
||||
@@ -1,67 +0,0 @@
|
||||
---
|
||||
title: Habilitar y programar el modo de mantenimiento
|
||||
intro: 'Algunos procedimientos de mantenimiento estándar, como la actualización {% data variables.product.product_location_enterprise %} o la restauración de copias de seguridad, exigen que la instancia esté sin conexión para el uso normal.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/maintenance-mode/
|
||||
- /enterprise/admin/categories/maintenance-mode/
|
||||
- /enterprise/admin/articles/maintenance-mode/
|
||||
- /enterprise/admin/articles/enabling-maintenance-mode/
|
||||
- /enterprise/admin/articles/disabling-maintenance-mode/
|
||||
- /enterprise/admin/guides/installation/maintenance-mode/
|
||||
- /enterprise/admin/installation/enabling-and-scheduling-maintenance-mode
|
||||
- /enterprise/admin/configuration/enabling-and-scheduling-maintenance-mode
|
||||
- /admin/configuration/enabling-and-scheduling-maintenance-mode
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Maintenance
|
||||
- Upgrades
|
||||
---
|
||||
### Acerca del modo de mantenimiento
|
||||
|
||||
Algunos tipos de operaciones exigen que desconectes tu {% data variables.product.product_location_enterprise %} y la pongas en modo de mantenimiento:
|
||||
- Actualizar a una versión nueva de tu {% data variables.product.prodname_ghe_server %}
|
||||
- Aumentar los recursos de CPU, memoria o almacenamiento asignados a la máquina virtual
|
||||
- Migrar datos desde una máquina virtual a otra
|
||||
- Restaurar datos desde una instantánea de {% data variables.product.prodname_enterprise_backup_utilities %}
|
||||
- Solucionar ciertos tipos de problemas críticos de solicitud
|
||||
|
||||
Recomendamos que programe una ventana de mantenimiento para, al menos, los siguientes 30 minutos para darle a los usuarios tiempo para prepararse. Cuando está programada una ventana de mantenimiento, todos los usuarios verán un mensaje emergente al acceder al sitio.
|
||||
|
||||

|
||||
|
||||
Cuando la instancia está en modo de mantenimiento, se rechazan todos los accesos HTTP y Git. Las operaciones de extracción, clonación y subida de Git también se rechazan con un mensaje de error que indica que temporalmente el sitio no se encuentra disponible. Al visitar el sitio desde un navegador aparece una página de mantenimiento.
|
||||
|
||||

|
||||
|
||||
### Habilitar el modo de mantenimiento de inmediato o programar una ventana de mantenimiento para más tarde
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
2. En la parte superior de la {% data variables.enterprise.management_console %}, haz clic en **Mantenimiento**. 
|
||||
3. En "Habilitar y Programar", decide si habilitas el modo de mantenimiento de inmediato o programas una ventana de mantenimiento para otro momento.
|
||||
- Para habilitar el modo de mantenimiento de inmediato, usa el menú desplegable y haz clic en **now** (ahora). 
|
||||
- Para programar una ventana de mantenimiento para otro momento, usa el menú desplegable y haz clic en un horario de inicio. 
|
||||
4. Selecciona **Habilitar el modo de mantenimiento**. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
### Programar el modo de mantenimiento con {% data variables.product.prodname_enterprise_api %}
|
||||
|
||||
Puedes programar el mantenimiento para horarios o días diferentes con {% data variables.product.prodname_enterprise_api %}. Para obtener más información, consulta la sección "[Consola de Administración](/enterprise/{{ currentVersion }}/user/rest/reference/enterprise-admin#enable-or-disable-maintenance-mode)".
|
||||
|
||||
### Habilitar o inhabilitar el modo de mantenimientos para todos los nodos de una agrupación
|
||||
|
||||
Con la herramienta `ghe-cluster-maintenance`, puedes configurar o anular la configuración del modo de mantenimiento para cada nodo de una agrupación.
|
||||
|
||||
```shell
|
||||
$ ghe-cluster-maintenance -h
|
||||
# Muestra opciones
|
||||
$ ghe-cluster-maintenance -q
|
||||
# Consulta el modo actual
|
||||
$ ghe-cluster-maintenance -s
|
||||
# Configura el modo de mantenimiento
|
||||
$ ghe-cluster-maintenance -u
|
||||
# Anula la configuración del modo de mantenimiento
|
||||
```
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
title: Habilitar el modo privado
|
||||
intro: 'En el modo privado, {% data variables.product.prodname_ghe_server %} exige que todos los usuarios inicien sesión para acceder a la instalación.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/private-mode/
|
||||
- /enterprise/admin/guides/installation/security/
|
||||
- /enterprise/admin/guides/installation/securing-your-instance/
|
||||
- /enterprise/admin/installation/enabling-private-mode
|
||||
- /enterprise/admin/configuration/enabling-private-mode
|
||||
- /admin/configuration/enabling-private-mode
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Access management
|
||||
- Authentication
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Networking
|
||||
- Privacy
|
||||
- Security
|
||||
---
|
||||
Debes habilitar el modo privado si {% data variables.product.product_location_enterprise %} es de acceso público por internet. En el modo privado, los usuarios no pueden clonar repositorios en forma anónima por `git://`. Si también está habilitada la autenticación incorporada, un administrador debe invitar a los nuevos usuarios para que creen una cuenta en la instancia. Para obtener más información, consulta "[Usar la autenticación incorporada](/enterprise/{{ currentVersion }}/admin/guides/user-management/using-built-in-authentication)."
|
||||
|
||||
{% data reusables.enterprise_installation.image-urls-viewable-warning %}
|
||||
|
||||
Con el modo privado habilitado, puedes permitir que operaciones de Git sin autenticación (y cualquiera con acceso de red a {% data variables.product.product_location_enterprise %}) lean un código de repositorio público de tu instancia con acceso de lectura anónimo de Git habilitado. Para obtener más información, consulta "[Permitir que los administradores habiliten el acceso de lectura anónimo de Git para los repositorios públicos](/enterprise/{{ currentVersion }}/admin/guides/user-management/allowing-admins-to-enable-anonymous-git-read-access-to-public-repositories)."
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.privacy %}
|
||||
4. Selecciona **Private mode** (Modo privado). 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
@@ -1,37 +0,0 @@
|
||||
---
|
||||
title: Configurar tu empresa
|
||||
intro: 'Una vez que {% data variables.product.prodname_ghe_server %} esté en funcionamiento, puedes configurar el aparato para que se adapte a las necesidades de tu organización.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/basic-configuration/
|
||||
- /enterprise/admin/guides/installation/administrative-tools/
|
||||
- /enterprise/admin/articles/restricting-ssh-access-to-specific-hosts/
|
||||
- /enterprise/admin/guides/installation/configuring-the-github-enterprise-appliance/
|
||||
- /enterprise/admin/installation/configuring-the-github-enterprise-server-appliance
|
||||
- /enterprise/admin/configuration/configuring-your-enterprise
|
||||
versions:
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /about-enterprise-configuration
|
||||
- /initializing-github-ae
|
||||
- /accessing-the-management-console
|
||||
- /accessing-the-administrative-shell-ssh
|
||||
- /enabling-and-scheduling-maintenance-mode
|
||||
- /configuring-backups-on-your-appliance
|
||||
- /site-admin-dashboard
|
||||
- /enabling-private-mode
|
||||
- /managing-github-for-mobile-for-your-enterprise
|
||||
- /configuring-email-for-notifications
|
||||
- /verifying-or-approving-a-domain-for-your-enterprise
|
||||
- /configuring-rate-limits
|
||||
- /configuring-applications
|
||||
- /troubleshooting-ssl-errors
|
||||
- /configuring-time-synchronization
|
||||
- /command-line-utilities
|
||||
- /restricting-network-traffic-to-your-enterprise
|
||||
- /configuring-github-pages-for-your-enterprise
|
||||
- /configuring-the-referrer-policy-for-your-enterprise
|
||||
---
|
||||
|
||||
@@ -1,208 +0,0 @@
|
||||
---
|
||||
title: Tablero de administración del sitio
|
||||
intro: 'El tablero de administración del sitio brinda una cantidad de herramientas para ayudarte a administrar {% data variables.product.product_location_enterprise %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/site-admin-dashboard/
|
||||
- /enterprise/admin/installation/site-admin-dashboard
|
||||
- /enterprise/admin/configuration/site-admin-dashboard
|
||||
- /admin/configuration/site-admin-dashboard
|
||||
versions:
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
---
|
||||
Para acceder al tablero, en la esquina superior derecha de cualquier página, haz clic en {% octicon "rocket" aria-label="The rocket ship" %}. 
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
|
||||
### Buscar
|
||||
|
||||
Aquí puedes iniciar la {% data variables.enterprise.management_console %} para administrar las configuraciones del aparato virtual como el dominio, la autenticación y SSL.
|
||||
|
||||
{% else %}
|
||||
|
||||
### Información de la licencia & buscar
|
||||
|
||||
Consulta esta sección del tablero de administración del sitio para controlar tu licencia {% data variables.product.prodname_enterprise %} actual, para buscar usuarios y repositorios y para consultar el [registro de auditoría](#audit-log).
|
||||
|
||||
{% endif %}
|
||||
|
||||
### {% data variables.enterprise.management_console %}
|
||||
|
||||
Aquí puedes iniciar la {% data variables.enterprise.management_console %} para administrar las configuraciones del aparato virtual como el dominio, la autenticación y SSL.
|
||||
|
||||
### Explorar
|
||||
|
||||
Los datos para la [página de tendencia][] de GitHub se calculan en lapsos de tiempo diarios, semanales y mensuales para ambos repositorios y programadores. Puedes ver cuándo estos datos fueron almacenados en caché por última vez y poner en cola las tareas nuevas de cálculo de tendencia desde la sección **Explore (Explorar)**.
|
||||
|
||||
### Registro de auditoría
|
||||
|
||||
{% data variables.product.prodname_enterprise %} mantiene un registro continuo de las acciones auditadas que puedes consultar.
|
||||
|
||||
Por defecto, el registro de auditoría te muestra una lista de todas las acciones auditadas en orden cronológico reverso. Puedes filtrar esta lista al ingresar pares de valores clave en el casillero de texto de **Query (Consulta)** y después hacer clic en **Search (Buscar)**, como se explicó en "[Buscar el registro de auditoría](/enterprise/{{ currentVersion }}/admin/guides/installation/searching-the-audit-log)."
|
||||
|
||||
Para obtener más información acerca de las bitácoras de auditoria en general, consulta "[Bitácoras de Auditoría](/enterprise/{{ currentVersion }}/admin/guides/installation/audit-logging)". Para encontrar una lista completa de las acciones auditadas, consulta la sección "[Acciones auditadas](/enterprise/{{ currentVersion }}/admin/guides/installation/audited-actions)".
|
||||
|
||||
### Informes
|
||||
|
||||
Si necesitas obtener información sobre los usuarios, organizaciones y repositorios en {% data variables.product.product_location_enterprise %}, comúnmente extraerías datos JSON a través de la [API de GitHub](/rest). Lamentablemente, es posible que la API no proporcione todos los datos que deseas y se requiera algo de conocimiento técnico para usarla. Este tablero de administración del sitio ofrece una sección de **Reports (Informes)** como una alternativa, haciendo que sea fácil descargar informes CSV con la mayoría de la información que probablemente necesites para los usuarios, las organizaciones y los repositorios.
|
||||
|
||||
Específicamente, puedes descargar informes CSV que enumeren a
|
||||
|
||||
- todos los usuarios
|
||||
- todos los usuarios que han estado activos dentro del último mes
|
||||
- todos los usuarios que han estado inactivos durante un mes o más
|
||||
- todos los usuarios que han sido suspendidos
|
||||
- todas las organizaciones
|
||||
- todos los repositorios
|
||||
|
||||
También puedes acceder a estos informes mediante programación a través de una autenticación estándar de HTTP con una cuenta de administrador del sitio. Debes utilizar un token de acceso personal con alcance de `site_admin`. Para obtener más información, consulta la sección "[Crear un token de acceso personal](/github/authenticating-to-github/creating-a-personal-access-token)".
|
||||
|
||||
Por ejemplo, así es como descargarías el informe "todos los usuarios" utilizando cURL:
|
||||
|
||||
```shell
|
||||
curl -L -u <em>username</em>:<em>token</em> http(s)://<em>hostname</em>/stafftools/reports/all_users.csv
|
||||
```
|
||||
|
||||
Para acceder a otros informes mediante programación, reemplaza `all_users` con `active_users`, `dormant_users`, `suspended_users`, `all_organizations`, o `all_repositories`.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** La solicitud `curl` inicial devolverá una respuesta 202 HTTP si no hay informes en caché disponibles; se generará un informe en segundo plano. Puedes enviar una segunda solicitud para descargar el informe. Puedes utilizar una contraseña o un token de OAuth con el alcance `site_admin` en lugar de la contraseña.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
#### Informes del usuario
|
||||
|
||||
| Clave | Descripción |
|
||||
| ------------------------:| --------------------------------------------------------------------------------- |
|
||||
| `created_at (creado en)` | Cuándo fue creada la cuenta de usuario (como una marca de tiempo ISO 8601) |
|
||||
| `id` | ID de la cuenta para el usuario o la organización |
|
||||
| `login` | Nombre de inicio de sesión de la cuenta |
|
||||
| `correo electrónico` | Dirección principal de correo electrónico de la cuenta |
|
||||
| `rol` | Si la cuenta es de un usuario administrador o de un usuario común |
|
||||
| `suspended?` | Si la cuenta ha sido suspendida |
|
||||
| `last_logged_ip` | La dirección IP más reciente que se registró en la cuenta |
|
||||
| `repos` | Cantidad de repositorios que posee la cuenta |
|
||||
| `ssh_keys` | Cantidad de claves SSH registradas en la cuenta |
|
||||
| `org_memberships` | Cantidad de organizaciones a las que pertenece la cuenta |
|
||||
| `dormant?` | Si la cuenta está inactiva |
|
||||
| `last_active` | Cuándo la cuenta estuvo activa por última vez (como una marca de tiempo ISO 8601) |
|
||||
| `raw_login` | Información de inicio de sesión sin procesar (en formato JSON) |
|
||||
| `2fa_enabled?` | Si el usuario ha habilitado autenticación de dos factores |
|
||||
|
||||
#### Informes de la organización
|
||||
|
||||
| Clave | Descripción |
|
||||
| ------------------------:| ------------------------------------------------------------ |
|
||||
| `id` | ID de la organización |
|
||||
| `created_at (creado en)` | Cuándo se creó la organización |
|
||||
| `login` | Nombre de inicio de sesión de la organización |
|
||||
| `correo electrónico` | Dirección principal de correo electrónico de la organización |
|
||||
| `owners` | Cantidad de propietarios de la organización |
|
||||
| `members` | Cantidad de miembros de la organización |
|
||||
| `equipos` | Cantidad de equipos de la organización |
|
||||
| `repos` | Cantidad de repositorios de la organización |
|
||||
| `2fa_required?` | Si la organización requiere autenticación de dos factores |
|
||||
|
||||
#### Informes del repositorio
|
||||
|
||||
| Clave | Descripción |
|
||||
| ------------------------:| ------------------------------------------------------------------ |
|
||||
| `created_at (creado en)` | Cuándo fue creado el repositorio |
|
||||
| `owner_id` | ID del propietario del repositorio |
|
||||
| `owner_type` | Si el repositorio es propiedad de un usuario o de una organización |
|
||||
| `owner_name` | Nombre del propietario del repositorio |
|
||||
| `id` | ID del repositorio |
|
||||
| `name (nombre)` | Nombre del repositorio |
|
||||
| `visibilidad` | Si el repositorio es público o privado |
|
||||
| `readable_size` | El tamaño del repositorio en un formato legible |
|
||||
| `raw_size` | Tamaño del repositorio como un número |
|
||||
| `collaborators` | Cantidad de colaboradores del repositorio |
|
||||
| `fork?` | Si el repositorio es una bifurcación |
|
||||
| `deleted?` | Si el repositorio ha sido borrado |
|
||||
|
||||
### Indexar
|
||||
|
||||
Las funciones de [búsqueda de código][] de GitHub son propulsadas por [ElasticSearch][]. Esta sección del tablero de administración del sitio muestra el estado actual de tu agrupación de ElasticSearch y brinda diversas herramientas para controlar el comportamiento de búsqueda e indexación. Estas herramientas están separadas en las siguientes tres categorías.
|
||||
|
||||
#### Búsqueda de código
|
||||
|
||||
Esto te permite habilitar o deshabilitar tanto las operaciones de búsqueda como de indexación en el código fuente.
|
||||
|
||||
#### Reparación del índice de búsqueda de código
|
||||
|
||||
Esto controla cómo se repara el índice de búsqueda de código. Puedes
|
||||
|
||||
- habilitar o inhabilitar tareas de reparación de índices
|
||||
- comenzar una nueva tarea de reparación de índice
|
||||
- restablecer todos los estados de reparación de índices
|
||||
|
||||
{% data variables.product.prodname_enterprise %} utiliza tareas de reparación para compaginar el estado del índice de búsqueda con los datos almacenados en una base de datos (propuestas, solicitudes de extracción, repositorios y usuarios) y los datos almacenados en los repositorios de Git (código fuente). Esto sucede cuando
|
||||
|
||||
- se crea un nuevo índice de búsqueda;
|
||||
- faltan datos que se deben reponer; o
|
||||
- los datos de búsqueda antiguos deben ser actualizados.
|
||||
|
||||
En otras palabras, las tareas de reparación se inician según se necesiten y se ejecutan en segundo plano, no están programados por los administradores del sitio de ningún modo.
|
||||
|
||||
Además, las tareas de reparación utilizan una "compensación de reparación" para la paralelización. Esto es una compensación dentro de la tabla de base de datos para el registro que se está compaginando. Múltiples tareas en segundo plano pueden sincronizar el trabajo en base a esta compensación.
|
||||
|
||||
Una barra de progreso muestra el estado actual de la tarea de reparación a través de todos sus trabajadores en segundo plano. Es la diferencia de porcentaje de la compensación de reparación con el ID de registro más alto en la base de datos. No te preocupes sobre el valor que se muestra en la barra de progreso después de que una tarea de reparación se haya completado: ya que muestra la diferencia entre la compensación de reparación y el ID del registro más alto en la base de datos, disminuirá a medida que se agreguen más repositorios a {% data variables.product.product_location_enterprise %} incluso aquellos repositorios que están de hecho indexados.
|
||||
|
||||
Puedes comenzar una nueva tarea de reparación de índice de búsqueda de código en cualquier momento. Utilizará una CPU única ya que compagina el índice de búsqueda con la base de datos y los datos del repositorio de Git. Para minimizar los efectos que esto tendrá en el desempeño de I/O y reducir las posibilidades de que las operaciones queden inactivas, trata de ejecutar una tarea de reparación durante las horas valle en primer lugar. Controla las cargas promedio de tu sistema y el uso de tu CPU con una herramienta como `top`; si no notas cambios significativos, debería ser seguro ejecutar una tarea de reparación de índice también durante las horas pico.
|
||||
|
||||
#### Reparación de índice de propuestas
|
||||
|
||||
Esto controla de qué manera se repara el [índice de propuestas][]. Puedes
|
||||
|
||||
- habilitar o inhabilitar tareas de reparación de índices
|
||||
- comenzar una nueva tarea de reparación de índice
|
||||
- restablecer todos los estados de reparación de índices
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
|
||||
### Todos los usuarios
|
||||
|
||||
Aquí puedes ver todos los usuarios que han sido suspendidos en {% data variables.product.product_location_enterprise %}, e [iniciar una auditoría clave de SSH](/enterprise/{{ currentVersion }}/admin/guides/user-management/auditing-ssh-keys).
|
||||
|
||||
{% endif %}
|
||||
|
||||
### Repositorios
|
||||
|
||||
Es una lista de los repositorios en {% data variables.product.product_location_enterprise %}. Puedes hacer clic en un nombre de repositorio y acceder a las funciones para administrar el repositorio.
|
||||
|
||||
- [Bloquear empujes forzados en un repositorio](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/blocking-force-pushes-to-a-repository/)
|
||||
- [Configurar {% data variables.large_files.product_name_long %}](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-git-large-file-storage/#configuring-git-large-file-storage-for-an-individual-repository)
|
||||
- [Archivar y desarchivar repositorios](/enterprise/{{ currentVersion }}/admin/guides/user-management/archiving-and-unarchiving-repositories/)
|
||||
|
||||
### Todos los usuarios
|
||||
|
||||
Aquí puedes ver todos los usuarios en {% data variables.product.product_location_enterprise %}—, e [iniciar una auditoría clave de SSH](/enterprise/{{ currentVersion }}/admin/guides/user-management/auditing-ssh-keys).
|
||||
|
||||
### Administrador del sitio
|
||||
|
||||
Aquí puedes ver todos los administradores en {% data variables.product.product_location_enterprise %}, e [iniciar una auditoría clave en SSH](/enterprise/{{ currentVersion }}/admin/guides/user-management/auditing-ssh-keys).
|
||||
|
||||
### Usuarios inactivos
|
||||
|
||||
Aquí puedes ver y [suspender](/enterprise/{{ currentVersion }}/admin/guides/user-management/suspending-and-unsuspending-users) todos los usuarios inactivos en {% data variables.product.product_location_enterprise %}. Una cuenta de usuario se considera inactiva ("dormant") cuando:
|
||||
|
||||
- Ha existido durante más tiempo del umbral de inactividad que está establecido para {% data variables.product.product_location_enterprise %}.
|
||||
- No ha generado ninguna actividad dentro de ese período.
|
||||
- No es un administrador del sitio.
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.dormancy-threshold %} Para obtener más información, consulta "[Administrar usuarios inactivos](/enterprise/{{ currentVersion }}/admin/guides/user-management/managing-dormant-users/#configuring-the-dormancy-threshold)."
|
||||
|
||||
### Usuarios suspendidos
|
||||
|
||||
Aquí puedes ver todos los usuarios que han sido suspendidos en {% data variables.product.product_location_enterprise %}, e [iniciar una auditoría clave de SSH](/enterprise/{{ currentVersion }}/admin/guides/user-management/auditing-ssh-keys).
|
||||
|
||||
[página de tendencia]: https://github.com/blog/1585-explore-what-is-trending-on-github
|
||||
|
||||
[búsqueda de código]: https://github.com/blog/1381-a-whole-new-code-search
|
||||
[ElasticSearch]: http://www.elasticsearch.org/
|
||||
|
||||
[índice de propuestas]: https://github.com/blog/831-issues-2-0-the-next-generation
|
||||
@@ -1,79 +0,0 @@
|
||||
---
|
||||
title: Errores de solución de problemas de SSL
|
||||
intro: 'Si te encuentras con problemas de SSL en tu aparato, puedes tomar medidas para resolverlos.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/troubleshooting-ssl-errors/
|
||||
- /enterprise/admin/categories/dns-ssl-and-subdomain-configuration/
|
||||
- /enterprise/admin/installation/troubleshooting-ssl-errors
|
||||
- /enterprise/admin/configuration/troubleshooting-ssl-errors
|
||||
- /admin/configuration/troubleshooting-ssl-errors
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Errors
|
||||
- Infrastructure
|
||||
- Networking
|
||||
- Security
|
||||
- Troubleshooting
|
||||
---
|
||||
### Eliminar la contraseña de un archivo clave
|
||||
|
||||
Si tienes una máquina linux con OpenSSL instalado, puedes eliminar tu contraseña.
|
||||
|
||||
1. Renombrar tu archivo clave original.
|
||||
```shell
|
||||
$ mv yourdomain.key yourdomain.key.orig
|
||||
```
|
||||
2. Generar una nueva clave sin una contraseña.
|
||||
```shell
|
||||
$ openssl rsa -in yourdomain.key.orig -out yourdomain.key
|
||||
```
|
||||
|
||||
Se te pedirá la contraseña de la clave cuando ejecutes este comando.
|
||||
|
||||
Para más información sobre OpenSSL, consulta la documentación de OpenSSL [](https://www.openssl.org/docs/).
|
||||
|
||||
### Convertir tu certificado SSL o tu clave a un formato PEM
|
||||
|
||||
Si tienes instalado OpenSSL, puedes convertir tu clave en formato PEM usando el comando `openssl`. Por ejemplo, puedes convertir una clave de formato DER a formato PEM.
|
||||
|
||||
```shell
|
||||
$ openssl rsa -in yourdomain.der -inform DER -out yourdomain.key -outform PEM
|
||||
```
|
||||
|
||||
De lo contrario, puedes utilizar la herramienta SSL Converter para convertir tu certificado a formato PEM. Para obtener más información, consulta la [Documentación de la herramienta SSL Converter](https://www.sslshopper.com/ssl-converter.html).
|
||||
|
||||
### Instalación sin respuesta después de cargar una clave
|
||||
|
||||
Si {% data variables.product.product_location_enterprise %} no tiene respuesta después de cargar una clave SSL, contacta [al {% data variables.product.prodname_enterprise %} Soporte](https://enterprise.github.com/support) con detalles específicos, incluida una copia de tu certificado SSL.
|
||||
|
||||
### Errores de validez de certificado
|
||||
|
||||
Los clientes como navegadores web y líneas de comando Git mostrarán un mensaje de error si no pueden verificar la validez de un certificado SSL. Esto sucede con frecuencia con los certificados autofirmados y los certificados de "raíz encadenada" emitidos por un certificado raíz intermedio que no es reconocido por el cliente.
|
||||
|
||||
Si estás usando un certificado firmado por una autoridad de certificación (CA), el archivo del certificado que cargaste a {% data variables.product.prodname_ghe_server %} debe incluir una cadena de certificado con ese certificado raíz de CA. Para crear dicho archivo, concatena tu cadena de certificado entera (o "paquete de certificado") al final de tu certificado, garantizando que el certificado principal con tu nombre del host aparezca primero. En la mayoría de los sistemas puedes hacer esto con un comando similar a:
|
||||
|
||||
```shell
|
||||
$ cat yourdomain.com.crt bundle-certificates.crt > yourdomain.combined.crt
|
||||
```
|
||||
|
||||
Deberías poder descargar un paquete de certificado (por ejemplo, `bundle-certificates.crt`) desde tu proveedor de SSL o de la autoridad de certificación.
|
||||
|
||||
### Instalar certificados raíz de autoridad de certificación (CA) autofirmados o que no son de confianza
|
||||
|
||||
Si tu aparato {% data variables.product.prodname_ghe_server %} interactúa con otras máquinas en tu red que utilizan un certificado autofirmado o que no es de confianza, deberás importar el certificado raíz de la CA firmante en el almacenamiento de certificado de todo el sistema para poder acceder a estos sistemas por HTTPS.
|
||||
|
||||
1. Obtén el certificado raíz de la CA de tu autoridad de certificación local y asegúrate que esté en formato PEM.
|
||||
2. Copia el archivo a tu aparato {% data variables.product.prodname_ghe_server %} por SSH como el usuario "administrador" en el puerto 122.
|
||||
```shell
|
||||
$ scp -P 122 rootCA.crt admin@HOSTNAME:/home/admin
|
||||
```
|
||||
3. Conecta a la shell administrativa {% data variables.product.prodname_ghe_server %} por SSH como el usuario "administrador" en el puerto 122.
|
||||
```shell
|
||||
$ ssh -p 122 admin@HOSTNAME
|
||||
```
|
||||
4. Importa el certificado al almacenamiento de certificado de todo el sistema.
|
||||
```shell
|
||||
$ ghe-ssl-ca-certificate-install -c rootCA.crt
|
||||
```
|
||||
@@ -1,69 +0,0 @@
|
||||
---
|
||||
title: Enabling alerts for vulnerable dependencies on GitHub Enterprise Server
|
||||
intro: 'You can connect {% data variables.product.product_location_enterprise %} to {% data variables.product.prodname_ghe_cloud %} and enable {% if currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot_short %}{% else %}security{% endif %} alerts for vulnerable dependencies in repositories in your instance.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/enabling-security-alerts-for-vulnerable-dependencies-on-github-enterprise-server
|
||||
- /enterprise/admin/configuration/enabling-security-alerts-for-vulnerable-dependencies-on-github-enterprise-server
|
||||
- /enterprise/admin/configuration/enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server
|
||||
permissions: 'Site administrators for {% data variables.product.prodname_ghe_server %} who are also owners of the connected {% data variables.product.prodname_ghe_cloud %} organization or enterprise account can enable {% if currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot %}{% else %}security{% endif %} alerts for vulnerable dependencies on {% data variables.product.prodname_ghe_server %}.'
|
||||
versions:
|
||||
enterprise-server: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Security
|
||||
---
|
||||
|
||||
### About alerts for vulnerable dependencies on {% data variables.product.prodname_ghe_server %}
|
||||
|
||||
{% data reusables.repositories.tracks-vulnerabilities %} For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)."
|
||||
|
||||
You can connect {% data variables.product.product_location_enterprise %} to {% data variables.product.prodname_dotcom_the_website %}, then sync vulnerability data to your instance and generate {% if currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot_short %}{% else %}security{% endif %} alerts in repositories with a vulnerable dependency.
|
||||
|
||||
After connecting {% data variables.product.product_location_enterprise %} to {% data variables.product.prodname_dotcom_the_website %} and enabling {% if currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot_short %}{% else %}security{% endif %} alerts for vulnerable dependencies, vulnerability data is synced from {% data variables.product.prodname_dotcom_the_website %} to your instance once every hour. You can also choose to manually sync vulnerability data at any time. No code or information about code from {% data variables.product.product_location_enterprise %} is uploaded to {% data variables.product.prodname_dotcom_the_website %}.
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}When {% data variables.product.product_location_enterprise %} receives information about a vulnerability, it will identify repositories in your instance that use the affected version of the dependency and send {% data variables.product.prodname_dependabot_short %} alerts to owners and people with admin access in those repositories. They can customize how they receive {% data variables.product.prodname_dependabot_short %} alerts. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies/#configuring-notifications-for-github-dependabot-alerts)."
|
||||
{% endif %}
|
||||
|
||||
{% if currentVersion ver_lt "enterprise-server@2.21" or currentVersion == "enterprise-server@2.21" %}When {% data variables.product.product_location_enterprise %} receives information about a vulnerability, it will identify repositories in your instance that use the affected version of the dependency and send security alerts to owners and people with admin access in those repositories. They can customize how they receive security alerts. For more information, see "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies/#configuring-notifications-for-security-alerts)."
|
||||
{% endif %}
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}
|
||||
### Enabling {% data variables.product.prodname_dependabot_short %} alerts for vulnerable dependencies on {% data variables.product.prodname_ghe_server %}
|
||||
{% else %}
|
||||
### Enabling security alerts for vulnerable dependencies on {% data variables.product.prodname_ghe_server %}
|
||||
{% endif %}
|
||||
|
||||
Before enabling {% if currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot_short %}{% else %}security{% endif %} alerts for vulnerable dependencies on {% data variables.product.product_location_enterprise %}, you must connect {% data variables.product.product_location_enterprise %} to {% data variables.product.prodname_dotcom_the_website %}. For more information, see "[Connecting {% data variables.product.prodname_ghe_server %} to {% data variables.product.prodname_ghe_cloud %}](/enterprise/{{ currentVersion }}/admin/guides/installation/connecting-github-enterprise-server-to-github-enterprise-cloud)."
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.20" %}
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}We recommend configuring {% data variables.product.prodname_dependabot_short %} alerts without notifications for the first few days to avoid an overload of emails. After a few days, you can enable notifications to receive {% data variables.product.prodname_dependabot_short %} alerts as usual.{% endif %}
|
||||
|
||||
{% if currentVersion == "enterprise-server@2.21" %}We recommend configuring security alerts without notifications for the first few days to avoid an overload of emails. After a few days, you can enable notifications to receive security alerts as usual.{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.sign-in %}
|
||||
1. In the administrative shell, enable the {% if currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot_short %}{% else %}security{% endif %} alerts for vulnerable dependencies on {% data variables.product.product_location_enterprise %}:
|
||||
``` shell
|
||||
$ ghe-dep-graph-enable
|
||||
```
|
||||
3. Return to {% data variables.product.prodname_ghe_server %}.
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.business %}
|
||||
{% data reusables.enterprise-accounts.settings-tab %}
|
||||
{% data reusables.enterprise-accounts.github-connect-tab %}{% if currentVersion ver_gt "enterprise-server@2.20" %}
|
||||
5. Under "Repositories can be scanned for vulnerabilities", use the drop-down menu and select **Enabled without notifications**. Optionally, to enable alerts with notifications, select **Enabled with notifications**.{% else %}
|
||||
5. Under "Repositories can be scanned for vulnerabilities", use the drop-down menu and select **Enabled**.
|
||||
{% endif %}
|
||||

|
||||
|
||||
### Viewing vulnerable dependencies on {% data variables.product.prodname_ghe_server %}
|
||||
|
||||
You can view all vulnerabilities in {% data variables.product.product_location_enterprise %} and manually sync vulnerability data from {% data variables.product.prodname_dotcom_the_website %} to update the list.
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
2. In the left sidebar, click **Vulnerabilities**.
|
||||

|
||||
3. To sync vulnerability data, click **Sync Vulnerabilities now**.
|
||||

|
||||
@@ -1,23 +0,0 @@
|
||||
---
|
||||
title: Configurar GitHub Enterprise
|
||||
shortTitle: Configurar GitHub Enterprise
|
||||
intro: 'Una vez que se haya instalado y configurado {% data variables.product.prodname_ghe_server %}, podrás configurar el aplicativo de acuerdo con las necesidades de tu organización.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/configuration
|
||||
versions:
|
||||
ghes: '*'
|
||||
ghae: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /configuring-your-enterprise
|
||||
- /configuring-network-settings
|
||||
- /managing-connections-between-your-enterprise-accounts
|
||||
---
|
||||
### Índice
|
||||
<!-- if currentVersion ver_gt "enterprise-server@2.15" -->
|
||||
<!-- endif -->
|
||||
<!-- if currentVersion ver_gt "enterprise-server@2.16" -->
|
||||
<!-- endif -->
|
||||
<!-- if currentVersion ver_gt "enterprise-server@2.21" -->
|
||||
<!-- endif -->
|
||||
@@ -1,67 +0,0 @@
|
||||
---
|
||||
title: Conectar el servidor de GitHub Enterprise a GitHub Enterprise Cloud
|
||||
intro: 'Después de que habilites {% data variables.product.prodname_github_connect %}, puedes compartir características y flujos de trabajo específicos entre {% data variables.product.product_location_enterprise %} y {% data variables.product.prodname_ghe_cloud %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-to-github-com/
|
||||
- /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-server-to-github-com
|
||||
- /enterprise/admin/developer-workflow/connecting-github-enterprise-server-to-githubcom/
|
||||
- /enterprise/admin/installation/connecting-github-enterprise-server-to-github-enterprise-cloud
|
||||
- /enterprise/admin/configuration/connecting-github-enterprise-server-to-github-enterprise-cloud
|
||||
- /admin/configuration/connecting-github-enterprise-server-to-github-enterprise-cloud
|
||||
permissions: 'Site administrators for {% data variables.product.prodname_ghe_server %} who are also owners of a {% data variables.product.prodname_ghe_cloud %} organization or enterprise account can enable {% data variables.product.prodname_github_connect %}.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- GitHub Connect
|
||||
- Infrastructure
|
||||
- Networking
|
||||
---
|
||||
### Acerca de {% data variables.product.prodname_github_connect %}
|
||||
|
||||
Para habilitar {% data variables.product.prodname_github_connect %}, debes configurar la conexión en ambos {% data variables.product.product_location_enterprise %} y en tu cuenta de empresa u organización de {% data variables.product.prodname_ghe_cloud %}.
|
||||
|
||||
Para configurar una conexión, tu configuración proxy debe permitir la conectividad a `github.com` y `api.github.com`. Para obtener más información, consulta "[Configuring an outbound web proxy server](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-an-outbound-web-proxy-server)."
|
||||
|
||||
Después de habilitar {% data variables.product.prodname_github_connect %}, podrás habilitar características, como búsqueda unificada y contribuciones unificadas. Para obtener más información acerca de todas las características disponibles, consulta "[Administrar conexiones entre {% data variables.product.prodname_ghe_server %} y {% data variables.product.prodname_ghe_cloud %}](/enterprise/{{ currentVersion }}/admin/installation/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud)."
|
||||
|
||||
Cuando conectas {% data variables.product.product_location_enterprise %} a {% data variables.product.prodname_ghe_cloud %}, un registro en {% data variables.product.prodname_dotcom_the_website %} almacena información sobre la conexión:
|
||||
- La parte pública de la clave de tu licencia {% data variables.product.prodname_ghe_server %}
|
||||
- Un hash de tu licencia {% data variables.product.prodname_ghe_server %}
|
||||
- El nombre personalizado de tu licencia {% data variables.product.prodname_ghe_server %}
|
||||
- El nombre del host de {% data variables.product.product_location_enterprise %}
|
||||
- La versión de {% data variables.product.product_location_enterprise %}
|
||||
- La cuenta de empresa u organización en {% data variables.product.prodname_dotcom_the_website %} está conectada a {% data variables.product.product_location_enterprise %}
|
||||
- El token de autenticación que usa {% data variables.product.product_location_enterprise %} para hacerle solicitudes a {% data variables.product.prodname_dotcom_the_website %}
|
||||
|
||||
Habilitar {% data variables.product.prodname_github_connect %} también crea un {% data variables.product.prodname_github_app %} cuyo dueño es la cuenta empresarial u organizacional de {% data variables.product.prodname_ghe_cloud %}. {% data variables.product.prodname_ghe_server %} usa las credenciales de {% data variables.product.prodname_github_app %} para hacerle solicitudes a {% data variables.product.prodname_dotcom_the_website %}.
|
||||
|
||||
{% data variables.product.prodname_ghe_server %} almacena credenciales desde la {% data variables.product.prodname_github_app %}. Estas credenciales se replicarán en cualquier entorno de alta disponibilidad o de agrupación y se almacenarán en cualquier copia de seguridad, incluidas las instantáneas creadas por {% data variables.product.prodname_enterprise_backup_utilities %}.
|
||||
- Un token de autenticación, que es válido durante una hora
|
||||
- Una clave privada, que se utiliza para generar un nuevo token de autenticación
|
||||
|
||||
Habilitar {% data variables.product.prodname_github_connect %} no permitirá {% data variables.product.prodname_dotcom_the_website %} que los usuarios hagan cambios en {% data variables.product.prodname_ghe_server %}.
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.18" %}
|
||||
Para obtener más información acerca de cómo administrar las cuentas empresariales utilizando la API de GraphQL, consulta la sección "[Cuentas empresariales](/v4/guides/managing-enterprise-accounts)".
|
||||
{% endif %}
|
||||
### Habilitar {% data variables.product.prodname_github_connect %}
|
||||
|
||||
1. Iniciar sesión en {% data variables.product.product_location_enterprise %} y {% data variables.product.prodname_dotcom_the_website %}.
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.business %}
|
||||
{% data reusables.enterprise-accounts.settings-tab %}
|
||||
{% data reusables.enterprise-accounts.github-connect-tab %}
|
||||
5. En "{% data variables.product.prodname_dotcom_the_website %} aún no está habilitado", haz clic en **Enable {% data variables.product.prodname_github_connect %}** (Habilitar). Al hacer clic en **Enable {% data variables.product.prodname_github_connect %}** (Habilitar), aceptas el <a href="/articles/github-connect-addendum-to-the-github-enterprise-license-agreement/" class="dotcom-only">Anexo {% data variables.product.prodname_github_connect %} al Acuerdo de licencia {% data variables.product.prodname_enterprise %}</a>. 
|
||||
6. Al lado de la cuenta de usuario u organización a la que quieres conectarte, haz clic en **Connect** (Conectar). 
|
||||
|
||||
### Desconectar una {% data variables.product.prodname_ghe_cloud %} organización o cuenta de empresa de {% data variables.product.product_location_enterprise %}
|
||||
|
||||
Cuando te desconectas de {% data variables.product.prodname_ghe_cloud %}, se elimina la {% data variables.product.prodname_github_connect %} {% data variables.product.prodname_github_app %} de tu cuenta de empresa u organización, y las credenciales almacenadas en {% data variables.product.product_location_enterprise %} se eliminan.
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.business %}
|
||||
{% data reusables.enterprise-accounts.settings-tab %}
|
||||
{% data reusables.enterprise-accounts.github-connect-tab %}
|
||||
5. Al lado de la cuenta de empresa u organización de la que te quieres desconectar, haz clic en **Disable {% data variables.product.prodname_github_connect %}** (Inhabilitar {% data variables.product.prodname_github_connect %}). 
|
||||
6. Lee la información acerca de la desconexión y haz clic en **Disable {% data variables.product.prodname_github_connect %}** (Inhabilitar {% data variables.product.prodname_github_connect %}). 
|
||||
@@ -1,30 +0,0 @@
|
||||
---
|
||||
title: Habilitar la sincronización automática de licencias de usuario entre el servidor de GitHub Enterprise y GitHub Enterprise Cloud
|
||||
intro: 'Puedes conectar {% data variables.product.product_location_enterprise %} a {% data variables.product.prodname_ghe_cloud %} y permitir que {% data variables.product.prodname_ghe_server %} cargue información de licencias de usuario en tu cuenta de empresa en {% data variables.product.prodname_dotcom_the_website %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/enabling-automatic-user-license-sync-between-github-enterprise-server-and-github-enterprise-cloud
|
||||
- /enterprise/admin/configuration/enabling-automatic-user-license-sync-between-github-enterprise-server-and-github-enterprise-cloud
|
||||
- /admin/configuration/enabling-automatic-user-license-sync-between-github-enterprise-server-and-github-enterprise-cloud
|
||||
permissions: 'Site administrators for {% data variables.product.prodname_ghe_server %} who are also owners of the connected {% data variables.product.prodname_ghe_cloud %} organization or enterprise account can enable automatic user license synchronization.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- GitHub Connect
|
||||
- Licensing
|
||||
---
|
||||
### Acerca de la sincronización de licencias
|
||||
|
||||
Después de que habilitas la sincronización de licencias, podrás ver el uso de licencias para toda tu cuenta empresarial, a través de {% data variables.product.prodname_ghe_server %} y de {% data variables.product.prodname_ghe_cloud %}. {% data variables.product.prodname_github_connect %} sincroniza la licencia entre {% data variables.product.prodname_ghe_server %} y {% data variables.product.prodname_ghe_cloud %} semanalmente. Para obtener más información, consulta la sección "[Administrar tu licencia de {% data variables.product.prodname_enterprise %}](/enterprise/{{currentVersion}}/admin/installation/managing-your-github-enterprise-license)".
|
||||
|
||||
También puedes cargar en forma manual información de licencias de usuario {% data variables.product.prodname_ghe_server %} en {% data variables.product.prodname_ghe_cloud %}. Para obtener más información, consulta "[Conectar {% data variables.product.prodname_ghe_server %} a {% data variables.product.prodname_ghe_cloud %}](/enterprise/{{ currentVersion }}/admin/guides/installation/connecting-github-enterprise-server-to-github-enterprise-cloud)."
|
||||
|
||||
### Habilitar la sincronización de licencias
|
||||
|
||||
Antes de habilitar la sincronización de licencias en {% data variables.product.product_location_enterprise %}, debes conectar {% data variables.product.product_location_enterprise %} a {% data variables.product.prodname_dotcom_the_website %}. Para obtener más información, consulta "[Conectar {% data variables.product.prodname_ghe_server %} a {% data variables.product.prodname_ghe_cloud %}](/enterprise/{{ currentVersion }}/admin/guides/installation/connecting-github-enterprise-server-to-github-enterprise-cloud)."
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.business %}
|
||||
{% data reusables.enterprise-accounts.settings-tab %}
|
||||
{% data reusables.enterprise-accounts.github-connect-tab %}
|
||||
5. En "El servidor puede sincronizar el recuento y uso de licencias de usuario", usa el menú desplegable y selecciona **Enabled** (Habilitado). 
|
||||
@@ -1,35 +0,0 @@
|
||||
---
|
||||
title: Habilitar aportes unificados entre el Servidor de GitHub Enterprise y GitHub.com
|
||||
intro: 'Después de habilitar {% data variables.product.prodname_github_connect %}, puedes permitir {% data variables.product.prodname_ghe_cloud %} que los miembros destaquen su trabajo en {% data variables.product.prodname_ghe_server %} al enviar los recuentos de contribuciones a sus {% data variables.product.prodname_dotcom_the_website %} perfiles.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/developer-workflow/enabling-unified-contributions-between-github-enterprise-and-github-com/
|
||||
- /enterprise/admin/guides/developer-workflow/enabling-unified-contributions-between-github-enterprise-server-and-github-com/
|
||||
- /enterprise/admin/developer-workflow/enabling-unified-contributions-between-github-enterprise-server-and-githubcom/
|
||||
- /enterprise/admin/installation/enabling-unified-contributions-between-github-enterprise-server-and-githubcom
|
||||
- /enterprise/admin/configuration/enabling-unified-contributions-between-github-enterprise-server-and-githubcom
|
||||
- /admin/configuration/enabling-unified-contributions-between-github-enterprise-server-and-githubcom
|
||||
permissions: 'Site administrators for {% data variables.product.prodname_ghe_server %} who are also owners of the connected {% data variables.product.prodname_ghe_cloud %} organization or enterprise account can enable unified contributions between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_dotcom_the_website %}.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- GitHub Connect
|
||||
---
|
||||
Como un administrador del sitio, puedes habilitar a los usuarios finales para que envíen sus recuentos de contribuciones de manera anónima por sus trabajos desde {% data variables.product.prodname_ghe_server %} a sus gráficos de contribuciones {% data variables.product.prodname_dotcom_the_website %}.
|
||||
|
||||
Después de habilitar {% data variables.product.prodname_github_connect %} y habilitar {% data variables.product.prodname_unified_contributions %} en ambos entornos, los usuarios finales a tu instancia pueden conectarse a sus {% data variables.product.prodname_dotcom_the_website %} cuentas y enviar recuentos de contribuciones desde {% data variables.product.prodname_ghe_server %} a {% data variables.product.prodname_dotcom_the_website %}. {% data reusables.github-connect.sync-frequency %} Para obtener más información, consulta "[Enviar tus contribuciones {% data variables.product.prodname_ghe_server %} a tu perfil {% data variables.product.prodname_dotcom_the_website %}](/articles/sending-your-github-enterprise-server-contributions-to-your-github-com-profile/)."
|
||||
|
||||
Si el administrador del sitio inhabilita la funcionalidad o la opción de los programadores de la conexión, los recuentos de contribuciones {% data variables.product.prodname_ghe_server %} se borrarán en {% data variables.product.prodname_dotcom_the_website %}. Si el programador vuelve a conectar sus perfiles luego de inhabilitarlos, se restablecerán los recuentos de contribución para los últimos 90 días.
|
||||
|
||||
{% data variables.product.prodname_ghe_server %} **únicamente** envía el recuento de contribución y la fuente ({% data variables.product.prodname_ghe_server %}) de los usuarios conectados. No envía ningún tipo de información sobre la contribución o cómo se realizó.
|
||||
|
||||
Antes de habilitar {% data variables.product.prodname_unified_contributions %} en {% data variables.product.product_location_enterprise %}, debes conectar {% data variables.product.product_location_enterprise %} a {% data variables.product.prodname_dotcom_the_website %}. Para obtener más información, consulta "[Conectarse a {% data variables.product.prodname_ghe_server %} para {% data variables.product.prodname_dotcom_the_website %}](/enterprise/{{ currentVersion }}/admin/guides/developer-workflow/connecting-github-enterprise-server-to-github-com)."
|
||||
|
||||
{% data reusables.github-connect.access-dotcom-and-enterprise %}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}{% data reusables.enterprise_site_admin_settings.business %}
|
||||
{% data reusables.enterprise-accounts.settings-tab %}
|
||||
{% data reusables.enterprise-accounts.github-connect-tab %}
|
||||
4. En "Los usuarios pueden compartir recuentos de contribuciones en {% data variables.product.prodname_dotcom_the_website %}", haz clic en **Request access (Solicita acceso)**. 
|
||||
5. [Inicia sesión](https://enterprise.github.com/login) en el sitio {% data variables.product.prodname_ghe_server %} para recibir más instrucciones.
|
||||
|
||||
Cuando solicitas acceso, te redireccionaremos al sitio {% data variables.product.prodname_ghe_server %} para comprobar tus términos de servicio actuales. Si {% data variables.product.product_location_enterprise %} utiliza los términos de servicio estándar, la solicitud automáticamente te redireccionará a las instrucciones para habilitar {% data variables.product.prodname_unified_contributions %}. Si estás utilizando los términos de servicio personalizados, registraremos tu solicitud y te contactaremos para configurar el acceso.
|
||||
@@ -1,34 +0,0 @@
|
||||
---
|
||||
title: Habilitar la búsqueda unificada entre el Servidor de GitHub Enterprise y GitHub.com
|
||||
intro: 'Después de habilitar {% data variables.product.prodname_github_connect %}, puedes permitir la búsqueda de {% data variables.product.prodname_dotcom_the_website %} desde {% data variables.product.product_location_enterprise %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/developer-workflow/enabling-unified-search-between-github-enterprise-and-github-com/
|
||||
- /enterprise/admin/guides/developer-workflow/enabling-unified-search-between-github-enterprise-server-and-github-com/
|
||||
- /enterprise/admin/developer-workflow/enabling-unified-search-between-github-enterprise-server-and-githubcom/
|
||||
- /enterprise/admin/installation/enabling-unified-search-between-github-enterprise-server-and-githubcom
|
||||
- /enterprise/admin/configuration/enabling-unified-search-between-github-enterprise-server-and-githubcom
|
||||
- /admin/configuration/enabling-unified-search-between-github-enterprise-server-and-githubcom
|
||||
permissions: 'Site administrators for {% data variables.product.prodname_ghe_server %} who are also owners of the connected {% data variables.product.prodname_ghe_cloud %} organization or enterprise account can enable unified search between {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_dotcom_the_website %}.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- GitHub Connect
|
||||
- GitHub search
|
||||
---
|
||||
Cuando habilitas la búsqueda unificada, los usuarios pueden ver los resultados de la búsqueda desde contenido público y privado en {% data variables.product.prodname_dotcom_the_website %} cuando buscan desde {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
Los usuarios no podrán buscar {% data variables.product.product_location_enterprise %} desde {% data variables.product.prodname_dotcom_the_website %}, incluso si tienen acceso a ambos entornos. Los usuarios solo pueden buscar repositorios privados para los que hayas habilitado {% data variables.product.prodname_unified_search %} y a los que tengan acceso en las organizaciones conectadas {% data variables.product.prodname_ghe_cloud %}. Para obtener más información, consulta "[Acerca de la búsqueda en {% data variables.product.prodname_dotcom %}](/articles/about-searching-on-github/#searching-across-github-enterprise-and-githubcom-simultaneously)" y "[Habilitar la búsqueda de repositorio privado {% data variables.product.prodname_dotcom_the_website %} en tu cuenta {% data variables.product.prodname_ghe_server %}](/articles/enabling-private-github-com-repository-search-in-your-github-enterprise-server-account)."
|
||||
|
||||
Buscar a través de las API REST y GraphQL no incluye {% data variables.product.prodname_dotcom_the_website %} los resultados de búsqueda. No están admitidas la búsqueda avanzada y buscar wikis en {% data variables.product.prodname_dotcom_the_website %}.
|
||||
|
||||
{% data reusables.github-connect.access-dotcom-and-enterprise %}
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}{% data reusables.enterprise_site_admin_settings.business %}
|
||||
{% data reusables.enterprise-accounts.settings-tab %}
|
||||
{% data reusables.enterprise-accounts.github-connect-tab %}
|
||||
5. En "Los usuarios pueden buscar {% data variables.product.prodname_dotcom_the_website %}", utiliza el menú desplegable y haz clic en **Enabled (Habilitado)**. 
|
||||
6. De manera opcional, en "Users can search private repositories on (Los usuarios pueden buscar repositorios privados en) {% data variables.product.prodname_dotcom_the_website %}", utiliza el menú desplegable y haz clic en **Enabled (Habilitado)**. 
|
||||
|
||||
### Leer más
|
||||
|
||||
- "[Conectar {% data variables.product.prodname_ghe_server %} a {% data variables.product.prodname_dotcom_the_website %}](/enterprise/admin/guides/developer-workflow/connecting-github-enterprise-server-to-github-com)"
|
||||
@@ -1,22 +0,0 @@
|
||||
---
|
||||
title: Administrar conexiones entre el servidor de GitHub Enterprise y GitHub Enterprise Cloud
|
||||
intro: 'Con {% data variables.product.prodname_github_connect %}, puedes compartir determinadas características y datos entre {% data variables.product.product_location_enterprise %} y la cuenta de tu organización u emprendimiento {% data variables.product.prodname_ghe_cloud %} en {% data variables.product.prodname_dotcom_the_website %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/developer-workflow/connecting-github-enterprise-to-github-com
|
||||
- /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-and-github-com/
|
||||
- /enterprise/admin/guides/developer-workflow/connecting-github-enterprise-server-and-github-com/
|
||||
- /enterprise/admin/developer-workflow/connecting-github-enterprise-server-and-githubcom/
|
||||
- /enterprise/admin/installation/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud
|
||||
- /enterprise/admin/configuration/managing-connections-between-github-enterprise-server-and-github-enterprise-cloud
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /connecting-github-enterprise-server-to-github-enterprise-cloud
|
||||
- /enabling-unified-search-between-github-enterprise-server-and-githubcom
|
||||
- /enabling-unified-contributions-between-github-enterprise-server-and-githubcom
|
||||
- /enabling-alerts-for-vulnerable-dependencies-on-github-enterprise-server
|
||||
- /enabling-automatic-user-license-sync-between-github-enterprise-server-and-github-enterprise-cloud
|
||||
---
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
---
|
||||
title: Acerca de los nodos de agrupación
|
||||
intro: 'Los "nodos" son instancias de {% data variables.product.prodname_ghe_server %} que operan en una agrupación. Cada nodo ejecuta un conjunto de servicios que se suministra a la agrupación y; por último, a los usuarios.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/about-cluster-nodes
|
||||
- /enterprise/admin/enterprise-management/about-cluster-nodes
|
||||
- /admin/enterprise-management/about-cluster-nodes
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
---
|
||||
{% data reusables.enterprise_clustering.clustering-requires-https %}
|
||||
|
||||
### Recomendaciones mínimas de hardware
|
||||
Cada nodo debe tener un volumen raíz, así como un volumen de datos separado. Estas son las recomendaciones mínimas. Es posible que se requieran más recursos según su uso, como la actividad del usuario y las integraciones seleccionadas.
|
||||
|
||||
| Servicios | Mínimo de memoria requerida | Mínimo de espacio libre de volumen de datos requerido |
|
||||
|:----------------------------------------------------------------------------------------------:|:---------------------------:|:-----------------------------------------------------:|
|
||||
| `job-server`,<br/>`memcache-server`,<br/>`web-server` | 14 GB | 1 GB |
|
||||
| `consul-server`,<br/>`mysql-server`,<br/>`redis-server` | 14 GB | 10 GB |
|
||||
| `git-server`,<br/>`metrics-server`,<br/>`pages-server`,<br/>`storage-server` | 7 GB | 10 GB |
|
||||
| `elasticsearch-server` | 14 GB | 10 GB |
|
||||
|
||||
### Servicios requeridos para agrupamiento
|
||||
Para una redundancia adecuada, usa estos nodos mínimos para poner en funcionamiento cada servicio.
|
||||
|
||||
{% tip %}
|
||||
|
||||
**Nota:** Las necesidades de escalabilidad de tu organización dependerán de muchos factores, entre los que se incluyen el tamaño y la cantidad de repositorios, la cantidad de usuarios y la utilización general.
|
||||
|
||||
{% endtip %}
|
||||
|
||||
| Servicios | Mínimo de nodos requeridos |
|
||||
|:---------------------------------------------------------------------------------------------:|:--------------------------:|
|
||||
| `job-server`,<br/>`memcache-server`,<br/>`metrics-server`,<br/>`web-server` | 2 |
|
||||
| `mysql-server`,<br/>`redis-server` | 2 |
|
||||
| `consul-server` | 3 |
|
||||
| `git-server`,<br/>`pages-server`,<br/>`storage-server` | 3 |
|
||||
| `elasticsearch-server` | 3 |
|
||||
|
||||
### Recomendaciones de diseño de agrupación
|
||||
|
||||
La agrupación permite que los servicios que constituyen {% data variables.product.prodname_ghe_server %} experimenten un aumento gradual independientemente de los demás. Esta flexibilidad puede usarse para diseñar e implementar una agrupación que se adapta a las organizaciones con diferentes requisitos de escalabilidad. Por ejemplo, es posible que algunas organizaciones necesiten una mayor capacidad de almacenamiento para extracciones frecuentes o de gran tamaño, pero el uso del servidor web puede ser relativamente bajo. Otra organización puede tener un buen rendimiento con menos recursos de almacenamiento, pero se necesitan más nodos que ejecuten `pages-server` or `elasticsearch-server`. Hay muchas combinaciones diferentes posibles. Trabaja con tu representante de cuenta para determinar la mejor configuración de agrupación para tus necesidades específicas.
|
||||
|
||||
- Esparcir nodos redundantes por todo el hardware independiente. Si compartes su CPU, memoria o dispositivos de almacenamiento, reducirás el rendimiento e introducirás puntos de falla únicos. Los componentes de trabajo en red compartidos también pueden reducir la capacidad y aumentar el riesgo de pérdida de conectividad en caso de una interrupción.
|
||||
- Uso de almacenamiento rápido. Por lo general, las redes del área de almacenamiento (SAN, por sus siglas en inglés) se optimizan para obtener una máxima utilización de espacio, disponibilidad y tolerancia a fallas, y no un rendimiento absoluto. La agrupación de {% data variables.product.prodname_ghe_server %} brinda redundancia y disponibilidad, y ofrecerá un mejor rendimiento en el almacenamiento más rápido disponible. Se recomienda el almacenamiento SSD local.
|
||||
- Establecer niveles de nodos que tengan sentido para tu organización. Un ejemplo de configuración:
|
||||
- Nivel de cara al usuario con dos nodos y los siguientes servicios:
|
||||
- `web-server`
|
||||
- `jobs-server`
|
||||
- `memcache-server`
|
||||
- Nivel de base de datos con tres nodos y los siguientes servicios:
|
||||
- `consul-server`
|
||||
- `mysql-server`
|
||||
- `redis-server`
|
||||
- Nivel de búsqueda con tres nodos y el siguiente servicio:
|
||||
- `elasticsearch-server`
|
||||
- Nivel de almacenamiento con tres nodos y los siguientes servicios:
|
||||
- `git-server`
|
||||
- `pages-server`
|
||||
- `storage-server`
|
||||
- `metrics-server`
|
||||
|
||||
#### Ejemplo del diagrama de agrupación
|
||||
{% note %}
|
||||
|
||||
**Nota: Este es solo un ejemplo.** El diseño de agrupamiento óptimo de tu organización dependerá de tus necesidades exclusivas. Habla con tu representante dedicado o con {% data variables.contact.contact_enterprise_sales %} para que te podamos ayudar a determinar la mejor configuración del clúster.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
<img src="/assets/images/enterprise/cluster/cluster-diagram.png" alt="Ejemplo de agrupamiento" style="width: 800px;border:0" />
|
||||
@@ -1,32 +0,0 @@
|
||||
---
|
||||
title: Acerca de las agrupaciones
|
||||
intro: 'La agrupación {% data variables.product.prodname_ghe_server %} permite que los servicios que la componen {% data variables.product.prodname_ghe_server %} sean escalados a múltiples nodos.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/overview
|
||||
- /enterprise/admin/clustering/about-clustering
|
||||
- /enterprise/admin/clustering/clustering-overview/
|
||||
- /enterprise/admin/enterprise-management/about-clustering
|
||||
- /admin/enterprise-management/about-clustering
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
---
|
||||
### Arquitectura de agrupación
|
||||
|
||||
{% data variables.product.prodname_ghe_server %} está compuesto por un conjunto de servicios. En una agrupación, estos servicios se ejecutan en múltiples nodos y las solicitudes son un balanceador de carga entre ellos. Los cambios se almacenan automáticamente con copias redundantes en nodos separados. La mayoría de los servicios son pares iguales con otras instancias del mismo servicio. Las excepciones a esto son los servicios `mysql-server` and `redis-server`. Estos operan con un solo nodo _principal_ o más nodos _réplica_.
|
||||
|
||||
Aprende más sobre los [servicios requeridos para los agrupamientos](/enterprise/{{ currentVersion }}/admin/enterprise-management/about-cluster-nodes#services-required-for-clustering).
|
||||
|
||||
### ¿Es adecuada la agrupación para mi organización?
|
||||
|
||||
{% data reusables.enterprise_clustering.clustering-scalability %} Sin embargo, la configuración de un agrupación redundante y escalable puede ser compleja y requiere de una planificación cuidadosa. Se deberá planificar esta complejidad adicional para situaciones durante la instalación, situaciones de recuperación ante desastre y actualizaciones.
|
||||
|
||||
{% data variables.product.prodname_ghe_server %} requiere una baja latencia entre los nodos y no está hecho para redundancia en todas las ubicaciones geográficas.
|
||||
|
||||
La agrupación brinda redundancia, pero no pretende reemplazar una configuración de Alta disponibilidad. Para obtener más información, consulta [Configuración de alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-github-enterprise-server-for-high-availability). Una configuración de conmutación primaria/secundaria es mucho más simple que la agrupación y permitirá satisfacer las necesidades de muchas organizaciones. Para obtener más información, consulta [Diferencias entre agrupación y alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/clustering/differences-between-clustering-and-high-availability-ha/).
|
||||
|
||||
### ¿Cómo obtengo acceso a la agrupación?
|
||||
|
||||
La agrupación está diseñada para situaciones de escalada específica y no pretende ser usada para cada organización. Si te gustaría considerar la agrupación, por favor contacta a tu representante dedicado o a {% data variables.contact.contact_enterprise_sales %}.
|
||||
@@ -1,129 +0,0 @@
|
||||
---
|
||||
title: Configuración de la red de agrupaciones
|
||||
intro: 'La agrupación de {% data variables.product.prodname_ghe_server %} se basa en la resolución de nombre de DNS pertinente, balanceo de carga y comunicación entre los nodos para operar de manera adecuada.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/cluster-network-configuration
|
||||
- /enterprise/admin/enterprise-management/cluster-network-configuration
|
||||
- /admin/enterprise-management/cluster-network-configuration
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
- Networking
|
||||
---
|
||||
### Consideraciones de red
|
||||
|
||||
El diseño de red más simple para una agrupación es colocar los nodos en una LAN única. If a cluster must span subnets, we do not recommend configuring any firewall rules between the networks. The latency between nodes should be less than 1 millisecond.
|
||||
|
||||
{% if currentVersion ver_gt "enterprise-server@2.21" %}For high availability, the latency between the network with the active nodes and the network with the passive nodes must be less than 70 milliseconds. We don't recommend configuring a firewall between the two networks.{% endif %}
|
||||
|
||||
#### Puertos de la aplicación para usuarios finales
|
||||
|
||||
Los puertos de la aplicación permiten que los usuarios finales accedan a Git y a la aplicación web.
|
||||
|
||||
| Port (Puerto) | Descripción | Cifrado |
|
||||
|:------------- |:------------------------------------------------------------------------- |:---------------------------------------------------------------------- |
|
||||
| 22/TCP | Git sobre SSH | Sí |
|
||||
| 25/TCP | SMTP | Requiere STARTTLS |
|
||||
| 80/TCP | HTTP | No<br>(Cuando SSL está habilitado, este puerto redirige a HTTPS) |
|
||||
| 443/TCP | HTTPS | Sí |
|
||||
| 9418/TCP | Puerto de protocolo de Git simple<br>(Inhabilitado en modo privado) | No |
|
||||
|
||||
#### Puertos administrativos
|
||||
|
||||
No se requieren puertos administrativos para el uso de la aplicación básica por parte de los usuarios finales.
|
||||
|
||||
| Port (Puerto) | Descripción | Cifrado |
|
||||
|:------------- |:--------------------------- |:---------------------------------------------------------------------- |
|
||||
| ICMP | Ping de ICMP | No |
|
||||
| 122/TCP | SSH administrativo | Sí |
|
||||
| 161/UDP | SNMP | No |
|
||||
| 8080/TCP | Consola de gestión HTTP | No<br>(Cuando SSL está habilitado, este puerto redirige a HTTPS) |
|
||||
| 8443/TCP | Consola de gestión de HTTPS | Sí |
|
||||
|
||||
#### Puertos de comunicación de agrupación
|
||||
|
||||
Si un cortafuego de nivel de red se coloca entre los nodos estos puertos deberán estar accesibles. La comunicación entre los nodos no está cifrada. Estos puertos no deberían estar accesibles externamente.
|
||||
|
||||
| Port (Puerto) | Descripción |
|
||||
|:------------- |:------------------------------------- |
|
||||
| 1336/TCP | API interna |
|
||||
| 3033/TCP | Acceso SVN interno |
|
||||
| 3037/TCP | Acceso SVN interno |
|
||||
| 3306/TCP | MySQL |
|
||||
| 4486/TCP | Acceso del gobernador |
|
||||
| 5115/TCP | Respaldo de almacenamiento |
|
||||
| 5208/TCP | Acceso SVN interno |
|
||||
| 6379/TCP | Redis |
|
||||
| 8001/TCP | Grafana |
|
||||
| 8090/TCP | Acceso a GPG interno |
|
||||
| 8149/TCP | Acceso al servidor de archivos GitRPC |
|
||||
| 8300/TCP | Consul |
|
||||
| 8301/TCP | Consul |
|
||||
| 8302/TCP | Consul |
|
||||
| 9000/TCP | Git Daemon |
|
||||
| 9102/TCP | Servidor de archivos de páginas |
|
||||
| 9105/TCP | Servidor LFS |
|
||||
| 9200/TCP | ElasticSearch |
|
||||
| 9203/TCP | Servicio de código semántico |
|
||||
| 9300/TCP | ElasticSearch |
|
||||
| 11211/TCP | Memcache |
|
||||
| 161/UDP | SNMP |
|
||||
| 8125/UDP | Statsd |
|
||||
| 8301/UDP | Consul |
|
||||
| 8302/UDP | Consul |
|
||||
| 25827/UDP | Collectd |
|
||||
|
||||
|
||||
### Configurar un balanceador de carga
|
||||
|
||||
Recomendamos un balanceador de carga externo basado en TCP que respalde el protocolo PROXY para distribuir el tráfico a través de los nodos. Considera estas configuraciones del balanceador de carga:
|
||||
|
||||
- Los puertos TCP (que se muestra a continuación) deberán ser reenviados a los nodos que ejecutan el servicio `web-server`. Estos son los únicos nodos que sirven a las solicitudes de clientes externos.
|
||||
- Las sesiones pegajosas no deberían habilitarse.
|
||||
|
||||
{% data reusables.enterprise_installation.terminating-tls %}
|
||||
|
||||
### Manejar información de conexión de clientes
|
||||
|
||||
Dado que las conexiones de clientes con el agrupamiento provienen del balanceador de carga, no se puede perder la dirección IP de cliente. Para capturar adecuadamente la información de la conexión de clientes, se requiere una consideración adicional.
|
||||
|
||||
{% data reusables.enterprise_clustering.proxy_preference %}
|
||||
|
||||
{% data reusables.enterprise_clustering.proxy_xff_firewall_warning %}
|
||||
|
||||
#### Habilitar el soporte PROXY en {% data variables.product.prodname_ghe_server %}
|
||||
|
||||
Recomendamos firmemente habilitar el soporte PROXY para tu instancia y el balanceador de carga.
|
||||
|
||||
- Para tu instancia, usa este comando:
|
||||
```shell
|
||||
$ ghe-config 'loadbalancer.proxy-protocol' 'true' && ghe-cluster-config-apply
|
||||
```
|
||||
- Para el balanceador de carga, usa las instrucciones proporcionadas por tu proveedor.
|
||||
|
||||
{% data reusables.enterprise_clustering.proxy_protocol_ports %}
|
||||
|
||||
#### Habilitar el soporte X-Forwarded-For en {% data variables.product.prodname_ghe_server %}
|
||||
|
||||
{% data reusables.enterprise_clustering.x-forwarded-for %}
|
||||
|
||||
Para habilitar el encabezado `X-Fowarded-For`, usa este comando:
|
||||
|
||||
```shell
|
||||
$ ghe-config 'loadbalancer.http-forward' 'true' && ghe-cluster-config-apply
|
||||
```
|
||||
|
||||
{% data reusables.enterprise_clustering.without_proxy_protocol_ports %}
|
||||
|
||||
#### Configurar revisiones de estado
|
||||
Las comprobaciones de estado permiten que un balanceador de carga deje de enviar tráfico a un nodo que no responde si una comprobación preconfigurada falla en ese nodo. Si un nodo de agrupación falla, las revisiones de estado emparejadas con nodos redundantes brindan alta disponibilidad.
|
||||
|
||||
{% data reusables.enterprise_clustering.health_checks %}
|
||||
{% data reusables.enterprise_site_admin_settings.maintenance-mode-status %}
|
||||
|
||||
### Requisitos de DNS
|
||||
|
||||
{% data reusables.enterprise_clustering.load_balancer_dns %}
|
||||
@@ -1,349 +0,0 @@
|
||||
---
|
||||
title: Configuring high availability replication for a cluster
|
||||
intro: 'You can configure a passive replica of your entire {% data variables.product.prodname_ghe_server %} cluster in a different location, allowing your cluster to fail over to redundant nodes.'
|
||||
miniTocMaxHeadingLevel: 3
|
||||
redirect_from:
|
||||
- /enterprise/admin/enterprise-management/configuring-high-availability-replication-for-a-cluster
|
||||
- /admin/enterprise-management/configuring-high-availability-replication-for-a-cluster
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
- High availability
|
||||
- Infrastructure
|
||||
---
|
||||
### About high availability replication for clusters
|
||||
|
||||
You can configure a cluster deployment of {% data variables.product.prodname_ghe_server %} for high availability, where an identical set of passive nodes sync with the nodes in your active cluster. If hardware or software failures affect the datacenter with your active cluster, you can manually fail over to the replica nodes and continue processing user requests without data loss.
|
||||
|
||||
In high availability mode, each active node syncs regularly with a corresponding passive node. The passive node runs in standby and does not serve applications or process user requests.
|
||||
|
||||
We recommend configuring high availability as a part of a comprehensive disaster recovery plan for {% data variables.product.prodname_ghe_server %}. We also recommend performing regular backups. Para obtener más información, consulta "[Configurar copias de seguridad en tu aparato](/enterprise/admin/configuration/configuring-backups-on-your-appliance)"
|
||||
|
||||
### Prerrequisitos
|
||||
|
||||
#### Hardware and software
|
||||
|
||||
For each existing node in your active cluster, you'll need to provision a second virtual machine with identical hardware resources. For example, if your cluster has 11 nodes and each node has 12 vCPUs, 96 GB of RAM, and 750 GB of attached storage, you must provision 11 new virtual machines that each have 12 vCPUs, 64 GB of RAM, and 750 GB of attached storage.
|
||||
|
||||
On each new virtual machine, install the same version of {% data variables.product.prodname_ghe_server %} that runs on the nodes in your active cluster. You don't need to upload a license or perform any additional configuration. Para obtener más información, consulta "[Configurar una instancia del {% data variables.product.prodname_ghe_server %}](/enterprise/admin/installation/setting-up-a-github-enterprise-server-instance)."
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: The nodes that you intend to use for high availability replication should be standalone {% data variables.product.prodname_ghe_server %} instances. Don't initialize the passive nodes as a second cluster.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
#### Red
|
||||
|
||||
You must assign a static IP address to each new node that you provision, and you must configure a load balancer to accept connections and direct them to the nodes in your cluster's front-end tier.
|
||||
|
||||
We don't recommend configuring a firewall between the network with your active cluster and the network with your passive cluster. The latency between the network with the active nodes and the network with the passive nodes must be less than 70 milliseconds. For more information about network connectivity between nodes in the passive cluster, see "[Cluster network configuration](/enterprise/admin/enterprise-management/cluster-network-configuration)."
|
||||
|
||||
### Creating a high availability replica for a cluster
|
||||
|
||||
- [Assigning active nodes to the primary datacenter](#assigning-active-nodes-to-the-primary-datacenter)
|
||||
- [Adding passive nodes to the cluster configuration file](#adding-passive-nodes-to-the-cluster-configuration-file)
|
||||
- [Example configuration](#example-configuration)
|
||||
|
||||
#### Assigning active nodes to the primary datacenter
|
||||
|
||||
Before you define a secondary datacenter for your passive nodes, ensure that you assign your active nodes to the primary datacenter.
|
||||
|
||||
{% data reusables.enterprise_clustering.ssh-to-a-node %}
|
||||
|
||||
{% data reusables.enterprise_clustering.open-configuration-file %}
|
||||
|
||||
3. Note the name of your cluster's primary datacenter. The `[cluster]` section at the top of the cluster configuration file defines the primary datacenter's name, using the `primary-datacenter` key-value pair. By default, the primary datacenter for your cluster is named `default`.
|
||||
|
||||
```shell
|
||||
[cluster]
|
||||
mysql-master = <em>HOSTNAME</em>
|
||||
redis-master = <em>HOSTNAME</em>
|
||||
<strong>primary-datacenter = default</strong>
|
||||
```
|
||||
|
||||
- Optionally, change the name of the primary datacenter to something more descriptive or accurate by editing the value of `primary-datacenter`.
|
||||
|
||||
4. {% data reusables.enterprise_clustering.configuration-file-heading %} Under each node's heading, add a new key-value pair to assign the node to a datacenter. Use the same value as `primary-datacenter` from step 3 above. For example, if you want to use the default name (`default`), add the following key-value pair to the section for each node.
|
||||
|
||||
datacenter = default
|
||||
|
||||
When you're done, the section for each node in the cluster configuration file should look like the following example. {% data reusables.enterprise_clustering.key-value-pair-order-irrelevant %}
|
||||
|
||||
```shell
|
||||
[cluster "<em>HOSTNAME</em>"]
|
||||
<strong>datacenter = default</strong>
|
||||
hostname = <em>HOSTNAME</em>
|
||||
ipv4 = <em>IP ADDRESS</em>
|
||||
...
|
||||
...
|
||||
```
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: If you changed the name of the primary datacenter in step 3, find the `consul-datacenter` key-value pair in the section for each node and change the value to the renamed primary datacenter. For example, if you named the primary datacenter `primary`, use the following key-value pair for each node.
|
||||
|
||||
consul-datacenter = primary
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% data reusables.enterprise_clustering.apply-configuration %}
|
||||
|
||||
{% data reusables.enterprise_clustering.configuration-finished %}
|
||||
|
||||
After {% data variables.product.prodname_ghe_server %} returns you to the prompt, you've finished assigning your nodes to the cluster's primary datacenter.
|
||||
|
||||
#### Adding passive nodes to the cluster configuration file
|
||||
|
||||
To configure high availability, you must define a corresponding passive node for every active node in your cluster. The following instructions create a new cluster configuration that defines both active and passive nodes. You will:
|
||||
|
||||
- Create a copy of the active cluster configuration file.
|
||||
- Edit the copy to define passive nodes that correspond to the active nodes, adding the IP addresses of the new virtual machines that you provisioned.
|
||||
- Merge the modified copy of the cluster configuration back into your active configuration.
|
||||
- Apply the new configuration to start replication.
|
||||
|
||||
For an example configuration, see "[Example configuration](#example-configuration)."
|
||||
|
||||
1. For each node in your cluster, provision a matching virtual machine with identical specifications, running the same version of {% data variables.product.prodname_ghe_server %}. Note the IPv4 address and hostname for each new cluster node. For more information, see "[Prerequisites](#prerequisites)."
|
||||
|
||||
{% note %}
|
||||
|
||||
**Note**: If you're reconfiguring high availability after a failover, you can use the old nodes from the primary datacenter instead.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% data reusables.enterprise_clustering.ssh-to-a-node %}
|
||||
|
||||
3. Back up your existing cluster configuration.
|
||||
|
||||
cp /data/user/common/cluster.conf ~/$(date +%Y-%m-%d)-cluster.conf.backup
|
||||
|
||||
4. Create a copy of your existing cluster configuration file in a temporary location, like _/home/admin/cluster-passive.conf_. Delete unique key-value pairs for IP addresses (`ipv*`), UUIDs (`uuid`), and public keys for WireGuard (`wireguard-pubkey`).
|
||||
|
||||
grep -Ev "(?:|ipv|uuid|vpn|wireguard\-pubkey)" /data/user/common/cluster.conf > ~/cluster-passive.conf
|
||||
|
||||
5. Remove the `[cluster]` section from the temporary cluster configuration file that you copied in the previous step.
|
||||
|
||||
git config -f ~/cluster-passive.conf --remove-section cluster
|
||||
|
||||
6. Decide on a name for the secondary datacenter where you provisioned your passive nodes, then update the temporary cluster configuration file with the new datacenter name. Replace `SECONDARY` with the name you choose.
|
||||
|
||||
```shell
|
||||
sed -i 's/datacenter = default/datacenter = <em>SECONDARY</em>/g' ~/cluster-passive.conf
|
||||
```
|
||||
|
||||
7. Decide on a pattern for the passive nodes' hostnames.
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Warning**: Hostnames for passive nodes must be unique and differ from the hostname for the corresponding active node.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
8. Open the temporary cluster configuration file from step 3 in a text editor. For example, you can use Vim.
|
||||
|
||||
```shell
|
||||
sudo vim ~/cluster-passive.conf
|
||||
```
|
||||
|
||||
9. In each section within the temporary cluster configuration file, update the node's configuration. {% data reusables.enterprise_clustering.configuration-file-heading %}
|
||||
|
||||
- Change the quoted hostname in the section heading and the value for `hostname` within the section to the passive node's hostname, per the pattern you chose in step 7 above.
|
||||
- Add a new key named `ipv4`, and set the value to the passive node's static IPv4 address.
|
||||
- Add a new key-value pair, `replica = enabled`.
|
||||
|
||||
```shell
|
||||
[cluster "<em>NEW PASSIVE NODE HOSTNAME</em>"]
|
||||
...
|
||||
hostname = <em>NEW PASSIVE NODE HOSTNAME</em>
|
||||
ipv4 = <em>NEW PASSIVE NODE IPV4 ADDRESS</em>
|
||||
<strong>replica = enabled</strong>
|
||||
...
|
||||
...
|
||||
```
|
||||
|
||||
10. Append the contents of the temporary cluster configuration file that you created in step 4 to the active configuration file.
|
||||
|
||||
```shell
|
||||
cat ~/cluster-passive.conf >> /data/user/common/cluster.conf
|
||||
```
|
||||
|
||||
11. Designate the primary MySQL and Redis nodes in the secondary datacenter. Replace `REPLICA MYSQL PRIMARY HOSTNAME` and `REPLICA REDIS PRIMARY HOSTNAME` with the hostnames of the passives node that you provisioned to match your existing MySQL and Redis primaries.
|
||||
|
||||
```shell
|
||||
git config -f /data/user/common/cluster.conf cluster.mysql-master-replica <em>REPLICA MYSQL PRIMARY HOSTNAME</em>
|
||||
git config -f /data/user/common/cluster.conf cluster.redis-master-replica <em>REPLICA REDIS PRIMARY HOSTNAME</em>
|
||||
```
|
||||
|
||||
12. Enable MySQL to fail over automatically when you fail over to the passive replica nodes.
|
||||
|
||||
```shell
|
||||
git config -f /data/user/common/cluster.conf cluster.mysql-auto-failover true
|
||||
```
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Warning**: Review your cluster configuration file before proceeding.
|
||||
|
||||
- In the top-level `[cluster]` section, ensure that the values for `mysql-master-replica` and `redis-master-replica` are the correct hostnames for the passive nodes in the secondary datacenter that will serve as the MySQL and Redis primaries after a failover.
|
||||
- In each section for an active node named `[cluster "<em>ACTIVE NODE HOSTNAME</em>"]`, double-check the following key-value pairs.
|
||||
- `datacenter` should match the value of `primary-datacenter` in the top-level `[cluster]` section.
|
||||
- `consul-datacenter` should match the value of `datacenter`, which should be the same as the value for `primary-datacenter` in the top-level `[cluster]` section.
|
||||
- Ensure that for each active node, the configuration has **one** corresponding section for **one** passive node with the same roles. In each section for a passive node, double-check each key-value pair.
|
||||
- `datacenter` should match all other passive nodes.
|
||||
- `consul-datacenter` should match all other passive nodes.
|
||||
- `hostname` should match the hostname in the section heading.
|
||||
- `ipv4` should match the node's unique, static IPv4 address.
|
||||
- `replica` should be configured as `enabled`.
|
||||
- Take the opportunity to remove sections for offline nodes that are no longer in use.
|
||||
|
||||
To review an example configuration, see "[Example configuration](#example-configuration)."
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
13. Initialize the new cluster configuration. {% data reusables.enterprise.use-a-multiplexer %}
|
||||
|
||||
```shell
|
||||
ghe-cluster-config-init
|
||||
```
|
||||
|
||||
14. After the initialization finishes, {% data variables.product.prodname_ghe_server %} displays the following message.
|
||||
|
||||
```shell
|
||||
Finished cluster initialization
|
||||
```
|
||||
|
||||
{% data reusables.enterprise_clustering.apply-configuration %}
|
||||
|
||||
{% data reusables.enterprise_clustering.configuration-finished %}
|
||||
|
||||
17. Configure a load balancer that will accept connections from users if you fail over to the passive nodes. For more information, see "[Cluster network configuration](/enterprise/admin/enterprise-management/cluster-network-configuration#configuring-a-load-balancer)."
|
||||
|
||||
You've finished configuring high availability replication for the nodes in your cluster. Each active node begins replicating configuration and data to its corresponding passive node, and you can direct traffic to the load balancer for the secondary datacenter in the event of a failure. For more information about failing over, see "[Initiating a failover to your replica cluster](/enterprise/admin/enterprise-management/initiating-a-failover-to-your-replica-cluster)."
|
||||
|
||||
#### Example configuration
|
||||
|
||||
The top-level `[cluster]` configuration should look like the following example.
|
||||
|
||||
```shell
|
||||
[cluster]
|
||||
mysql-master = <em>HOSTNAME OF ACTIVE MYSQL MASTER</em>
|
||||
redis-master = <em>HOSTNAME OF ACTIVE REDIS MASTER</em>
|
||||
primary-datacenter = <em>PRIMARY DATACENTER NAME</em>
|
||||
mysql-master-replica = <em>HOSTNAME OF PASSIVE MYSQL MASTER</em>
|
||||
redis-master-replica = <em>HOSTNAME OF PASSIVE REDIS MASTER</em>
|
||||
mysql-auto-failover = true
|
||||
...
|
||||
```
|
||||
|
||||
The configuration for an active node in your cluster's storage tier should look like the following example.
|
||||
|
||||
```shell
|
||||
...
|
||||
[cluster "<em>UNIQUE ACTIVE NODE HOSTNAME</em>"]
|
||||
datacenter = default
|
||||
hostname = <em>UNIQUE ACTIVE NODE HOSTNAME</em>
|
||||
ipv4 = <em>IPV4 ADDRESS</em>
|
||||
consul-datacenter = default
|
||||
consul-server = true
|
||||
git-server = true
|
||||
pages-server = true
|
||||
mysql-server = true
|
||||
elasticsearch-server = true
|
||||
redis-server = true
|
||||
memcache-server = true
|
||||
metrics-server = true
|
||||
storage-server = true
|
||||
vpn = <em>IPV4 ADDRESS SET AUTOMATICALLY</em>
|
||||
uuid = <em>UUID SET AUTOMATICALLY</em>
|
||||
wireguard-pubkey = <em>PUBLIC KEY SET AUTOMATICALLY</em>
|
||||
...
|
||||
```
|
||||
|
||||
The configuration for the corresponding passive node in the storage tier should look like the following example.
|
||||
|
||||
- Important differences from the corresponding active node are **bold**.
|
||||
- {% data variables.product.prodname_ghe_server %} assigns values for `vpn`, `uuid`, and `wireguard-pubkey` automatically, so you shouldn't define the values for passive nodes that you will initialize.
|
||||
- The server roles, defined by `*-server` keys, match the corresponding active node.
|
||||
|
||||
```shell
|
||||
...
|
||||
<strong>[cluster "<em>UNIQUE PASSIVE NODE HOSTNAME</em>"]</strong>
|
||||
<strong>replica = enabled</strong>
|
||||
<strong>ipv4 = <em>IPV4 ADDRESS OF NEW VM WITH IDENTICAL RESOURCES</em></strong>
|
||||
<strong>datacenter = <em>SECONDARY DATACENTER NAME</em></strong>
|
||||
<strong>hostname = <em>UNIQUE PASSIVE NODE HOSTNAME</em></strong>
|
||||
<strong>consul-datacenter = <em>SECONDARY DATACENTER NAME</em></strong>
|
||||
consul-server = true
|
||||
git-server = true
|
||||
pages-server = true
|
||||
mysql-server = true
|
||||
elasticsearch-server = true
|
||||
redis-server = true
|
||||
memcache-server = true
|
||||
metrics-server = true
|
||||
storage-server = true
|
||||
<strong>vpn = <em>DO NOT DEFINE</em></strong>
|
||||
<strong>uuid = <em>DO NOT DEFINE</em></strong>
|
||||
<strong>wireguard-pubkey = <em>DO NOT DEFINE</em></strong>
|
||||
...
|
||||
```
|
||||
|
||||
### Monitoring replication between active and passive cluster nodes
|
||||
|
||||
Initial replication between the active and passive nodes in your cluster takes time. The amount of time depends on the amount of data to replicate and the activity levels for {% data variables.product.prodname_ghe_server %}.
|
||||
|
||||
You can monitor the progress on any node in the cluster, using command-line tools available via the {% data variables.product.prodname_ghe_server %} administrative shell. For more information about the administrative shell, see "[Accessing the administrative shell (SSH)](/enterprise/admin/configuration/accessing-the-administrative-shell-ssh)."
|
||||
|
||||
- Monitor replication of databases:
|
||||
|
||||
/usr/local/share/enterprise/ghe-cluster-status-mysql
|
||||
|
||||
- Monitor replication of repository and Gist data:
|
||||
|
||||
estado ghe-spokes
|
||||
|
||||
- Monitor replication of attachment and LFS data:
|
||||
|
||||
ghe-storage replication-status
|
||||
|
||||
- Monitor replication of Pages data:
|
||||
|
||||
ghe-dpages replication-status
|
||||
|
||||
You can use `ghe-cluster-status` to review the overall health of your cluster. For more information, see "[Command-line utilities](/enterprise/admin/configuration/command-line-utilities#ghe-cluster-status)."
|
||||
|
||||
### Reconfiguring high availability replication after a failover
|
||||
|
||||
After you fail over from the cluster's active nodes to the cluster's passive nodes, you can reconfigure high availability replication in two ways.
|
||||
|
||||
#### Provisioning and configuring new passive nodes
|
||||
|
||||
After a failover, you can reconfigure high availability in two ways. The method you choose will depend on the reason that you failed over, and the state of the original active nodes.
|
||||
|
||||
1. Provision and configure a new set of passive nodes for each of the new active nodes in your secondary datacenter.
|
||||
|
||||
2. Use the old active nodes as the new passive nodes.
|
||||
|
||||
The process for reconfiguring high availability is identical to the initial configuration of high availability. For more information, see "[Creating a high availability replica for a cluster](#creating-a-high-availability-replica-for-a-cluster)."
|
||||
|
||||
|
||||
### Disabling high availability replication for a cluster
|
||||
|
||||
You can stop replication to the passive nodes for your cluster deployment of {% data variables.product.prodname_ghe_server %}.
|
||||
|
||||
{% data reusables.enterprise_clustering.ssh-to-a-node %}
|
||||
|
||||
{% data reusables.enterprise_clustering.open-configuration-file %}
|
||||
|
||||
3. In the top-level `[cluster]` section, delete the `mysql-auto-failover`, `redis-master-replica`, and `mysql-master-replica` key-value pairs.
|
||||
|
||||
4. Delete each section for a passive node. For passive nodes, `replica` is configured as `enabled`.
|
||||
|
||||
{% data reusables.enterprise_clustering.apply-configuration %}
|
||||
|
||||
{% data reusables.enterprise_clustering.configuration-finished %}
|
||||
|
||||
After {% data variables.product.prodname_ghe_server %} returns you to the prompt, you've finished disabling high availability replication.
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
title: Diferencias entre los agrupamientos y la disponibilidad alta (HA)
|
||||
intro: '{% data variables.product.prodname_ghe_server %} La configuración de alta disponibilidad es una configuración de conmutación primaria/secundaria que brinda redundancia mientras que el agrupamiento brinda redundancia y escalabilidad al distribuir cargas de lectura y escritura entre múltiples nodos.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/differences-between-clustering-and-high-availability-ha
|
||||
- /enterprise/admin/enterprise-management/differences-between-clustering-and-high-availability-ha
|
||||
- /admin/enterprise-management/differences-between-clustering-and-high-availability-ha
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
- High availability
|
||||
- Infrastructure
|
||||
---
|
||||
### Escenarios de fallas
|
||||
|
||||
Tanto la alta disponibilidad (HA, por sus siglas en inglés) como el agrupamiento brindan redundancia al eliminar el nodo único como punto de falla. Pueden brindar disponibilidad en estos escenarios:
|
||||
|
||||
{% data reusables.enterprise_installation.ha-and-clustering-failure-scenarios %}
|
||||
|
||||
### Escalabilidad
|
||||
|
||||
{% data reusables.enterprise_clustering.clustering-scalability %} En HA, la escala de este aparato depende exclusivamente del nodo principal y la cara no se distribuye al servidor de réplica.
|
||||
|
||||
### Diferencias en el método de conmutación y configuración
|
||||
|
||||
| Característica | Configuración de conmutación | Método de conmutación |
|
||||
|:------------------------------------ |:--------------------------------------------------------------------------------------- |:---------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Configuración de alta disponibilidad | Registro de DNS con un TTL bajo que apunta al aparato principal o balanceador de carga. | Debes impulsar manualmente el aparato de réplica en las configuraciones de conmutación DNS y balanceador de carga. |
|
||||
| Agrupación | El registro DNS debe apuntar a un balanceador de carga. | Si falla un nodo detrás de un balanceador de carga, el tráfico se envía automáticamente a los otros nodos de funcionamiento. |
|
||||
|
||||
### Copias de seguridad y recuperación ante desastres
|
||||
|
||||
HA y Clustering no deben ser considerados como un reemplazo para copias de seguridad regulares. Para obtener más información, consulta "[Configurar copias de seguridad en tu aparato](/enterprise/admin/guides/installation/configuring-backups-on-your-appliance)"
|
||||
|
||||
### Supervisar
|
||||
|
||||
Las características de disponibilidad, especialmente las que tienen conmutación automática como Agrupación, pueden enmascarar una falla dado que el servicio generalmente no se ve interrumpido cuando algo falla. Ya sea que esté usando HA o Agrupación, supervisar el estado de cada instancia es importante para que puedas estar al tanto cuando se produce una falla. Para obtener más información sobre la supervisión, consulta "
|
||||
[Umbrales de alerta recomendados](/enterprise/{{ currentVersion }}/admin/guides/installation/recommended-alert-thresholds/)" y [Supervisar nodos de agrupación](/enterprise/{{ currentVersion}}/admin/guides/clustering/monitoring-cluster-nodes/)".</p>
|
||||
|
||||
|
||||
|
||||
### Leer más
|
||||
|
||||
- Para obtener más información acerca del {% data variables.product.prodname_ghe_server %} Agrupamiento, visite la sección de "[Acerca del agrupamiento](/enterprise/{{ currentVersion}}/admin/guides/clustering/about-clustering/)."
|
||||
- Para obtener más información sobre HA, consulta "[Configurar {% data variables.product.prodname_ghe_server %} para alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-github-enterprise-server-for-high-availability/)".
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
title: Evacuar un nodo de agrupación
|
||||
intro: Puedes evacuar los servicios de datos en un nodo de agrupación.
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/evacuating-a-cluster-node
|
||||
- /enterprise/admin/enterprise-management/evacuating-a-cluster-node
|
||||
- /admin/enterprise-management/evacuating-a-cluster-node
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
---
|
||||
Si solo tienes tres nodos en tu agrupación de servicios de datos, no puedes evacuar los nodos, porque `ghe-spokes` no tiene otro lugar para realizar una copia. Si tienes cuatro o más, `ghe-spokes` moverá todos los repositorios del nodo evacuado.
|
||||
|
||||
Si colocas fuera de línea un nodo que tiene otros servicios de datos (como git, páginas o almacenamiento), debes evacuar cada nodo antes de ponerlo fuera de línea.
|
||||
|
||||
1. Encuentra la `uuid` del nodo con el comando `ghe-config`.
|
||||
|
||||
```
|
||||
$ ghe-config cluster._hostname_.uuid
|
||||
```
|
||||
|
||||
2. Deberás supervisar el estado de tu nodo mientras se copian los datos. Idealmente, el nodo no debería estar fuera de línea hasta que se complete la copia. Para supervisar el estado de tu nodo, ejecuta alguno de los siguientes comandos:
|
||||
|
||||
Para Git
|
||||
```
|
||||
ghe-spokes evac-status
|
||||
```
|
||||
Para {% data variables.product.prodname_pages %}
|
||||
```
|
||||
echo "select count(*) from pages_replicas where host = 'pages-server-<uuid>'" | ghe-dbconsole -y
|
||||
```
|
||||
Para almacenamiento
|
||||
```
|
||||
ghe-storage evacuation-status
|
||||
```
|
||||
|
||||
3. Una vez que la copia esté completa, puedes evacuar el servicio de almacenamiento. Ejecuta alguno de los siguientes comandos:
|
||||
|
||||
Para Git
|
||||
```
|
||||
ghe-spokes server evacuate git-server-<uuid>
|
||||
```
|
||||
Para {% data variables.product.prodname_pages %}
|
||||
```
|
||||
ghe-dpages evacuate pages-server-<uuid>
|
||||
```
|
||||
Para almacenamiento, coloca el nodo fuera de línea
|
||||
```
|
||||
ghe-storage offline storage-server-<uuid>
|
||||
```
|
||||
luego evacúa
|
||||
```
|
||||
ghe-storage evacuate storage-server-<uuid>
|
||||
```
|
||||
@@ -1,26 +0,0 @@
|
||||
---
|
||||
title: Configurar el agrupamiento
|
||||
intro: Aprende sobre agrupaciones y diferencias con alta disponibilidad.
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/setting-up-the-cluster-instances
|
||||
- /enterprise/admin/clustering/managing-a-github-enterprise-server-cluster
|
||||
- /enterprise/admin/guides/clustering/managing-a-github-enterprise-cluster/
|
||||
- /enterprise/admin/enterprise-management/configuring-clustering
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /about-clustering
|
||||
- /differences-between-clustering-and-high-availability-ha
|
||||
- /about-cluster-nodes
|
||||
- /cluster-network-configuration
|
||||
- /initializing-the-cluster
|
||||
- /upgrading-a-cluster
|
||||
- /monitoring-cluster-nodes
|
||||
- /replacing-a-cluster-node
|
||||
- /evacuating-a-cluster-node
|
||||
- /configuring-high-availability-replication-for-a-cluster
|
||||
- /initiating-a-failover-to-your-replica-cluster
|
||||
---
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
---
|
||||
title: Inicializar la agrupación
|
||||
intro: 'Una agrupación de {% data variables.product.prodname_ghe_server %} se debe configurar con una licencia y se debe inicializar mediante un shell administrativo (SSH).'
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/initializing-the-cluster
|
||||
- /enterprise/admin/enterprise-management/initializing-the-cluster
|
||||
- /admin/enterprise-management/initializing-the-cluster
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
---
|
||||
{% data reusables.enterprise_clustering.clustering-requires-https %}
|
||||
|
||||
### Instalar {% data variables.product.prodname_ghe_server %}
|
||||
|
||||
1. En cada nodo de agrupación, suministra e instala {% data variables.product.prodname_ghe_server %}. Para obtener más información, consulta "[Configurar una instancia {% data variables.product.prodname_ghe_server %} ](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-github-enterprise-server-instance)."
|
||||
2. Mediante el shell administrativo o DHCP, configura **solo** la dirección IP de cada nodo. No configures los otros parámetros.
|
||||
|
||||
### Configurar el primer nodo
|
||||
|
||||
1. Realiza una conexión con el nodo que será designado como `mysqu.-master` en `clussster.conf`. Para obtener más información, consulta "[Acerca del archivo de configuración de agrupación](/enterprise/{{ currentVersion }}/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)</a>."
|
||||
2. En tu navegador web, visita `https://<ip address>:8443/setup/`.
|
||||
{% data reusables.enterprise_installation.upload-a-license-file %}
|
||||
{% data reusables.enterprise_installation.save-settings-in-web-based-mgmt-console %}
|
||||
{% data reusables.enterprise_installation.instance-will-restart-automatically %}
|
||||
|
||||
### Inicializar la agrupación
|
||||
|
||||
Para inicializar la agrupación, necesitas un archivo de configuración de agrupación (`cluster.conf`). Para obtener más información, consulta "[Acerca del archivo de configuración de agrupación](/enterprise/{{ currentVersion }}/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file)</a>".
|
||||
|
||||
1. Desde el primer nodo que se configuró, ejecuta `ghe-cluster-config. init`. De esta manera, se inicializará la agrupación si existen nodos en el archivo de configuración de la agrupación que no están configurados.
|
||||
2. Ejecuta `ghe-cluster-config-apply`. Esto validará el archivo `cluster.conf`, aplicará la configuración a cada archivo del nodo y traerá los servicios configurados en cada nodo.
|
||||
|
||||
Para comprobar el estado de una agrupación en funcionamiento, usa el comando `ghe-cluster-status`.
|
||||
|
||||
### Acerca del archivo de configuración de la agrupación
|
||||
|
||||
El archivo de configuración de la agrupación (`cluster.conf`) define los nodos en la agrupación, y los servicios que ejecutan. Para obtener más información, consulta "[Acerca de los nodos de agrupación](/enterprise/{{ currentVersion }}/admin/guides/clustering/about-cluster-nodes)".
|
||||
|
||||
Este ejemplo `cluster.conf` define una agrupación con cinco nodos.
|
||||
|
||||
- Dos nodos (llamados `ghe-app-node-\*`) ejecutan los servicios `web-server` y `job-server` responsables de atender las solicitudes de los clientes.
|
||||
- Tres nodos (llamados `ghe-data-node-\*`) ejecutan los servicios responsables del almacenamiento y la recuperación de los datos de {% data variables.product.prodname_ghe_server %}.
|
||||
|
||||
Los nombres de los nodos pueden ser cualquier nombre de host válido que elijas. Los nombres son conjuntos de nombres de host de cada nodo y también se agregarán a `/etc/hosts` en cada nodo, de manera que los nodos puedan ser resolubles localmente entre sí.
|
||||
|
||||
Especifica el primer nodo de agrupación que configuraste como MySQL principal mediante `mysql-server` y `mysql-master`.
|
||||
|
||||
```
|
||||
[cluster]
|
||||
mysql-master = ghe-data-node-1
|
||||
redis-master = ghe-data-node-1
|
||||
primary-datacenter = default
|
||||
[cluster "ghe-app-node-1"]
|
||||
hostname = ghe-app-node-1
|
||||
ipv4 = 192.168.0.2
|
||||
# ipv6 = fd12:3456:789a:1::2
|
||||
web-server = true
|
||||
job-server = true
|
||||
[cluster "ghe-app-node-2"]
|
||||
hostname = ghe-app-node-2
|
||||
ipv4 = 192.168.0.3
|
||||
# ipv6 = fd12:3456:789a:1::3
|
||||
web-server = true
|
||||
job-server = true
|
||||
[cluster "ghe-data-node-1"]
|
||||
hostname = ghe-data-node-1
|
||||
ipv4 = 192.168.0.4
|
||||
# ipv6 = fd12:3456:789a:1::4
|
||||
consul-server = true
|
||||
consul-datacenter = default
|
||||
git-server = true
|
||||
pages-server = true
|
||||
mysql-server = true
|
||||
elasticsearch-server = true
|
||||
redis-server = true
|
||||
memcache-server = true
|
||||
metrics-server = true
|
||||
storage-server = true
|
||||
[cluster "ghe-data-node-2"]
|
||||
hostname = ghe-data-node-2
|
||||
ipv4 = 192.168.0.5
|
||||
# ipv6 = fd12:3456:789a:1::5
|
||||
consul-server = true
|
||||
consul-datacenter = default
|
||||
git-server = true
|
||||
pages-server = true
|
||||
mysql-server = true
|
||||
elasticsearch-server = true
|
||||
redis-server = true
|
||||
memcache-server = true
|
||||
metrics-server = true
|
||||
storage-server = true
|
||||
[cluster "ghe-data-node-3"]
|
||||
hostname = ghe-data-node-3
|
||||
ipv4 = 192.168.0.6
|
||||
# ipv6 = fd12:3456:789a:1::6
|
||||
consul-server = true
|
||||
consul-datacenter = default
|
||||
git-server = true
|
||||
pages-server = true
|
||||
mysql-server = true
|
||||
elasticsearch-server = true
|
||||
redis-server = true
|
||||
memcache-server = true
|
||||
metrics-server = true
|
||||
storage-server = true
|
||||
```
|
||||
|
||||
Crea el archivo `/data/user/common/cluster.conf` en el primer nodo configurado. Por ejemplo, usando `vim`:
|
||||
|
||||
```shell
|
||||
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf
|
||||
```
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
title: Initiating a failover to your replica cluster
|
||||
intro: 'If your {% data variables.product.prodname_ghe_server %} cluster fails, you can fail over to the passive replica .'
|
||||
redirect_from:
|
||||
- /enterprise/admin/enterprise-management/initiating-a-failover-to-your-replica-cluster
|
||||
- /admin/enterprise-management/initiating-a-failover-to-your-replica-cluster
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
- High availability
|
||||
- Infrastructure
|
||||
---
|
||||
### About failover to your replica cluster
|
||||
|
||||
In the event of a failure at your primary datacenter, you can fail over to the replica nodes in the secondary datacenter if you configure a passive replica node for each node in your active cluster.
|
||||
|
||||
The time required to fail over depends on how long it takes to manually promote the replica cluster and redirect traffic.
|
||||
|
||||
Promoting a replica cluster does not automatically set up replication for the existing cluster. After promoting a replica cluster, you can reconfigure replication from the new active cluster. For more information, see "[Configuring high availability for a cluster](/enterprise/admin/enterprise-management/configuring-high-availability-replication-for-a-cluster#reconfiguring-high-availability-replication-after-a-failover)."
|
||||
|
||||
### Prerrequisitos
|
||||
|
||||
To fail over to passive replica nodes, you must have configured high availability for your cluster. For more information, see "[Configuring high availability for a cluster](/enterprise/admin/enterprise-management/configuring-high-availability-replication-for-a-cluster)."
|
||||
|
||||
### Initiating a failover to your replica cluster
|
||||
|
||||
1. SSH into any passive node in the secondary datacenter for your cluster. Para obtener más información, consulta "[Acceder al shell administrativo (SSH)](/enterprise/admin/configuration/accessing-the-administrative-shell-ssh#enabling-access-to-the-administrative-shell-via-ssh)."
|
||||
|
||||
2. Initialize the failover to the secondary cluster and configure it to act as the active nodes.
|
||||
|
||||
```shell
|
||||
ghe-cluster-failover
|
||||
```
|
||||
|
||||
{% data reusables.enterprise_clustering.configuration-finished %}
|
||||
|
||||
3. Update the DNS record to point to the IP address of the load balancer for your passive cluster. El tráfico es direccionado a la réplica después de que transcurra el período TTL.
|
||||
|
||||
After {% data variables.product.prodname_ghe_server %} returns you to the prompt and your DNS updates have propagated, you've finished failing over. Users can access {% data variables.product.prodname_ghe_server %} using the usual hostname for your cluster.
|
||||
@@ -1,111 +0,0 @@
|
||||
---
|
||||
title: Monitoring cluster nodes
|
||||
intro: 'A {% data variables.product.prodname_ghe_server %} cluster is comprised of redundant services that are distributed across two or more nodes. If an individual service or an entire node were to fail, it should not be immediately apparent to users of the cluster. However since performance and redundancy are affected, it is important to monitor the health of a {% data variables.product.prodname_ghe_server %} cluster.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/monitoring-cluster-nodes
|
||||
- /enterprise/admin/enterprise-management/monitoring-cluster-nodes
|
||||
- /admin/enterprise-management/monitoring-cluster-nodes
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Monitoring
|
||||
- Performance
|
||||
---
|
||||
### Manually checking cluster status
|
||||
|
||||
{% data variables.product.prodname_ghe_server %} has a built-in command line utility for monitoring the health of the cluster. From the administrative shell, running the `ghe-cluster-status` command executes a series of health checks on each node including verification of connectivity and service status. The output shows all test results including the text `ok` or `error`. For example, to only display failing tests, run:
|
||||
|
||||
```shell
|
||||
admin@ghe-data-node-0:~$ <em>ghe-cluster-status | grep error</em>
|
||||
> mysql-replication ghe-data-node-0: error Stopped
|
||||
> mysql cluster: error
|
||||
```
|
||||
{% note %}
|
||||
|
||||
**Note:** If there are no failing tests, this command produces no output. This indicates the cluster is healthy.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
### Monitoring cluster status with Nagios
|
||||
|
||||
You can configure [Nagios](https://www.nagios.org/) to monitor {% data variables.product.prodname_ghe_server %}. In addition to monitoring basic connectivity to each of the cluster nodes, you can check the cluster status by configuring Nagios to use the `ghe-cluster-status -n` command. This returns output in a format that Nagios understands.
|
||||
|
||||
#### Prerequisites
|
||||
* Linux host running Nagios.
|
||||
* Network access to the {% data variables.product.prodname_ghe_server %} cluster.
|
||||
|
||||
#### Configuring the Nagios host
|
||||
1. Generate an SSH key with a blank passphrase. Nagios uses this to authenticate to the {% data variables.product.prodname_ghe_server %} cluster.
|
||||
```shell
|
||||
nagiosuser@nagios:~$ <em>ssh-keygen -t rsa -b 4096</em>
|
||||
> Generating public/private rsa key pair.
|
||||
> Enter file in which to save the key (/home/nagiosuser/.ssh/id_rsa):
|
||||
> Enter passphrase (empty for no passphrase): <em>leave blank by pressing enter</em>
|
||||
> Enter same passphrase again: <em>press enter again</em>
|
||||
> Your identification has been saved in /home/nagiosuser/.ssh/id_rsa.
|
||||
> Your public key has been saved in /home/nagiosuser/.ssh/id_rsa.pub.
|
||||
```
|
||||
{% danger %}
|
||||
|
||||
**Security Warning:** An SSH key without a passphrase can pose a security risk if authorized for full access to a host. Limit this key's authorization to a single read-only command.
|
||||
|
||||
{% enddanger %}
|
||||
2. Copy the private key (`id_rsa`) to the `nagios` home folder and set the appropriate ownership.
|
||||
```shell
|
||||
nagiosuser@nagios:~$ <em>sudo cp .ssh/id_rsa /var/lib/nagios/.ssh/</em>
|
||||
nagiosuser@nagios:~$ <em>sudo chown nagios:nagios /var/lib/nagios/.ssh/id_rsa</em>
|
||||
```
|
||||
|
||||
3. To authorize the public key to run *only* the `ghe-cluster-status -n` command, use a `command=` prefix in the `/data/user/common/authorized_keys` file. From the administrative shell on any node, modify this file to add the public key generated in step 1. For example: `command="/usr/local/bin/ghe-cluster-status -n" ssh-rsa AAAA....`
|
||||
|
||||
4. Validate and copy the configuration to each node in the cluster by running `ghe-cluster-config-apply` on the node where you modified the `/data/user/common/authorized_keys` file.
|
||||
|
||||
```shell
|
||||
admin@ghe-data-node-0:~$ <em>ghe-cluster-config-apply</em>
|
||||
> Validating configuration
|
||||
> ...
|
||||
> Finished cluster configuration
|
||||
```
|
||||
|
||||
5. To test that the Nagios plugin can successfully execute the command, run it interactively from Nagios host.
|
||||
```shell
|
||||
nagiosuser@nagios:~$ /usr/lib/nagios/plugins/check_by_ssh -l admin -p 122 -H <em>hostname</em> -C "ghe-cluster-status -n" -t 30
|
||||
> OK - No errors detected
|
||||
```
|
||||
|
||||
6. Create a command definition in your Nagios configuration.
|
||||
###### Example definition
|
||||
|
||||
```
|
||||
define command {
|
||||
command_name check_ssh_ghe_cluster
|
||||
command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -C "ghe-cluster-status -n" -l admin -p 122 -t 30
|
||||
}
|
||||
```
|
||||
7. Add this command to a service definition for a node in the {% data variables.product.prodname_ghe_server %} cluster.
|
||||
|
||||
###### Example definition
|
||||
|
||||
```
|
||||
define host{
|
||||
use generic-host
|
||||
host_name ghe-data-node-0
|
||||
alias ghe-data-node-0
|
||||
address 10.11.17.180
|
||||
}
|
||||
|
||||
define service{
|
||||
use generic-service
|
||||
host_name ghe-data-node-0
|
||||
service_description GitHub Cluster Status
|
||||
check_command check_ssh_ghe_cluster
|
||||
}
|
||||
```
|
||||
|
||||
Once you add the definition to Nagios, the service check executes according to your configuration. You should be able to see the newly configured service in the Nagios web interface.
|
||||
|
||||

|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
title: Reemplazar un nodo de agrupación
|
||||
intro: 'Para reemplazar un nodo {% data variables.product.prodname_ghe_server %}, debes marcar los nodos fuera de línea afectados en el archivo de configuración de la agrupación (`cluster.conf`) y agregar los nodos de reemplazo. Esto puede ser necesario en caso de que un nodo falle, o para agregar un nodo con más recursos a fin de aumentar el rendimiento.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/replacing-a-cluster-node
|
||||
- /enterprise/admin/enterprise-management/replacing-a-cluster-node
|
||||
- /admin/enterprise-management/replacing-a-cluster-node
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
---
|
||||
{% warning %}
|
||||
|
||||
**Advertencia** El nodo de reemplazo debe usar un nodo de nombre de host que no haya sido usado anteriormente en la agrupación para evitar conflictos.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
### Reemplazar un nodo funcional
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-provision %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-admin-configure-ip %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-modify-cluster-conf %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-initialize-new-node %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-config-node %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-need-three-nodes %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-mark-offline %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-validate-config %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-replacement-name %}
|
||||
|
||||
### Reemplazar un nodo en una emergencia
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-provision %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-admin-configure-ip %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-mark-offline %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-validate-config %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-modify-cluster-conf %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-replacement-name %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-initialize-new-node %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-config-node %}
|
||||
{% data reusables.enterprise_clustering.replacing-a-cluster-node-need-three-nodes %}
|
||||
@@ -1,81 +0,0 @@
|
||||
---
|
||||
title: Actualizar una agrupación
|
||||
intro: 'Usa el shell administrativo (SSH) para actualizar una agrupación de {% data variables.product.prodname_ghe_server %} a la última versión.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/clustering/upgrading-a-cluster
|
||||
- /enterprise/admin/enterprise-management/upgrading-a-cluster
|
||||
- /admin/enterprise-management/upgrading-a-cluster
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- Enterprise
|
||||
- Upgrades
|
||||
---
|
||||
### Actualizar con un hotpatch
|
||||
{% data reusables.enterprise_installation.hotpatching-explanation %}El script de instalación de hotpatch instala el hotpatch en cada nodo de la agrupación y reinicia los servicios en su secuencia adecuada para evitar el tiempo de inactividad.
|
||||
|
||||
1. Realiza una copia de seguridad de tus datos con [{% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils#readme).
|
||||
2. Desde el shell administrativo de cualquier nodo, usa el comando ` ghe-cluster-hotpatch` para instalar el último hotpatch. Puedes proporcionar una URL para un hotpatch, o descargar manualmente el hotpatch y especificar un nombre de archivo local.
|
||||
```shell
|
||||
$ ghe-cluster-hotpatch https://<em>HOTPATCH-URL/FILENAME</em>.hpkg
|
||||
```
|
||||
|
||||
### Actualizar con un paquete de actualización
|
||||
Usa un paquete de actualización para actualizar una agrupación de {% data variables.product.prodname_ghe_server %} a la última característica de lanzamiento. Por ejemplo, puedes actualizar desde `2.11` hasta `2.13`.
|
||||
|
||||
#### Preparar para una actualización
|
||||
|
||||
1. Revisa la [Configuración de red de la agrupación](/enterprise/admin/guides/clustering/cluster-network-configuration) para la versión a la que deseas avanzar y realiza las actualizaciones conforme sea necesario.
|
||||
2. Realiza una copia de seguridad de tus datos con [{% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils#readme).
|
||||
3. Planifica una ventana de mantenimiento para los usuarios finales de tu agrupación de {% data variables.product.prodname_ghe_server %}, dado que no estará disponible para usar normalmente durante la actualización. El modo de mantenimiento bloquea el acceso de los usuarios e impide que se realicen cambios en los datos mientras la actualización de la agrupación está en curso.
|
||||
4. En [{% data variables.product.prodname_ghe_server %} Descargar página](https://enterprise.github.com/download), copia la URL para el archivo de actualización *.pkg* en el portapapeles.
|
||||
5. Desde el shell administrativo de cualquier nodo, usa el comando `ghe-cluster-each` combinado con `curl` para descargar el paquete de lanzamiento para cada nodo en un solo paso. Usa la URL que copiaste en el paso anterior como argumento.
|
||||
```shell
|
||||
$ ghe-cluster-each -- "cd /home/admin && curl -L -O https://<em>PACKAGE-URL</em>.pkg"
|
||||
> ghe-app-node-1: % Total % Received % Xferd Average Speed Time Time Time Current
|
||||
> ghe-app-node-1: Dload Upload Total Spent Left Speed
|
||||
> 100 496M 100 496M 0 0 24.2M 0 0:00:20 0:00:20 --:--:-- 27.4M
|
||||
> ghe-data-node-2: % Total % Received % Xferd Average Speed Time Time Time Current
|
||||
> ghe-data-node-2: Dload Upload Total Spent Left Speed
|
||||
> 100 496M 100 496M 0 0 21.3M 0 0:00:23 0:00:23 --:--:-- 25.8M
|
||||
> ghe-data-node-1: % Total % Received % Xferd Average Speed Time Time Time Current
|
||||
> ghe-data-node-1: Dload Upload Total Spent Left Speed
|
||||
> 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.6M
|
||||
> ghe-app-node-2: % Total % Received % Xferd Average Speed Time Time Time Current
|
||||
> ghe-app-node-2: Dload Upload Total Spent Left Speed
|
||||
> 100 496M 100 496M 0 0 19.8M 0 0:00:25 0:00:25 --:--:-- 17.6M
|
||||
> ghe-data-node-3: % Total % Received % Xferd Average Speed Time Time Time Current
|
||||
> ghe-data-node-3: Dload Upload Total Spent Left Speed
|
||||
> 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.5M
|
||||
```
|
||||
6. Identifica el nodo MySQL principal, que se definió como `mysql-master = <hostname>` en `cluster.conf`. Este será el último nodo que se actualizará.
|
||||
|
||||
#### Actualizar los nodos de la agrupación
|
||||
|
||||
1. Habilita el modo de mantenimiento de acuerdo con tu ventana planificada conectando el shell administrativo de cualquier nodo de agrupación y ejecutando `ghe-cluster-maintenance -s`.
|
||||
2. **Con la excepción del nodo primario de MySQL**, conéctate al shell administrativo de cada uno de los nodos de {% data variables.product.prodname_ghe_server %}. Ejecuta el comando `ghe-upgrade`, suministrando el nombre del archivo del paquete que descargaste en el Paso 4 de [Preparar una actualización](#preparing-to-upgrade):
|
||||
```shell
|
||||
$ ghe-upgrade <em>PACKAGE-FILENAME</em>.pkg
|
||||
> *** verifying upgrade package signature...
|
||||
> 497MB 0:00:04 [ 117MB/s] [==========================================>] 100%
|
||||
> gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A
|
||||
> gpg: checking the trustdb
|
||||
> gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
|
||||
> gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
|
||||
> gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) > <enterprise@github.com>"
|
||||
```
|
||||
3. El proceso de actualización reiniciará el nodo MySQL principal una vez que esté completo. Verifica que puedes `hacer ping` en cada nodo luego del reinicio.
|
||||
4. Conecta con el shell administrativo del nodo MySQL principal. Ejecuta el comando `ghe-upgrade`, suministrando el nombre del archivo del paquete que descargaste en el Paso 4 de [Preparar una actualización](#preparing-to-upgrade):
|
||||
```shell
|
||||
$ ghe-upgrade <em>PACKAGE-FILENAME</em>.pkg
|
||||
> *** verifying upgrade package signature...
|
||||
> 497MB 0:00:04 [ 117MB/s] [==========================================>] 100%
|
||||
> gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A
|
||||
> gpg: checking the trustdb
|
||||
> gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
|
||||
> gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
|
||||
> gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) > <enterprise@github.com>"
|
||||
```
|
||||
5. El proceso de actualización reiniciará el nodo MySQL principal una vez que esté completo. Verifica que puedes `hacer ping` en cada nodo luego del reinicio.
|
||||
6. Cierra el modo de mantenimiento desde el shell administativo de cualquier nodo al ejecutar `ghe-cluster-maintenance -u`.
|
||||
@@ -1,31 +0,0 @@
|
||||
---
|
||||
title: Acerca de la Replicación geográfica
|
||||
intro: 'La Replicación geográfica en {% data variables.product.prodname_ghe_server %} utiliza múltiples réplicas activas para responder las solicitudes de los centros de datos distribuidos geográficamente.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/about-geo-replication
|
||||
- /enterprise/admin/enterprise-management/about-geo-replication
|
||||
- /admin/enterprise-management/about-geo-replication
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- High availability
|
||||
---
|
||||
Contar con múltiples réplicas puede permitir una menor distancia a la réplica más cercana. Por ejemplo, una organización con oficinas en San Francisco, Nueva York y Londres podrían ejecutar el aparato principal en un centro de datos cercano a Nueva York y dos réplicas en centros de datos cercanos a San Francisco y Londres. Al usar DNS con información de geolocalización, se puede dirigir a los usuarios al servidor disponible más cercano para que accedan a los datos más rápido. Designar como principal el aparato cercano a Nueva York ayuda a reducir la latencia entre los hosts, a diferencia de si se designa como principal el aparato cercano a San Francisco, que tiene mayor latencia con Londres.
|
||||
|
||||
Los proxies de la réplica activa solicitan que no se pueda procesar esta misma para la instancia principal. Las réplicas funcionan como un punto de presencia al terminar todas las conexiones SSL. El tráfico entre los servidores se envía a través de una conexión VPN encriptada, similar a una configuración de dos nodos de alta disponibilidad sin replicación geográfica.
|
||||
|
||||
Las solicitudes de Git y las solicitudes del servidor de archivo, como LFS y las cargas de archivos, se pueden atender directamente desde la réplica sin cargar ningún dato desde el principal. Las solicitudes web siempre se enrutan hacia el principal, pero si la réplica está más cerca del usuario, las solicitudes son más rápidas porque la terminación SSL está más cerca.
|
||||
|
||||
Se solicita un DNS geográfico, como [Amazon's Route 53 service](http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-geo), para que la replicación geográfica funcione sin problemas. El nombre del host para la instancia se debe resolver con la réplica más cercana a la ubicación del usuario.
|
||||
|
||||
### Limitaciones
|
||||
|
||||
Escribir solicitudes para la réplica exige que se envíen los datos al principal y a todas las réplicas. Esto significa que el rendimiento de todas las escrituras está limitado por la réplica más lenta {% if currentVersion ver_gt "enterprise-server@2.17" %}, aunque las nuevas réplicas geográficas pueden poblar la mayoría de sus datos de las réplicas geográficas ubicadas en el mismo lugar, en lugar del primario{% endif %}. La replicación geográfica no le agregará capacidad a una instancia de {% data variables.product.prodname_ghe_server %} ni resolverá problemas de rendimiento relacionados con recursos de CPU o de memoria insuficientes. Si el aparato principal está fuera de línea, las réplicas activas no podrán atender ninguna solicitud de lectura o escritura.
|
||||
|
||||
### Monitorear la configuración de una replicación geográfica
|
||||
|
||||
{% data reusables.enterprise_installation.monitoring-replicas %}
|
||||
|
||||
### Leer más
|
||||
- "[Crear réplicas de replicación geográfica](/enterprise/{{ currentVersion }}/admin/guides/installation/creating-a-high-availability-replica/#creating-geo-replication-replicas)"
|
||||
@@ -1,186 +0,0 @@
|
||||
---
|
||||
title: Acerca de la configuración de alta disponibilidad
|
||||
intro: 'En una configuración de alta disponibilidad, un aparato secundario {% data variables.product.prodname_ghe_server %} totalmente redundante se mantiene en sincronización con el aparato principal mediante la replicación de todos los almacenes de datos importantes.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/about-high-availability-configuration
|
||||
- /enterprise/admin/enterprise-management/about-high-availability-configuration
|
||||
- /admin/enterprise-management/about-high-availability-configuration
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- High availability
|
||||
- Infrastructure
|
||||
---
|
||||
Cuando configuras la alta disponibilidad, hay una configuración automática unidireccional, una replicación asincrónica de todos los almacenes de datos (repositorios de Git, MySQL, Redis y Elasticsearch) desde el aparato principal hacia la réplica.
|
||||
|
||||
{% data variables.product.prodname_ghe_server %} admite una configuración activa/pasiva, en la que el aparato réplica se ejecuta como en un modo de espera con los servicios de base de datos ejecutándose en modo de replicación, pero con los servicios de aplicación detenidos.
|
||||
|
||||
### Escenarios de fallas específicas
|
||||
|
||||
Utiliza la configuración de alta disponibilidad para la protección contra lo siguiente:
|
||||
|
||||
{% data reusables.enterprise_installation.ha-and-clustering-failure-scenarios %}
|
||||
|
||||
Una configuración de alta disponibilidad no es una buena solución para lo siguiente:
|
||||
|
||||
- **Escalar**. Mientras que puede distribuir el tráfico geográficamente utilizando la replicación geográfica, el rendimiento de las escrituras queda limitado a la velocidad y la disponibilidad del aparato principal. Para obtener más informació, consulta "[Acerca de la replicación geográfica](/enterprise/{{ currentVersion }}/admin/guides/installation/about-geo-replication/)."
|
||||
- **Generar copias de seguridad de tu aparato principal**. Una réplica de alta disponibilidad no reemplaza las copias de seguridad externas en tu plan de recuperación ante desastres. Algunas formas de corrupción o pérdida de datos se pueden replicar de inmediato desde el aparato principal hacia la réplica. Para asegurar una reversión segura a un estado antiguo estable, debes realizar copias de seguridad de rutina con instantáneas históricas.
|
||||
- **Actualizaciones del tiempo de inactividad en cero**. Para evitar la pérdida de datos y las situaciones de cerebro dividido en escenarios de promoción controlados, coloca el aparato principal en el modo de mantenimiento y espera a que se completen todas las escrituras entes de promover la réplica.
|
||||
|
||||
### Estrategias de conmutación por error del tráfico de red
|
||||
|
||||
Durante la conmutación por error, debes configurar por separado y administrar el tráfico de red de redireccionamiento desde el aparato principal hacia la réplica.
|
||||
|
||||
#### Conmutación por error de DNS
|
||||
|
||||
Con la conmutación por error de DNS, utiliza valores TTL cortos en los registros DNS que se dirijan al aparato principal {% data variables.product.prodname_ghe_server %}. Recomendamos un TTL de entre 60 segundos y cinco minutos.
|
||||
|
||||
Durante la conmutación por error, debes colocar el aparato principal en modo de mantenimiento y redirigir sus registros DNS hacia la dirección IP del aparato réplica. El tiempo necesario para redirigir el tráfico desde el aparato principal hacia la réplica dependerá de la configuración TTL y del tiempo necesario para actualizar los registros DNS.
|
||||
|
||||
Si estás utilizando la replicación geográfica, debes configurar Geo DNS en tráfico directo hacia la réplica más cercana. Para obtener más informació, consulta "[Acerca de la replicación geográfica](/enterprise/{{ currentVersion }}/admin/guides/installation/about-geo-replication/)."
|
||||
|
||||
#### Balanceador de carga
|
||||
|
||||
{% data reusables.enterprise_clustering.load_balancer_intro %} {% data reusables.enterprise_clustering.load_balancer_dns %}
|
||||
|
||||
Durante la conmutación por error, debes colocar el aparato principal en el modo de mantenimiento. Puedes configurar el balanceador de carga para que detecte automáticamente cuando la réplica se haya promovido a principal, o puede que se requiera un cambio de configuración manual. Debes promover manualmente la réplica a principal antes de que responda al tráfico de usuarios. Para obtener más información, consulta "[Utilizar {% data variables.product.prodname_ghe_server %} con un balanceador de carga](/enterprise/{{ currentVersion }}/admin/guides/installation/using-github-enterprise-server-with-a-load-balancer/)."
|
||||
|
||||
{% data reusables.enterprise_installation.monitoring-replicas %}
|
||||
|
||||
### Utilidades para la administración de la replicación
|
||||
|
||||
Para administrar la replicación en {% data variables.product.prodname_ghe_server %}, haz uso de estas utilidades de la línea de comando conectándote al aparato réplica con SSH.
|
||||
|
||||
#### ghe-repl-setup
|
||||
|
||||
El comando `ghe-repl-setup` coloca un aparato {% data variables.product.prodname_ghe_server %} en modo de espera de réplica.
|
||||
|
||||
- Un túnel cifrado {% if currentVersion ver_gt "enterprise-server@2.17" %}WireGuard VPN{% else %}OpenVPN{% endif %} está configurado para la comunicación entre los dos aparatos.
|
||||
- Se configuran los servicios de bases de datos para la replicación y se inician.
|
||||
- Se inhabilitan los servicios de aplicaciones. Los intentos de acceder al aparato réplica por HTTP, Git u otros protocolos compatibles generarán una página de mantenimiento o un mensaje de error de "aparato en modo réplica".
|
||||
|
||||
```shell
|
||||
admin@169-254-1-2:~$ ghe-repl-setup 169.254.1.1
|
||||
Verificar la conectividad ssh con 169.254.1.1 ...
|
||||
Comprobación de conexión exitosa.
|
||||
Configurando la replicación de base de datos en oposición al principal...
|
||||
Success: Replica mode is configured against 169.254.1.1.
|
||||
To disable replica mode and undo these changes, run `ghe-repl-teardown'.
|
||||
Ejecuta `ghe-repl-start' para comenzar la replicación en oposición al principal recientemente configurado.
|
||||
```
|
||||
|
||||
#### ghe-repl-start
|
||||
|
||||
El comando `ghe-repl-start` inicia la replicación activa de todos los almacenes de datos.
|
||||
|
||||
```shell
|
||||
admin@169-254-1-2:~$ ghe-repl-start{% if currentVersion ver_lt "enterprise-server@2.18" %}
|
||||
Starting OpenVPN tunnel ... {% endif %}
|
||||
Starting MySQL replication ...
|
||||
Iniciando la replicación de Redis...
|
||||
Iniciando la replicación de ElasticSearch...
|
||||
Iniciando la replicación de Páginas...
|
||||
Iniciando la replicación de Git...
|
||||
Exitoso: La replicación se está ejecutando para todos los servicios.
|
||||
Utiliza `ghe-repl-status' para monitorear el estado y el progreso de la replicación.
|
||||
```
|
||||
|
||||
#### ghe-repl-status
|
||||
|
||||
El comando `ghe-repl-status` muestra un estado de `OK`, `ADVERTENCIA` o `CRÍTICO` para cada corriente de replicación de almacén de datos. Cuando cualquiera de los canales de replicación está en estado `ADVERTENCIA`, el comando se cerrará con el código `1`. Del mismo modo, cuando cualquiera de los canales esté en un estado `CRÍTICO`, el comando se cerrará con el código `2`.
|
||||
|
||||
```shell
|
||||
admin@169-254-1-2:~$ ghe-repl-status
|
||||
OK: replicación de mysql en sinc
|
||||
OK: la replicación de redis está en sinc
|
||||
OK: la agrupación de elasticsearch está en sinc
|
||||
OK: los datos de git están en sinc (10 repos, 2 wikis, 5 gists)
|
||||
OK: los datos de páginas están en sinc
|
||||
```
|
||||
|
||||
Las opciones `-v` y `-vv` dan detalles sobre cada uno de los estados de replicación de almacén de datos:
|
||||
|
||||
```shell
|
||||
$ ghe-repl-status -v
|
||||
OK: replicación de mysql en sinc
|
||||
| IO en ejecución: Sí, SQL en ejecución: Sí, Demora: 0
|
||||
|
||||
OK: la replicación de redis está en sinc
|
||||
| master_host:169.254.1.1
|
||||
| master_port:6379
|
||||
| master_link_status:up
|
||||
| master_last_io_seconds_ago:3
|
||||
| master_sync_in_progress:0
|
||||
|
||||
OK: la agrupación de elasticsearch está en sinc
|
||||
| {
|
||||
| "cluster_name" : "github-enterprise",
|
||||
| "status" : "green",
|
||||
| "timed_out" : falso,
|
||||
| "number_of_nodes" : 2,
|
||||
| "number_of_data_nodes" : 2,
|
||||
| "active_primary_shards" : 12,
|
||||
| "active_shards" : 24,
|
||||
| "relocating_shards" : 0,
|
||||
| "initializing_shards" : 0,
|
||||
| "unassigned_shards" : 0
|
||||
| }
|
||||
|
||||
OK: los datos de git están en sinc (366 repos, 31 wikis, 851 gists)
|
||||
| TOTAL OK FALLA PENDIENTE CON DEMORA
|
||||
| repositorios 366 366 0 0 0.0
|
||||
| wikis 31 31 0 0 0.0
|
||||
| gists 851 851 0 0 0.0
|
||||
| total 1248 1248 0 0 0.0
|
||||
|
||||
OK: los datos de páginas están en sinc
|
||||
| Las páginas están en sinc
|
||||
```
|
||||
|
||||
#### ghe-repl-stop
|
||||
|
||||
El comando `ghe-repl-stop` inhabilita temporalmente la replicación de todos los almacenes de datos y detiene los servicios de replicación. Para reanudar la replicación, utiliza el comando [ghe-repl-start](#ghe-repl-start).
|
||||
|
||||
```shell
|
||||
admin@168-254-1-2:~$ ghe-repl-stop
|
||||
Deteniendo la replicación de Páginas...
|
||||
Deteniendo la replicación de Git...
|
||||
Deteniendo la replicación de MySQL...
|
||||
Deteniendo la replicación de Redis...
|
||||
Deteniendo la replicación de Elasticsearch ...{% if currentVersion ver_lt "enterprise-server@2.18" %}
|
||||
Deteniendo el túnel OpenVPN ...{% endif %}
|
||||
Exitoso: se detuvo la replicación para todos los servicios.
|
||||
```
|
||||
|
||||
#### ghe-repl-promote
|
||||
|
||||
El comando `ghe-repl-promote` inhabilita la replicación y convierte el aparato réplica en principal. El aparato se configura con los mismos ajustes que el principal original y se habilitan todos los servicios.
|
||||
|
||||
{% data reusables.enterprise_installation.promoting-a-replica %}
|
||||
|
||||
```shell
|
||||
admin@168-254-1-2:~$ ghe-repl-promote
|
||||
Habilitando el modo de mantenimiento en el aparato principal para evitar escrituras...
|
||||
Deteniendo la replicación...
|
||||
| Deteniendo la replicación de Páginas...
|
||||
| Deteniendo la replicación de Git...
|
||||
| Deteniendo la replicación de MySQL...
|
||||
| Deteniendo la replicación de Redis...
|
||||
| Deteniendo la replicación de Elasticsearch ...{% if currentVersion ver_lt "enterprise-server@2.18" %}
|
||||
| Deteniendo el túnel OpenVPN ...{% endif %}
|
||||
| Exitoso: se detuvo la replicación para todos los servicios.
|
||||
Cambiando del modo réplica...
|
||||
| Exitoso: se eliminó la configuración de la replicación.
|
||||
| Ejecuta `ghe-repl-setup' para volver a habilitar el modo réplica.
|
||||
Aplicando la configuración e iniciando los servicios...
|
||||
Exitoso: la réplica se promovió a principal y ahora está aceptando solicitudes.
|
||||
```
|
||||
|
||||
#### ghe-repl-teardown
|
||||
|
||||
El comando `ghe-repl-teardown` inhabilita el modo de replicación por completo, eliminando la configuración de la réplica.
|
||||
|
||||
### Leer más
|
||||
|
||||
- "[Crear una réplica de alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/installation/creating-a-high-availability-replica)"
|
||||
@@ -1,106 +0,0 @@
|
||||
---
|
||||
title: Crear una réplica de alta disponibilidad
|
||||
intro: 'En una configuración activa/pasiva, el aparato réplica es una copia redundante del aparato principal. Si el aparato principal falla, el modo de alta disponibilidad permite que la réplica actúe como aparato principal, lo que posibilita que la interrupción del servicio sea mínima.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/creating-a-high-availability-replica
|
||||
- /enterprise/admin/enterprise-management/creating-a-high-availability-replica
|
||||
- /admin/enterprise-management/creating-a-high-availability-replica
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- High availability
|
||||
- Infrastructure
|
||||
---
|
||||
### Crear una réplica de alta disponibilidad
|
||||
|
||||
1. Configurar un aparato para el {% data variables.product.prodname_ghe_server %} nuevo en la plataforma que desees. El aparato réplica debe espejar la CPU, la RAM y los ajustes de almacenamiento del aparato principal. Recomendamos que instales el aparato réplica en un entorno separado. El hardward subyacente, el software y los componentes de red deben estar aislados de los del aparato principal. Si estás usando un proveedor de nube, utiliza una región o zona separada. Para obtener más información, consulta ["Configurar una instancia {% data variables.product.prodname_ghe_server %}"](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-github-enterprise-server-instance).
|
||||
2. Desde un navegador, dirígete a la nueva dirección IP del aparato réplica y carga tu licencia de {% data variables.product.prodname_enterprise %}.
|
||||
3. Establece una contraseña de administrador que coincida con la contraseña del aparato principal y continúa.
|
||||
4. Haz clic en **Configure as Replica** (Configurar como réplica). 
|
||||
5. En "Add new SSH key" (Agregar nueva clave SSH), escribe tu clave SSH. 
|
||||
6. Haz clic en **Add key** (Agregar clave), luego haz clic en **Continue** (Continuar).
|
||||
6. Conectarse a la dirección IP del aparato réplica usando SSH.
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>REPLICA IP</em>
|
||||
```
|
||||
7. Para generar un par de claves para la replicación, usa el comando `ghe-repl-setup` con la dirección IP del aparato principal y copia la clave pública que este devuelve.
|
||||
```shell
|
||||
$ ghe-repl-setup <em>PRIMARY IP</em>
|
||||
```
|
||||
{% data reusables.enterprise_installation.add-ssh-key-to-primary %}
|
||||
9. Para verificar la conexión con la primaria y habilitar el modo de réplica para una nueva réplica, ejecuta nuevamente `ghe-repl-setup`.
|
||||
```shell
|
||||
$ ghe-repl-setup <em>PRIMARY IP</em>
|
||||
```
|
||||
{% data reusables.enterprise_installation.replication-command %}
|
||||
11. Para verificar el estado de cada canal de replicación del almacén de datos, utiliza el comando `ghe-repl-status`.
|
||||
```shell
|
||||
$ ghe-repl-status
|
||||
```
|
||||
|
||||
### Crear réplicas de replicación geográfica
|
||||
|
||||
Esta configuración de ejemplo utiliza una réplica primaria y dos réplicas, que se encuentran en tres regiones geográficas diferentes. Aunque los tres nodos pueden estar en redes diferentes, se necesitan todos los nodos para que sean accesibles desde todos los demás nodos. Como mínimo, los puertos administrativos requeridos deben estar abiertos para todos los demás nodos. Para obtener más información acerca de los requisitos de puerto, consulta "[Puertos de red](/enterprise/{{ currentVersion }}/admin/guides/installation/network-ports/#administrative-ports)."
|
||||
|
||||
1. Crea la primera réplica de la misma manera en que lo harías para una configuración de dos nodos estándar ejecutando `ghe-repl-setup` en la primera réplica.
|
||||
```shell
|
||||
(replica1)$ ghe-repl-setup <em>PRIMARY IP</em>
|
||||
(replica1)$ ghe-repl-start
|
||||
```
|
||||
2. Crea una segunda réplica y utiliza el comando `ghe-repl-setup --add`. La marca `--add` evita que sobrescriba la configuración de la replicación existente y agrega la nueva réplica a la configuración.
|
||||
```shell
|
||||
(replica2)$ ghe-repl-setup --add <em>PRIMARY IP</em>
|
||||
(replica2)$ ghe-repl-start
|
||||
```
|
||||
3. Por defecto, las réplicas se configuran en el mismo centro de datos{% if currentVersion ver_gt "enterprise-server@2.17" %}, e intentarán iniciar desde un nodo existente en el mismo centro de datos{% endif %}. Configura las réplicas para diferentes centros de datos estableciendo un valor diferente para la opción de centro de datos. Los valores específicos pueden ser los que tú quieras, siempre que sean diferentes entre sí. Ejecuta el comando `ghe-repl-node` en cada nodo y especifica el centro de datos.
|
||||
|
||||
En la primaria:
|
||||
```shell
|
||||
(primary)$ ghe-repl-node --datacenter <em>[PRIMARY DC NAME]</em>
|
||||
```
|
||||
En la primera réplica:
|
||||
```shell
|
||||
(replica1)$ ghe-repl-node --datacenter <em>[FIRST REPLICA DC NAME]</em>
|
||||
```
|
||||
En la segunda réplica:
|
||||
```shell
|
||||
(replica2)$ ghe-repl-node --datacenter <em>[SECOND REPLICA DC NAME]</em>
|
||||
```
|
||||
{% tip %}
|
||||
|
||||
**Consejo:** puedes establecer las opciones `--datacenter` y `--active` al mismo tiempo.
|
||||
|
||||
{% endtip %}
|
||||
4. Un nodo de réplica activo almacenará copias de los datos del aparato y responderá las solicitudes de usuario final. Un nodo inactivo almacenará copias de los datos del aparato, pero no podrá atender las solicitudes de usuario final. Habilita el modo activo usando la marca `--active` o el modo inactivo usando la marca `--inactive`.
|
||||
|
||||
En la primera réplica:
|
||||
```shell
|
||||
(replica1)$ ghe-repl-node --active
|
||||
```
|
||||
En la segunda réplica:
|
||||
```shell
|
||||
(replica2)$ ghe-repl-node --active
|
||||
```
|
||||
5. Para aplicar la configuración, usa el comando `ghe-config-apply` en el principal.
|
||||
```shell
|
||||
(primary)$ ghe-config-apply
|
||||
```
|
||||
|
||||
### Configurar el DNS para replicación geográfica
|
||||
|
||||
Configurar Geo DNS usando las direcciones IP de los nodos primarios y réplica. También puedes crear un DNS CNAME para el nodo principal (p. ej., `primary.github.example.com`) para acceder al nodo principal a través de SSH o hacerle una copia de seguridad a través de `backup-utils`.
|
||||
|
||||
Para probarlo, puedes agregar entradas al archivo de `hosts` de la estación de trabajo local (por ejemplo, `/etc/hosts`). Estas entradas de ejemplo resolverán las solicitudes de `HOSTNAME` para `replica2`. Puedes apuntar a hosts específicos comentando en diferentes líneas.
|
||||
|
||||
```
|
||||
# <primary IP> <em>HOSTNAME</em>
|
||||
# <replica1 IP> <em>HOSTNAME</em>
|
||||
<replica2 IP> <em>HOSTNAME</em>
|
||||
```
|
||||
|
||||
### Leer más
|
||||
|
||||
- "[Acerca de la configuración de alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/installation/about-high-availability-configuration)"
|
||||
- "[Utilidades para la gestión de replicaciones](/enterprise/{{ currentVersion }}/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)"
|
||||
- "[Acerca de la replicación geográfica](/enterprise/{{ currentVersion }}/admin/guides/installation/about-geo-replication/)"
|
||||
@@ -1,22 +0,0 @@
|
||||
---
|
||||
title: Configurar la disponibilidad alta
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/configuring-github-enterprise-server-for-high-availability
|
||||
- /enterprise/admin/guides/installation/high-availability-cluster-configuration/
|
||||
- /enterprise/admin/guides/installation/high-availability-configuration/
|
||||
- /enterprise/admin/guides/installation/configuring-github-enterprise-for-high-availability/
|
||||
- /enterprise/admin/enterprise-management/configuring-high-availability
|
||||
intro: '{% data variables.product.prodname_ghe_server %} admite un modo de alta disponibilidad de funcionamiento diseñado para minimizar la interrupción del servicio en caso que ocurra una falla de hardware o una interrupción de red importante que afecte al aparato principal.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /about-high-availability-configuration
|
||||
- /creating-a-high-availability-replica
|
||||
- /initiating-a-failover-to-your-replica-appliance
|
||||
- /recovering-a-high-availability-configuration
|
||||
- /removing-a-high-availability-replica
|
||||
- /about-geo-replication
|
||||
---
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
---
|
||||
title: Iniciar una tolerancia de fallos a tu aparato de réplica
|
||||
intro: 'Puedes tener tolerancia de fallos en un aparato de réplica {% data variables.product.prodname_ghe_server %} por medio de la línea de comando para mantenimiento y pruebas, o si falla el aparato principal.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/initiating-a-failover-to-your-replica-appliance
|
||||
- /enterprise/admin/enterprise-management/initiating-a-failover-to-your-replica-appliance
|
||||
- /admin/enterprise-management/initiating-a-failover-to-your-replica-appliance
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- High availability
|
||||
- Infrastructure
|
||||
---
|
||||
El tiempo requerido para la tolerancia de fallos depende de cuánto le tome para impulsar la réplica y redireccionar el tráfico de forma manual. El tiempo promedio varía entre 2 y 10 minutos.
|
||||
|
||||
{% data reusables.enterprise_installation.promoting-a-replica %}
|
||||
|
||||
1. Para permitir que la replicación finalice antes de cambiar aparatos, pon el aparato principal en modo mantenimiento:
|
||||
- Para usar el administrador de consola, consulta "[Habilitar y programar el modo mantenimiento](/enterprise/admin/guides/installation/enabling-and-scheduling-maintenance-mode/)"
|
||||
- También puedes usar el comando `ghe-maintenance -s`.
|
||||
```shell
|
||||
$ ghe-maintenance -s
|
||||
```
|
||||
2. Cuando el número de operaciones Git activas llega a cero, espera 30 segundos.
|
||||
3. Para verificar que todos los canales de replicación informan `OK`, utiliza el comando `ghe-repl-status -vv`.
|
||||
```shell
|
||||
$ ghe-repl-status -vv
|
||||
```
|
||||
4. Para frenar la replicación e impulsar el aparato de réplica a un estado primario, utiliza el comando `ghe-repl-promote`. Esto también pondrá de forma automática al nodo primario en nodo mantenimiento si es accesible.
|
||||
```shell
|
||||
$ ghe-repl-promote
|
||||
```
|
||||
5. Actualiza el registro de DNS para que apunte a la dirección IP de la réplica. El tráfico es direccionado a la réplica después de que transcurra el período TTL. Si estás utilizando un balanceador de carga, asegúrate de que esté configurado para enviar el tráfico a la réplica.
|
||||
6. Notifica a los usuarios que pueden retomar las operaciones normales.
|
||||
7. Si se desea, configura una replicación desde el aparato principal nuevo al aparato existente y el principal anterior. Para obtener más información, consulta "[Acerca de la configuración de alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)."
|
||||
|
||||
### Leer más
|
||||
|
||||
- "[Utilidades para la gestión de replicaciones](/enterprise/{{ currentVersion }}/admin/guides/installation/about-high-availability-configuration/#utilities-for-replication-management)"
|
||||
@@ -1,32 +0,0 @@
|
||||
---
|
||||
title: Recuperar una configuración de disponibilidad alta
|
||||
intro: 'Después de la conmutación por error de un aparato {% data variables.product.prodname_ghe_server %}, debes recuperar redundancia tan pronto como sea posible en lugar de depender de un aparato único.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/recovering-a-high-availability-configuration
|
||||
- /enterprise/admin/enterprise-management/recovering-a-high-availability-configuration
|
||||
- /admin/enterprise-management/recovering-a-high-availability-configuration
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- High availability
|
||||
- Infrastructure
|
||||
---
|
||||
Puedes utilizar el aparato principal antiguo como el nuevo aparato de réplica si la conmutación por error fue planeada o no estaba relacionada con la salud del aparato. Si la conmutación por error estaba relacionado con un problema con el aparato primario, es posible que prefieras crear un nuevo aparato de réplica. Para obtener más información, consulta "[Crear una réplica de alta disponibilidad](/enterprise/{{ currentVersion }}/admin/guides/installation/creating-a-high-availability-replica/)."
|
||||
|
||||
### Configurar un aparato principal antiguo como una nueva réplica
|
||||
|
||||
1. Conéctate a la dirección IP del aparato principal antiguo utilizando SSH.
|
||||
```shell
|
||||
$ ssh -p 122 admin@<em>FORMER PRIMARY IP</em>
|
||||
```
|
||||
2. En el aparato principal antiguo, ejecuta el comando `ghe-repl-setup` con la dirección IP de la réplica antigua.
|
||||
```shell
|
||||
$ ghe-repl-setup <em>FORMER REPLICA IP</em>
|
||||
```
|
||||
{% data reusables.enterprise_installation.add-ssh-key-to-primary %}
|
||||
4. Para verificar la conexión con el aparato principal nuevo y habilitar el modo réplica para la nueva réplica, ejecuta nuevamente `ghe-repl-setup`.
|
||||
```shell
|
||||
$ ghe-repl-setup <em>FORMER REPLICA IP</em>
|
||||
```
|
||||
{% data reusables.enterprise_installation.replication-command %}
|
||||
@@ -1,38 +0,0 @@
|
||||
---
|
||||
title: Quitar una réplica de disponibilidad alta
|
||||
intro: 'Puedes detener una replicación a una réplica {% data variables.product.prodname_ghe_server %} de forma temporal, o quitar la replicación de forma permanente.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/removing-a-high-availability-replica
|
||||
- /enterprise/admin/enterprise-management/removing-a-high-availability-replica
|
||||
- /admin/enterprise-management/removing-a-high-availability-replica
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Clustering
|
||||
- High availability
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
---
|
||||
### Detener una replicación de forma temporal
|
||||
|
||||
1. Si es necesario, puedes detener una replicación geográfica del tráfico de usuario activo al quitar las entradas Geo DNS para la réplica.
|
||||
2. En la réplica donde deseas detener la replicación de forma temporal, ejecuta ghe-repl-stop.
|
||||
```shell
|
||||
$ ghe-repl-stop
|
||||
```
|
||||
3. Para comenzar la replicación nuevamente, ejecuta `ghe-repl-start`.
|
||||
```shell
|
||||
$ ghe-repl-start
|
||||
```
|
||||
|
||||
### Quitar la replicación de forma permanente
|
||||
|
||||
1. Si es necesario, puedes detener una replicación geográfica del tráfico de usuario activo al quitar las entradas Geo DNS para la réplica.
|
||||
2. En la réplica donde deseas quitar la replicación, ejecuta `ghe-repl-stop`.
|
||||
```shell
|
||||
$ ghe-repl-stop
|
||||
```
|
||||
3. En la réplica, para acabar con el estado de replicación, ejecuta `ghe-repl-teardown`.
|
||||
```shell
|
||||
$ ghe-repl-teardown
|
||||
```
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
title: 'Monitoring, managing, and updating your enterprise'
|
||||
intro: 'You can monitor your appliance, upgrade to a newer version, and configure clustering or high availability'
|
||||
redirect_from:
|
||||
- /enterprise/admin/enterprise-management
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /monitoring-your-appliance
|
||||
- /updating-the-virtual-machine-and-physical-resources
|
||||
- /configuring-clustering
|
||||
- /configuring-high-availability
|
||||
---
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
title: Acceder al tablero del monitor
|
||||
intro: '{% data variables.product.prodname_ghe_server %} incluye un tablero de monitoreo en la web que muestra los datos históricos sobre tu aparato {% data variables.product.prodname_ghe_server %}, como la CPU y el uso del almacenamiento, los tiempos de respuesta de la aplicación y de la autenticación y la salud general del sistema.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/accessing-the-monitor-dashboard
|
||||
- /enterprise/admin/enterprise-management/accessing-the-monitor-dashboard
|
||||
- /admin/enterprise-management/accessing-the-monitor-dashboard
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Monitoring
|
||||
- Performance
|
||||
---
|
||||
### Acceder al tablero del monitor
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
2. En la parte superior de la página, haga clic en **Monitor**. 
|
||||
|
||||
### Solucionar problemas de la asignación de los recursos comunes en su aparato
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota**: Porque el sondeo regular de {% data variables.product.product_location_enterprise %} con integración continua (CI) o la construcción de servidores puede causar efectivamente un rechazo del ataque al servicio que genera problemas, te recomendamos que utilice webhooks para subir las actualizaciones. Para obtener más información, consulte "[Acerca de webhooks](/enterprise/{{ currentVersion }}/user/articles/about-webhooks/)".
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Utiliza el tablero del monitor para mantenerse informado sobre la salud del recurso de su aparato y tomar decisiones sobre cómo corregir los problemas de alto uso.
|
||||
|
||||
| Problema | Posible(s) causa(s) | Recomendaciones |
|
||||
| ------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Alto uso de la CPU | Conexión a la VM desde otros servicios o programas que se ejecutan en el mismo host | De ser posible, vuelve a configurar los otros servicios o programas para utilizar menos recursos de la CPU. Para aumentar los recursos totales de la CPU para la VM, consulte "[Aumentar los recursos de CPU o de memoria](/enterprise/{{ currentVersion }}/admin/guides/installation/increasing-cpu-or-memory-resources/)." |
|
||||
| Alto uso de la memoria | Conexión a la VM desde otros servicios o programas que se ejecutan en el mismo host | De ser posible, vuelve a configurar otros servicios o programas para utilizar menos memoria. Para aumentar la memoria total disponible en la VM, consulta "[Aumentar los recursos de CPU o de memoria](/enterprise/{{ currentVersion }}/admin/guides/installation/increasing-cpu-or-memory-resources/)." |
|
||||
| Baja disponibilidad de espacio en el disco | Binarios grandes o archivos de registro que consumen espacio del disco | De ser posible, aloje los binarios grandes en un servidor separado y comprima o archive los archivos de registro. De ser necesario, aumenta el espacio del disco en la VM siguiendo los pasos de tu plataforma en "[Aumentar la capacidad de almacenamiento](/enterprise/{{ currentVersion }}/admin/guides/installation/increasing-storage-capacity/)." |
|
||||
| Tiempos de respuesta más altos que lo común | Los suelen causar alguna de las propuestas anteriores | Identifica y corrige las propuestas subyacentes. Si los tiempos de respuesta siguen altos, contáctate con {% data variables.contact.contact_ent_support %}. |
|
||||
| Índices de error elevados | Propuestas de software | Contáctate con {% data variables.contact.contact_ent_support %} e incluye tu paquete de soporte. Para obtener más información, consulta "[Proporcionar datos para {% data variables.product.prodname_enterprise %} Asistencia](/enterprise/{{ currentVersion}}/admin/guides/enterprise-support/providing-data-to-github-support#creating-and-sharing-support-bundles)." |
|
||||
@@ -1,64 +0,0 @@
|
||||
---
|
||||
title: Configurar collectd
|
||||
intro: '{% data variables.product.prodname_enterprise %} puede reunir datos con `collectd` y enviarlos a un servidor `collectd` externo. Entre otras métricas, reunimos un conjunto estándar de datos, como la utilización de la CPU, el consumo de memoria y de disco, el tráfico y los errores de la interfaz de red y la carga general de la VM.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/configuring-collectd
|
||||
- /enterprise/admin/articles/configuring-collectd/
|
||||
- /enterprise/admin/enterprise-management/configuring-collectd
|
||||
- /admin/enterprise-management/configuring-collectd
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Fundamentals
|
||||
- Infrastructure
|
||||
- Monitoring
|
||||
- Performance
|
||||
---
|
||||
### Configura un servidor `collectd` externo
|
||||
|
||||
Si aún no has configurado un servidor `collectd` externo, tendrás que hacerlo antes de habilitar el redireccionamiento `collectd` en {% data variables.product.product_location_enterprise %}. Tu servidor `collectd` se debe ejecutar con una versión 5.x o posterior de `collectd`.
|
||||
|
||||
1. Inicia sesión en tu servidor `collectd`.
|
||||
2. Crea o edita el archivo de configuración `collectd` para cargar el plugin de red y completar las directivas del servidor y del puerto con los valores adecuados. En la mayoría de las distribuciones, este se ubica en `/etc/collectd/collectd.conf`
|
||||
|
||||
Un ejemplo *collectd.conf* para ejecutar un servidor `collectd`:
|
||||
|
||||
Red LoadPlugin
|
||||
...
|
||||
...
|
||||
<Red de plugin>
|
||||
Escucha "0.0.0.0" "25826"
|
||||
</Plugin>
|
||||
|
||||
### Habilita el redireccionamiento collectd en {% data variables.product.prodname_enterprise %}
|
||||
|
||||
Por defecto, el redireccionamiento `collectd` está inhabilitado en {% data variables.product.prodname_enterprise %}. Sigue los pasos que aparecen a continuación para habilitar y configurar el redireccionamiento `collectd`:
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
1. A continuación aparecen los ajustes de redireccionamiento, selecciona **Enable collectd forwarding** (Habilitar el redireccionamiento collectd).
|
||||
1. En el campo **Server addres** (Dirección del servidor), escribe la dirección del servidor `collectd` al cual quisieras redirreccionar las estadísticas del aparato {% data variables.product.prodname_enterprise %}.
|
||||
1. En el campo **Port** (Puerto), escribe el puerto utilizado para canectarse al servidor `collectd`. (Predeterminados en 25826)
|
||||
1. En el menú desplegable **Cryptographic setup** (Configuración criptográfica), selecciona el nivel de seguridad de las comunicaciones con el servidor `collectd`. (Ninguno, paquetes firmados o paquetes encriptados).
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
### Exportar los datos collectd con `ghe-export-graphs`
|
||||
|
||||
La herramienta de la línea de comando `ghe-export-graphs` exportará los datos que `collectd` almacene en las bases de datos RRD. Este comando convierte los datos a XML y los exporta a un tarball único (.tgz).
|
||||
|
||||
Su uso principal es proporcionarle al equipo de {% data variables.contact.contact_ent_support %} los datos sobre el desempeño de una VM, sin la necesidad de descargar un paquete de soporte completo. No se debe incluir en tus exportaciones de copias de seguridad regulares y no existe una contraparte de importación. Si te contactas con {% data variables.contact.contact_ent_support %}, puede que te solicitemos estos datos para ayudarte a solucionar los problemas.
|
||||
|
||||
#### Uso
|
||||
|
||||
```shell
|
||||
ssh -p 122 admin@[hostname] -- 'ghe-export-graphs' && scp -P 122 admin@[hostname]:~/graphs.tar.gz .
|
||||
```
|
||||
|
||||
### Solución de problemas
|
||||
|
||||
#### El servidor collectd central no recibe datos
|
||||
|
||||
{% data variables.product.prodname_enterprise %} viene con la versión 5.x de `collectd`. `collectd` 5.x no es retrocompatible con la serie de lanzamientos 4.x. Tu servidor `collectd` central debe tener al menos la versión 5.x para aceptar los datos que se envían desde {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
Para obtener ayuda con más preguntas o problemas, contacta a {% data variables.contact.contact_ent_support %}.
|
||||
@@ -1,20 +0,0 @@
|
||||
---
|
||||
title: Monitorear tu aplicativo
|
||||
intro: 'Debido a que el uso {% data variables.product.product_location_enterprise %} aumenta con el tiempo, se incrementará la utilización de recursos del sistema, como el CPU, la memoria, y el almacenamiento. Puedes configurar una revisión y alertas para que estar al tanto de problemas potenciales antes de que se vuelvan lo suficientemente críticos para impactar de forma negativa en el desempeño de la aplicación o su disponibilidad.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/system-resource-monitoring-and-alerting/
|
||||
- /enterprise/admin/guides/installation/monitoring-your-github-enterprise-appliance/
|
||||
- /enterprise/admin/installation/monitoring-your-github-enterprise-server-appliance
|
||||
- /enterprise/admin/enterprise-management/monitoring-your-appliance
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /accessing-the-monitor-dashboard
|
||||
- /recommended-alert-thresholds
|
||||
- /setting-up-external-monitoring
|
||||
- /configuring-collectd
|
||||
- /monitoring-using-snmp
|
||||
---
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
---
|
||||
title: Redireccionamiento de registro
|
||||
intro: '{% data variables.product.prodname_enterprise %} utiliza `syslog-ng` para redireccionar los registros de la aplicación y del sistema al servidor que especifiques en los parámetros {% data variables.enterprise.management_console %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/articles/log-forwarding/
|
||||
- /enterprise/admin/installation/log-forwarding
|
||||
- /enterprise/admin/enterprise-management/log-forwarding
|
||||
- /admin/enterprise-management/log-forwarding
|
||||
versions:
|
||||
enterprise-server: '*'
|
||||
---
|
||||
Es compatible cualquier sistema de recopilación de registro que admita los flujos de registro syslog-style (p. ej., [Logstash](http://logstash.net/) y [Splunk](http://docs.splunk.com/Documentation/Splunk/latest/Data/Monitornetworkports)).
|
||||
|
||||
### Habilitar redireccionamiento de registro
|
||||
|
||||
1. En la página de parámetros {% data variables.enterprise.management_console %}, en la barra lateral izquierda, haz clic en **(Monitoring) Revisar**.
|
||||
1. Selecciona **Enable log forwarding (Habilitar redireccionamiento de registro)**.
|
||||
1. En el campo **Server address (Dirección del servidor)**, escribe la dirección del servidor al que desees redireccionar los registros. Puedes especificar varias direcciones en una lista de separación por coma.
|
||||
1. En el menú desplegable de Protocolo, selecciona el protocolo a utilizar para que se comunique con el servidor de registro. El protocolo se aplicará a todos los destinos de registro especificados.
|
||||
1. Selecciona **Enable TLS (Habilitar TLS)**.
|
||||
1. Haz clic en **Choose File (Elegir el archivo)** y elige un certificado CA para encriptar la comunicación entre puntos de conexión syslog. Se validará la cadena de certificado completa, y debe terminar en un certificado raíz. Para obtener más información, consulta [Opciones TLS en la documentación de syslog-ng](https://support.oneidentity.com/technical-documents/syslog-ng-open-source-edition/3.16/administration-guide/56#TOPIC-956599).
|
||||
|
||||
### Solución de problemas
|
||||
|
||||
Si encuentras problemas con el redireccionamiento de registro, contacta a {% data variables.contact.contact_ent_support %} y adjunta el archivo de salida de `http(s)://[hostname]/setup/diagnostics` to your email.
|
||||
@@ -1,113 +0,0 @@
|
||||
---
|
||||
title: Supervisar por medio de SNMP
|
||||
intro: '{% data variables.product.prodname_enterprise %} proporciona datos sobre el uso del disco, la utilización del CPU, el uso de la memoria y más sobre SNMP.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/monitoring-using-snmp
|
||||
- /enterprise/admin/articles/monitoring-using-snmp/
|
||||
- /enterprise/admin/enterprise-management/monitoring-using-snmp
|
||||
- /admin/enterprise-management/monitoring-using-snmp
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
- Monitoring
|
||||
- Performance
|
||||
---
|
||||
SNMP es una norma común para controlar dispositivos en una red. Recomendamos firmemente habilitar SNMP para que puedas controlar la salud de {% data variables.product.product_location_enterprise %} y saber cuándo agregar más memoria, almacenamiento, o rendimiento del procesador a la máquina del servidor.
|
||||
|
||||
{% data variables.product.prodname_enterprise %} tiene una instalación SNMP estándar, para poder aprovechar los [diversos plugins](http://www.monitoring-plugins.org/doc/man/check_snmp.html) disponibles para Nagios o para cualquier otro sistema de control.
|
||||
|
||||
### Configurar SNMP v2c
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.access-monitoring %}
|
||||
{% data reusables.enterprise_management_console.enable-snmp %}
|
||||
4. En el campo **Community string (Cadena de la comunidad)**, ingresa una nueva cadena de comunidad. Si se deja en blanco, queda predeterminado como `públicp`. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
5. Prueba tu configuración SNMP al ejecutar el siguiente comando en una estación de trabajo por separado con soporte de SNMP en tu red:
|
||||
```shell
|
||||
# community-string is your community string
|
||||
# hostname is the IP or domain of your Enterprise instance
|
||||
$ snmpget -v 2c -c <em>community-string</em> -O e <em>hostname</em> hrSystemDate.0
|
||||
```
|
||||
|
||||
Debería devolver la hora del sistema en el host {% data variables.product.product_location_enterprise %}.
|
||||
|
||||
### Seguridad basada en el usuario
|
||||
|
||||
Si habilitas el SNMP v3, puedes aprovechar la seguridad en base al usuario aumentada a través de User Security Model (USM). Para cada usuario único, puedes especificar un nivel de seguridad:
|
||||
- `noAuthNoPriv`: este nivel de seguridad no brinda autenticación ni privacidad.
|
||||
- `authNoPriv`: este nivel de seguridad brinda autenticación pero no privacidad. Para consultar al aparato deberás usar un nombre de usuario y una contraseña (que debe tener como mínimo ocho caracteres). La información se envía sin encriptación, similar a SNMPv2. El protocolo de autenticación puede ser MD5 o SHA o SHA como predeterminado.
|
||||
- `authPriv`: este nivel de seguridad brinda autenticación con privacidad. Se requiere autenticación, incluida una contraseña de autenticación de ocho caracteres como mínimo, y las respuestas están encriptadas. No se requiere una contraseña de privacidad, pero si se proporciona debe tener como mínimo ocho caracteres. Si no se proporciona una contraseña de privacidad, se usa la contraseña de autenticación. El protocolo de privacidad puede ser DES o AES y queda AES como predeterminado.
|
||||
|
||||
### Configurando usuarios para SNMP v3
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.access-monitoring %}
|
||||
{% data reusables.enterprise_management_console.enable-snmp %}
|
||||
4. Selecciona **SNMP v3**. 
|
||||
5. En "Username (Nombre de usuario)", escribe el nombre de usuario único de tu usuario SNMP v3.
|
||||
6. En el menú desplegable **Security Level (Nivel de seguridad)**, haz clic en el nivel de seguridad para tu usuario SNMP v3. 
|
||||
7. Para usuarios SNMP v3 con el nivel de seguridad `authnopriv`: 
|
||||
- {% data reusables.enterprise_management_console.authentication-password %}
|
||||
- {% data reusables.enterprise_management_console.authentication-protocol %}
|
||||
8. Para usuarios SNMP v3 con el nivel de seguridad `authpriv`: 
|
||||
- {% data reusables.enterprise_management_console.authentication-password %}
|
||||
- {% data reusables.enterprise_management_console.authentication-protocol %}
|
||||
- De forma opcional, en "Privacy password" (Contraseña de privacidad), escribe la contraseña de privacidad.
|
||||
- Hacia la derecha de "Privacy password" (Contraseña de privacidad), en el menú desplegable **Protocol (Protocolo)**, haz clic en el método de protocolo de privacidad que deseas usar.
|
||||
9. Haz clic en **Add secret (Agregar secreto)**. 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
##### Consultar datos de SNMP
|
||||
|
||||
Tanto la información del nivel de software como de hardware sobre tu aparato está disponible con SNMP v3. Debido a la falta de encriptación y privacidad para los niveles de seguridad `noAuthNoPriv` y `authNoPriv`, excluimos la tabla `hrSWRun` (1.1.3.6.1.2.1.25.41) de los informes SNMP resultantes. Incluimos esta tabla si estás usando el nivel de seguridad `authPriv`.
|
||||
|
||||
Con SNMP v2c, solo está disponible la información del nivel de hardware de tu aparato. Estas aplicaciones y servicios dentro de {% data variables.product.prodname_enterprise %} no tienen configurado OID para informar métricas. Hay varios MIB disponibles, que puedes ver ejecutando `snmpwalk` en una estación de trabajo separada con soporte SNMP en tu red:
|
||||
|
||||
```shell
|
||||
# community-string es tu cadena de comunidad
|
||||
# hostname es la IP o dominio de tu instancia de empresa
|
||||
$ snmpwalk -v 2c -c <em>community-string</em> -O e <em>hostname</em>
|
||||
```
|
||||
|
||||
De los MIB disponibles para SNMP, el más útil es `HOST-RESOURCES-MIB` (.1.3.6.1.2.1.25). Consulta la tabla de abajo para ver algunos objetos importantes en este MIB:
|
||||
|
||||
| Nombre | OID | Descripción |
|
||||
| -------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------- |
|
||||
| hrSystemDate.2 | .1.3.6.1.2.1.25.1.2 | La noción de servidores de los datos locales y de la hora del día. |
|
||||
| hrSystemUptime.0 | .1.3.6.1.2.1.25.1.1.0 | Cuánto tiempo ha pasado desde que el servidor se inició por última vez. |
|
||||
| hrMemorySize.0 | .1.3.6.1.2.1.25.2.2.0 | La cantidad de RAM en el servidor. |
|
||||
| hrSystemProcesses.0 | .1.3.6.1.2.1.25.1.6.0 | La cantidad de contextos de proceso actualmente cargados o ejecutándose en el servidor. |
|
||||
| hrStorageUsed.1 | .1.3.6.1.2.1.25.2.3.1.6.1 | La cantidad de espacio de almacenamiento consumido en el servidor, en hrStorageAllocationUnits. |
|
||||
| hrStorageAllocationUnits.1 | .1.3.6.1.2.1.25.2.3.1.4.1 | El tamaño, en bytes, de una hrStorageAllocationUnit |
|
||||
|
||||
Por ejemplo, para consultar `hrMemorySize` con SNMP v3, ejecuta el siguiente comando en una estación de trabajo separada con apoyo de SNMP en tu red:
|
||||
```shell
|
||||
# username es el nombre de usuario único de tu usuario SNMP v3
|
||||
# auth password es la contraseña de autenticación
|
||||
# privacy password es la contraseña de privacidad
|
||||
# hostname es la IP o el dominio de tu instancia de empresa
|
||||
$ snmpget -v 3 -u <em>username</em> -l authPriv \
|
||||
-A "<em>auth password</em>" -a SHA \
|
||||
-X "<em>privacy password</em>" -x AES \
|
||||
-O e <em>hostname</em> HOST-RESOURCES-MIB::hrMemorySize.0
|
||||
```
|
||||
|
||||
Con SNMP v2c, para consultar `hrMemorySize`, ejecuta el siguiente comando en una estación de trabajo separada con apoyo de SNMP en tu red:
|
||||
```shell
|
||||
# community-string es tu cadena de comunidad
|
||||
# hostname es la IP o el dominio de tu instancia de empresa
|
||||
snmpget -v 2c -c <em>community-string</em> <em>hostname</em> HOST-RESOURCES-MIB::hrMemorySize.0
|
||||
```
|
||||
|
||||
{% tip %}
|
||||
|
||||
**Nota:** para evitar que se filtre información sobre los servicios que se están ejecutando en tu aparato, excluimos la tabla `hrSWRun` (1.1.3.6.1.2.1.25.41) de los informes SNMP resultantes excepto que estés usando el nivel de seguridad `authPriv` con SNMP v3. Si estás utilizando el nivel de seguridad `authPriv`, incluimos la tabla `hrSWRun`.
|
||||
|
||||
{% endtip %}
|
||||
|
||||
Para obtener más información sobre los mapeos OID para los atributos de sistema comunes en SNMP, consulta "[OID SNMP de Linux para CPU, memoria y estadísticas de disco](http://www.linux-admins.net/2012/02/linux-snmp-oids-for-cpumemory-and-disk.html)".
|
||||
@@ -1,50 +0,0 @@
|
||||
---
|
||||
title: Límites de alerta recomendados
|
||||
intro: 'Puedes configurar una alerta para notificar los problemas de tus recursos de sistema antes de que afecten el desempeño de tu aparato {% data variables.product.prodname_ghe_server %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/guides/installation/about-recommended-alert-thresholds/
|
||||
- /enterprise/admin/installation/about-recommended-alert-thresholds
|
||||
- /enterprise/admin/installation/recommended-alert-thresholds
|
||||
- /enterprise/admin/enterprise-management/recommended-alert-thresholds
|
||||
- /admin/enterprise-management/recommended-alert-thresholds
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
- Monitoring
|
||||
- Performance
|
||||
- Storage
|
||||
---
|
||||
### Controlar el almacenamiento
|
||||
|
||||
Recomendamos que controles los dispositivos de almacenamiento de usuario y raíz y configures una alerta con valores que permitan un gran tiempo de respuesta cuando el espacio de disco disponible sea bajo.
|
||||
|
||||
| Gravedad | Límite |
|
||||
| --------------- | ---------------------------------------------------- |
|
||||
| **Advertencia** | El disco excede el 70 % del total disponible |
|
||||
| **Crítico** | El uso del disco excede el 85 % del total disponible |
|
||||
|
||||
Puedes ajustar estos valores en base a la cantidad total de almacenamiento asignado, los patrones de crecimiento histórico y el tiempo esperado de respuesta. Recomendamos asignar en exceso recursos de almacenamiento para permitir el crecimiento y evitar el tiempo de inactividad requerido para asignar almacenamiento adicional.
|
||||
|
||||
### Controlar el uso del CPU y de la carga promedio
|
||||
|
||||
A pesar de que es normal que el uso de CPU fluctúe en base a las operaciones Git que utilizan muchos recursos, recomendamos configurar una alerta para la utilización del CPU anormalmente alta, ya que spikes prolongados puede significar que tu instancia tiene un aprovisionamiento insuficiente. Recomendamos controlar la carga promedio del sistema de quince minutos para los valores que se acerquen o excedan la cantidad de núcleos de CPU asignados en la máquina virtual.
|
||||
|
||||
| Gravedad | Límite |
|
||||
| --------------- | --------------------------------------------------------------- |
|
||||
| **Advertencia** | La carga promedio de quince minutos excede 1x de núcleos de CPU |
|
||||
| **Crítico** | La carga promedio de quince minutos excede 2x de núcleos de CPU |
|
||||
|
||||
También recomendamos que controles el tiempo de "robo" de virtualización para asegurar que otras máquinas virtuales ejecutándose en el mismo sistema de servidor no estén usando todos los recursos de la instancia.
|
||||
|
||||
### Controla el uso de la memoria
|
||||
|
||||
La cantidad de memoria física asignada a {% data variables.product.product_location_enterprise %} puede tener un gran impacto sobre el desempeño general y la capacidad de respuesta de la aplicación. El sistema está designado para realizar un uso intenso del caché del disco kernel para acelerar las operaciones Git. Recomendamos que el conjunto en funcionamiento de RSS normal se acomode dentro del 50 % del total de RAM disponible para un uso máximo.
|
||||
|
||||
| Gravedad | Límite |
|
||||
| --------------- | ---------------------------------------------------------------------- |
|
||||
| **Advertencia** | El uso sostenido de RSS excede el 50 % del total de memoria disponible |
|
||||
| **Crítico** | El uso sostenido de RSS excede el 70 % del total de memoria disponible |
|
||||
|
||||
Si se acaba la memoria, el killer de OOM kernel intentará liberar recursos de memoria al sacrificar de manera forzosa procesos de aplicación con mucho uso de RAM, lo que puede dar como resultado una interrupción del servicio. Recomendamos asignar más memoria a la máquina virtual de la requerida en el curso normal de las operaciones.
|
||||
@@ -1,24 +0,0 @@
|
||||
---
|
||||
title: Configurar la revisión externa
|
||||
intro: 'Puedes revisar los recursos de sistema básicos en tu aparato {% data variables.product.prodname_ghe_server %} utilizando el SNMP o los protocolos de recopilación de estadísticas collectd.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/setting-up-external-monitoring
|
||||
- /enterprise/admin/enterprise-management/setting-up-external-monitoring
|
||||
- /admin/enterprise-management/setting-up-external-monitoring
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
- Monitoring
|
||||
- Performance
|
||||
---
|
||||
### Acerca de SNMP
|
||||
|
||||
El Protocolo de Administración de Red Simple (SNMP) es un método muy compatible para revisar los dispositivos y los servidores de red. El SNMP está inhabilitado por defecto pero puede ser configurado a través del tablero de revisión {% data variables.product.prodname_enterprise %}. El puerto UDP 161 debe abrirse y ser accesible desde tu estación de administración de red. Para obtener más información, consulta "[Revisión utilizando el SNMP](/enterprise/{{ currentVersion }}/admin/guides/installation/monitoring-using-snmp/)."
|
||||
|
||||
### Acerca de collectd
|
||||
|
||||
collectd es una recopilación de estadísticas de código abierto y daemon de información con apoyo integrado para escribir en archivos RRD. Las estadísticas sobre utilización de CPU, memoria y uso de disco, errores y tráfico de interfaz de red y carga de sistema pueden redireccionarse a un servidor externo collectd donde se pueden configurar los gráficos, los análisis y las alertas utilizando un amplia gama de herramientas y plugins disponibles. Para configurar el redireccionamiento de `collectd`, consulta "[Configurar collectd](/enterprise/{{ currentVersion }}/admin/guides/installation/configuring-collectd/)".
|
||||
|
||||
Además, las herramientas de supervisión dentro de las plataformas de virtualización subyacentes pueden también usarse para supervisar y alertar sobre los recursos de sistema. Para obtener más información, consulta la documentación [Amazon CloudWatch](http://aws.amazon.com/cloudwatch/) y [Supervisión de VMware vSphere ](http://pubs.vmware.com/vsphere-50/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-50-monitoring-performance-guide.pdf).
|
||||
@@ -1,36 +0,0 @@
|
||||
---
|
||||
title: Habilitar comprobaciones de actualización automáticas
|
||||
intro: 'Puedes habilitar comprobaciones de actualización automáticas para que {% data variables.product.product_location_enterprise %} busque y descargue el último lanzamiento del {% data variables.product.prodname_ghe_server %}.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/enabling-automatic-update-checks
|
||||
- /enterprise/admin/enterprise-management/enabling-automatic-update-checks
|
||||
- /admin/enterprise-management/enabling-automatic-update-checks
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Upgrades
|
||||
---
|
||||
Cuando un paquete de actualizaciones se descarga automáticamente para {% data variables.product.product_location_enterprise %}, recibirás un mensaje informándote que puedes actualizar el {% data variables.product.prodname_ghe_server %}. Descarga de paquetes para el directorio `/var/lib/ghe-updates` en {% data variables.product.product_location_enterprise %}. Para obtener más información, consulta "[Actualizar {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-github-enterprise-server)."
|
||||
|
||||
Si está disponible un hotpatch para una actualización, el `.hpkg` se descargará automáticamente. En la consola de administración puedes elegir instalar el hotpatch de inmediato o programar la instalación para otro momento. Para obtener más información, consulta "[Actualizar con un hotpatch](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-github-enterprise-server#upgrading-with-a-hotpatch)."
|
||||
|
||||
{% tip %}
|
||||
|
||||
**Consejo:** Para habilitar comprobaciones de actualización automáticas, {% data variables.product.product_location_enterprise %} se debe poder conectar a `https://github-enterprise.s3.amazonaws.com`.
|
||||
|
||||
{% endtip %}
|
||||
|
||||
{% data reusables.enterprise_site_admin_settings.access-settings %}
|
||||
{% data reusables.enterprise_site_admin_settings.management-console %}
|
||||
{% data reusables.enterprise_management_console.updates-tab %}
|
||||
4. Haz clic en **Yes, automatically check for updates** (Sí, buscar actualizaciones automáticamente). 
|
||||
{% data reusables.enterprise_management_console.save-settings %}
|
||||
|
||||
Para saber si tu instancia está actualizada, busca el mensaje emergente en la pestaña de actualizaciones.
|
||||
|
||||

|
||||
|
||||
En **Logs** (Registros), puedes ver el estado de la búsqueda de actualizaciones más reciente.
|
||||
|
||||

|
||||
@@ -1,75 +0,0 @@
|
||||
---
|
||||
title: Aumentar el CPU o los recursos de memoria
|
||||
intro: 'Si las operaciones en {% data variables.product.product_location_enterprise %} son lentas, es posible que necesites agregar CPU o recursos de memoria.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/increasing-cpu-or-memory-resources
|
||||
- /enterprise/admin/enterprise-management/increasing-cpu-or-memory-resources
|
||||
- /admin/enterprise-management/increasing-cpu-or-memory-resources
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
- Performance
|
||||
---
|
||||
{% data reusables.enterprise_installation.warning-on-upgrading-physical-resources %}
|
||||
|
||||
### Agregar CPU o recursos de memoria para AWS
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** Para agregar CPU o recursos de memoria para AWS, debes estar familiarizado con el uso de la consola de administración de AWS o la interfaz de la línea de comando `aws ec2` para administrar instancias EC2. Para obtener antecedentes y detalles sobre el uso de herramientas de AWS de tu elección para realizar el ajuste de tamaño, consulta la documentación de AWS en [ajustar el tamaño de una instancia respaldada por Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html).
|
||||
|
||||
{% endnote %}
|
||||
|
||||
#### Consideraciones relativas al ajuste de tamaño
|
||||
|
||||
Antes de aumentar la CPU o los recursos de memoria para {% data variables.product.product_location_enterprise %}:
|
||||
|
||||
- **Scale your memory with CPUs**. {% data reusables.enterprise_installation.increasing-cpus-req %}
|
||||
- **Assign an Elastic IP address to the instance**. Si no se asigna una IP elástica, deberás ajustar los registros DNS A para tu servidor {% data variables.product.prodname_ghe_server %} después de volver a iniciar para considerar el cambio de la dirección de IP pública. Una vez que tu instancia se reinicia, la IP elástica (EIP) se mantiene automáticamente si la instancia se inicia en una VPC. Si la instancia se inicia en una EC2-Classic, la IP elástica debe asociarse nuevamente de forma manual.
|
||||
|
||||
#### Tipos de instancias AWS admitidos
|
||||
|
||||
Debes determinar el tipo de instancia que te gustaría actualizar en base a especificaciones de CPU/memoria.
|
||||
{% data reusables.enterprise_installation.aws-supported-instance-types %}
|
||||
|
||||
#### Tipos de instancias AWS recomendadas
|
||||
|
||||
{% data reusables.enterprise_installation.aws-recommended-instance-types %}
|
||||
|
||||
{% data reusables.enterprise_installation.warning-on-scaling %}
|
||||
|
||||
#### Volver a ajustar el tamaño para AWS
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** Para instancias iniciadas en EC2-Classic, escribe la dirección de IP elástica asociada con la instancia y las ID de las instancias. Una vez que reiniciaste la instancia, vuelve a asociar la dirección de IP elástica.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
Si no es posible agregar un CPU o recursos de memoria a una instancia AWS/EC2 existente. En su lugar, debes:
|
||||
|
||||
1. Frenar la instancia.
|
||||
2. Cambiar el tipo de instancia.
|
||||
3. Iniciar la instancia.
|
||||
{% data reusables.enterprise_installation.configuration-recognized %}
|
||||
|
||||
### Agregar CPU o recursos de memoria para OpenStack KVM
|
||||
|
||||
No es posible agregar CPU o recursos de memoria para una instancia OpenStack KVM existente. En su lugar, debes:
|
||||
|
||||
1. Tomar una instantánea para la instancia actual.
|
||||
2. Frenar la instancia.
|
||||
3. Seleccionar un nuevo formato de la instancia que tenga el CPU o los recursos de memoria deseados.
|
||||
|
||||
### Agregar recursos de memoria o de CPU para VMware
|
||||
|
||||
{% data reusables.enterprise_installation.increasing-cpus-req %}
|
||||
|
||||
1. Utiliza vSphere Client para conectar al servidor de VMware ESXi.
|
||||
2. Cierra {% data variables.product.product_location_enterprise %}.
|
||||
3. Selecciona la máquina virtual y haz clic en **Edit Settings (Editar parámetros)**.
|
||||
4. En "Hardware", ajusta el CPU o los recursos de memoria asignados a la máquina virtual según se necesite: 
|
||||
5. Para iniciar la máquina virtual, haz clic en **OK**.
|
||||
{% data reusables.enterprise_installation.configuration-recognized %}
|
||||
@@ -1,63 +0,0 @@
|
||||
---
|
||||
title: Aumentar la capacidad de almacenamiento
|
||||
intro: 'Puedes aumentar o cambiar la cantidad de almacenamiento disponible para los repositorios de Git, las bases de datos, los índices de búsqueda y otros datos de aplicaciones persistentes.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/increasing-storage-capacity
|
||||
- /enterprise/admin/enterprise-management/increasing-storage-capacity
|
||||
- /admin/enterprise-management/increasing-storage-capacity
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Infrastructure
|
||||
- Performance
|
||||
- Storage
|
||||
---
|
||||
{% data reusables.enterprise_installation.warning-on-upgrading-physical-resources %}
|
||||
|
||||
A medida que se suman usuarios {% data variables.product.product_location_enterprise %}, es posible que necesites ajustar el tamaño de tu volumen de almacenamiento. Consulta la documentación de tu plataforma de virtualización para obtener más información sobre ajuste de tamaño de almacenamiento.
|
||||
|
||||
### Requisitos y recomendaciones
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** Antes de ajustar el tamaño del volumen de almacenamiento del usuario, pon tu instancia en modo mantenimiento. Para obtener más información, consulta "[Habilitar y programar el modo mantenimiento](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)."
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% data reusables.enterprise_installation.hardware-rec-table %}
|
||||
|
||||
### Aumentar el tamaño de partición de datos
|
||||
|
||||
1. Ajusta el disco de volumen existente del usuario utilizando las herramientas de tu plataforma de virtualización.
|
||||
{% data reusables.enterprise_installation.ssh-into-instance %}
|
||||
3. Pon el aparato en modo mantenimiento. Para obtener más información, consulta "[Habilitar y programar el modo mantenimiento](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)."
|
||||
4. Reinicia el aparato para detectar la nueva asignación de almacenamiento.
|
||||
5. Ejecuta el comando `ghe-storage-extend` para expandir el sistema de archivos `/data`:
|
||||
```shell
|
||||
$ ghe-storage-extend
|
||||
```
|
||||
|
||||
### Aumentar el tamaño de partición raíz utilizando un nuevo aparato
|
||||
|
||||
1. Configura una nueva instancia {% data variables.product.prodname_ghe_server %} con un disco raíz más grande utilizando la misma versión que tu aparato actual. Para obtener más información, consulta "[Configurar una instancia {% data variables.product.prodname_ghe_server %} ](/enterprise/{{ currentVersion }}/admin/guides/installation/setting-up-a-github-enterprise-server-instance)."
|
||||
2. Cierra el aparato actual.
|
||||
3. Desconecta el disco de datos de tu aparato actual utilizando las herramientas de tu plataforma de virtualización.
|
||||
4. Conecta el disco de datos al nuevo aparato con un disco raíz más grande.
|
||||
|
||||
### Aumentar el tamaño de partición raíz utilizando un aparato existente
|
||||
|
||||
1. Conecta un nuevo disco a tu aparato {% data variables.product.prodname_ghe_server %}.
|
||||
2. Ejecuta el comando `parted` para formatear el disco:
|
||||
```shell
|
||||
$ sudo parted /dev/xvdg mklabel msdos
|
||||
$ sudo parted /dev/xvdg mkpart primary ext4 0% 50%
|
||||
$ sudo parted /dev/xvdg mkpart primary ext4 50% 100%
|
||||
```
|
||||
3. Ejecuta el comando `ghe-upgrade` para instalar un paquete específico de plataforma completo al disco recientemente particionado. Un paquete de actualización de hotpatch universal, como `github-enterprise-2.11.9.hpkg` no funcionará como se espera.
|
||||
```shell
|
||||
$ ghe-upgrade PACKAGE-NAME.pkg -s -t /dev/xvdg1
|
||||
```
|
||||
4. Cierra el aparato.
|
||||
5. En el hipervisor, quita el disco raíz anterior y agrega el nuevo disco raíz en la misma ubicación del disco raíz anterior.
|
||||
6. Inicia el aparato.
|
||||
@@ -1,21 +0,0 @@
|
||||
---
|
||||
title: Actualizar la máquina virtual y los recursos físicos
|
||||
intro: 'La actualización del software virtual y del hardware virtual requiere algo de tiempo de inactividad para tu instancia, por ello asegúrate de planear tu actualización de antemano.'
|
||||
redirect_from:
|
||||
- '/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-the-vm/'
|
||||
- '/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-physical-resources/'
|
||||
- /enterprise/admin/installation/updating-the-virtual-machine-and-physical-resources
|
||||
- /enterprise/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
children:
|
||||
- /upgrade-requirements
|
||||
- /upgrading-github-enterprise-server
|
||||
- /enabling-automatic-update-checks
|
||||
- /increasing-storage-capacity
|
||||
- /increasing-cpu-or-memory-resources
|
||||
- /migrating-from-github-enterprise-1110x-to-2123
|
||||
---
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
---
|
||||
title: Migrar índices de ElasticSearch al servidor de GitHub Enterprise 2.14 o superior
|
||||
intro: 'Para prepararte para una actualización a {% data variables.product.prodname_ghe_server %} 2.14, deberás migrar tus índices a Elasticsearch 5.6 con nuestro script de migración.'
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/migrating-elasticsearch-indices-to-github-enterprise-2-14-or-later/
|
||||
- /enterprise/admin/guides/installation/migrating-elasticsearch-indices-to-github-enterprise-2-14-or-later/
|
||||
- /enterprise/admin/guides/installation/migrating-elasticsearch-indices-to-github-enterprise-server-2-14-or-later
|
||||
- /enterprise/admin/enterprise-management/migrating-elasticsearch-indices-to-github-enterprise-server-214-or-later
|
||||
- /admin/enterprise-management/migrating-elasticsearch-indices-to-github-enterprise-server-214-or-later
|
||||
versions:
|
||||
enterprise-server: '*'
|
||||
---
|
||||
<!-- This guide is here for longevity for support purposes. Please do not delete or add to index.md file-->
|
||||
|
||||
|
||||
{% data variables.product.prodname_ghe_server %} 2.14 incluye una mejora a Elasticsearch 5.6. Antes de actualizar a {% data variables.product.prodname_ghe_server %} 2.14 o superior desde la versión 2.12 o 2.13, te recomendamos descargar, instalar y ejecutar las herramientas de migración de Elasticsearch para que tus índices más grandes se migren en línea mientras tu aplicativo aún tiene acceso en línea.
|
||||
|
||||
### Índices buscar
|
||||
|
||||
El script de migración busca un índice `buscar` primero mientras el aparato está en línea. Migrar los índices `buscar` puede tomar desde unos minutos hasta unos días, según su tamaño. Para ejemplificar índices grandes, estos índices demoraron un par de días para migrar a nuestro entorno de prueba.
|
||||
|
||||
```
|
||||
admin@ip-172-31-2-141:~$ curl -s http://localhost:9200/_cat/indices?v | sort -n -k 6
|
||||
green open blog-1 1 0 0 0 144b 144b
|
||||
green open projects-1 1 0 0 0 144b 144b
|
||||
green open registry-packages-1 1 0 0 0 144b 144b
|
||||
green open showcases-1 1 0 0 0 144b 144b
|
||||
health status index pri rep docs.count docs.deleted store.size pri.store.size
|
||||
green open pull-requests-1 1 0 1 0 9.3kb 9.3kb
|
||||
green open wikis-1 1 0 2 0 5kb 5kb
|
||||
green open hookshot-logs-2018-05-29 5 0 25 0 124.2kb 124.2kb
|
||||
green open repos-1 1 0 1638 1 1.4mb 1.4mb
|
||||
green open gists-1 1 0 3531 64 291.9kb 291.9kb
|
||||
green open audit_log-1-2018-06-1 1 0 11108 0 3mb 3mb
|
||||
green open users-1 1 0 19866 56 2.7mb 2.7mb
|
||||
green open hookshot-logs-2018-05-31 5 0 20000 0 33.4mb 33.4mb
|
||||
green open hookshot-logs-2018-06-04 5 0 20000 0 32.6mb 32.6mb
|
||||
green open issues-1 1 0 26405 6 82.8mb 82.8mb
|
||||
green open hookshot-logs-2018-05-30 5 0 119744 0 196.8mb 196.8mb
|
||||
green open audit_log-1-2018-05-1 1 0 191664 0 50mb 50mb
|
||||
green open code-search-1 1 0 6932626 44 42.9gb 42.9gb
|
||||
green open commits-1 1 0 63753587 1485 45.4gb 45.4gb
|
||||
```
|
||||
|
||||
Los índices `buscar` comienzan con:
|
||||
|
||||
- blog-
|
||||
- code-search-
|
||||
- commits-
|
||||
- gists-
|
||||
- issues-
|
||||
- labels-
|
||||
- marketplace-listings-
|
||||
- non-marketplace-listings-
|
||||
- projects-
|
||||
- pull-requests-
|
||||
- registry-packages-
|
||||
- repos-
|
||||
- showcases-
|
||||
- topics-
|
||||
- users-
|
||||
|
||||
### Índices Webhooks
|
||||
|
||||
Después de que el script de migración reconstruye los índices `buscar` necesarios en línea, el script verificará si algún índice `webhook` debe ser reconstruido. Si ejecutas tu aparato con el {% data variables.product.prodname_ghe_server %} 2.12 o 2.13 durante 14 días o más, entonces probablemente no necesitarás que tu índice `webhook` se reconstruya ya que los índices `webhook` tienen una política de retención predeterminada de siete días. Si estás actualizando tu aparato desde el {% data variables.product.prodname_enterprise %} 2.11 o inferior, entonces es posible que debas reconstruir los índices `webhook`.
|
||||
|
||||
Si algún índice `webhook` debe ser reconstruido, entonces se te pedirá habilitar el modo mantenimiento antes de que el script pueda reconstruir los índices `webhook`. A pesar de que migrar los índices `webhook` requiere algo de tiempo de inactividad, no se necesitan grandes ventanas de mantenimiento o tiempo de inactividad.
|
||||
|
||||
Los índices `webhook` comienzan con `hookshot-logs-`.
|
||||
|
||||
### Índices disponibles
|
||||
|
||||
Puedes ver los índices disponibles en tu aparato utilizando cURL.
|
||||
|
||||
```
|
||||
admin@ip-172-31-2-141:~$ curl -s http://localhost:9200/_cat/indices?v | sort -n -k 6
|
||||
green open blog-1 1 0 0 0 144b 144b
|
||||
green open projects-1 1 0 0 0 144b 144b
|
||||
green open registry-packages-1 1 0 0 0 144b 144b
|
||||
green open showcases-1 1 0 0 0 144b 144b
|
||||
health status index pri rep docs.count docs.deleted store.size pri.store.size
|
||||
green open pull-requests-1 1 0 1 0 9.3kb 9.3kb
|
||||
green open wikis-1 1 0 2 0 5kb 5kb
|
||||
green open hookshot-logs-2018-05-29 5 0 25 0 124.2kb 124.2kb
|
||||
green open repos-1 1 0 1638 1 1.4mb 1.4mb
|
||||
green open gists-1 1 0 3531 64 291.9kb 291.9kb
|
||||
green open audit_log-1-2018-06-1 1 0 11108 0 3mb 3mb
|
||||
green open users-1 1 0 19866 56 2.7mb 2.7mb
|
||||
green open hookshot-logs-2018-05-31 5 0 20000 0 33.4mb 33.4mb
|
||||
green open hookshot-logs-2018-06-04 5 0 20000 0 32.6mb 32.6mb
|
||||
green open issues-1 1 0 26405 6 82.8mb 82.8mb
|
||||
green open hookshot-logs-2018-05-30 5 0 119744 0 196.8mb 196.8mb
|
||||
green open audit_log-1-2018-05-1 1 0 191664 0 50mb 50mb
|
||||
green open code-search-1 1 0 6932626 44 42.9gb 42.9gb
|
||||
green open commits-1 1 0 63753587 1485 45.4gb 45.4gb
|
||||
```
|
||||
|
||||
### Preparar un aparato del {% data variables.product.prodname_ghe_server %} 2.12 o 2.13
|
||||
|
||||
Si actualizas a {% data variables.product.prodname_ghe_server %} 2.14 o superior sin ejecutar las herramientas de migración, los índices Elasticsearch existentes pueden ser inválidos y no funcionarán correctamente. Para ejecutar el script de migración de Elasticsearch, tu aparato del {% data variables.product.prodname_ghe_server %} debe estar ejecutando {% data variables.product.prodname_enterprise %} 2.12 o 2.13.
|
||||
|
||||
{% warning %}
|
||||
|
||||
**Advertencia:**
|
||||
- Utilizar {% data variables.product.prodname_enterprise_backup_utilities %} destruirá los índices Elasticsearch antiguos no compatibles con 5.X después de la restauración. En este caso, es posible que sea necesaria una nueva indexación manual.
|
||||
- Si {% data variables.product.prodname_ghe_server %} está configurado para alta disponibilidad, el script de migración **debe** ejecutarse mientras todavía se está ejecutando la replicación. Deben permitirse los cambios para replicar completamente al otro aparato antes de iniciar la actualización. Si la replicación no se está ejecutando mientras se ejecuta el script de migración, tus índices Elasticsearch pueden volverse inválidos.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
1. Autentícate en el aparato principal con alta disponibilidad habilitado utilizando SSH.
|
||||
2. Descarga e instala el script de migración en el aparato:
|
||||
```shell
|
||||
$ wget https://github-enterprise.s3.amazonaws.com/util/es-5x-transition-tools.tar.gz
|
||||
$ sudo tar -C / -xvf es-5x-transition-tools.tar.gz
|
||||
```
|
||||
Si administras una Agrupación del {% data variables.product.prodname_ghe_server %}, autentica a uno de los nodos de servidores de Elasticsearch utilizando SSH e instala las herramientas de migración allí. Búscalos utilizando:
|
||||
```shell
|
||||
$ ghe-cluster-each -r elasticsearch -p
|
||||
ghe-test-data-0
|
||||
ghe-test-data-1
|
||||
ghe-test-data-2
|
||||
```
|
||||
2. Ejecuta el script de migración:
|
||||
```shell
|
||||
$ /usr/local/share/enterprise/ghe-es-5x-migration -r
|
||||
```
|
||||
{% note %}
|
||||
|
||||
**Nota:** Si tiene índices `webhook` para migrar, después de ejecutar las migraciones en línea, se te pedirá que habilites el modo mantenimiento.
|
||||
|
||||
{% endnote %}
|
||||
3. Si estás ejecutando una Agrupación {% data variables.product.prodname_ghe_server %}, sigue la documentación oficial de actualización para VM únicos o entornos de alta disponibilidad o la guía de actualización de agrupación. Para obtener más información, consulta "[Actualizar {% data variables.product.prodname_ghe_server %}](/enterprise/{{ currentVersion }}/admin/guides/installation/upgrading-github-enterprise-server/)" o "[Actualizar una agrupación](/enterprise/{{ currentVersion }}/admin/guides/clustering/upgrading-a-cluster/)".
|
||||
@@ -1,95 +0,0 @@
|
||||
---
|
||||
title: Migrar desde GitHub Enterprise 11.10.x a 2.1.23
|
||||
redirect_from:
|
||||
- /enterprise/admin/installation/migrating-from-github-enterprise-1110x-to-2123
|
||||
- /enterprise/admin-guide/migrating/
|
||||
- /enterprise/admin/articles/migrating-github-enterprise/
|
||||
- /enterprise/admin/guides/installation/migrating-from-github-enterprise-v11-10-34x/
|
||||
- /enterprise/admin/articles/upgrading-to-a-newer-release/
|
||||
- /enterprise/admin/guides/installation/migrating-to-a-different-platform-or-from-github-enterprise-11-10-34x/
|
||||
- /enterprise/admin/guides/installation/migrating-from-github-enterprise-11-10-x-to-2-1-23
|
||||
- /enterprise/admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123
|
||||
- /admin/enterprise-management/migrating-from-github-enterprise-1110x-to-2123
|
||||
intro: 'Para migrar desde {% data variables.product.prodname_enterprise %} 11.10.x a 2.1.23, deberás configurar una nueva instancia de aparato y migrar los datos de la instancia anterior.'
|
||||
versions:
|
||||
ghes: '*'
|
||||
topics:
|
||||
- Enterprise
|
||||
- Migration
|
||||
- Upgrades
|
||||
---
|
||||
Se admiten migraciones desde {% data variables.product.prodname_enterprise %} 11.10.348 y superior. No se admiten migraciones desde {% data variables.product.prodname_enterprise %} 11.10.348 o inferior. Primero debes actualizar a 11.10.348 en varias actualizaciones. Para obtener más información, consulta el procedimiento de actualización 11.10.348, "[Actualizar al lanzamiento más reciente](/enterprise/11.10.340/admin/articles/upgrading-to-the-latest-release/)."
|
||||
|
||||
Para actualizar a la versión más reciente {% data variables.product.prodname_enterprise %}, primero debes migrar a {% data variables.product.prodname_ghe_server %} 2.1, entonces puedes aplicar el proceso normal de actualización. Para obtener más información, consulta "[Actualizar {% data variables.product.prodname_enterprise %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)".
|
||||
|
||||
### Prepárate para la migración
|
||||
|
||||
1. Revisa la guía de Abastecimiento e instalación y controla que se cumplan todos los requisitos previos necesarios para abastecer y configurar {% data variables.product.prodname_enterprise %} 2.1.23 en tu entorno. Para obtener más información, consulta "[Abastecimiento e instalación](/enterprise/2.1/admin/guides/installation/provisioning-and-installation/)."
|
||||
2. Verifica que la instancia actual esté ejecutando una versión actualizada compatible.
|
||||
3. Configura la versión más reciente de {% data variables.product.prodname_enterprise_backup_utilities %}. Para obtener más información, consulta [{% data variables.product.prodname_enterprise_backup_utilities %}](https://github.com/github/backup-utils).
|
||||
- Si ya has configurado copias de seguridad programadas utilizando {% data variables.product.prodname_enterprise_backup_utilities %}, asegúrate de que hayas actualizado a la versión más reciente.
|
||||
- Si no estás ejecutando actualmente copias de seguridad programadas, configura {% data variables.product.prodname_enterprise_backup_utilities %}.
|
||||
4. Toma una instantánea de copia de respaldo completa inicial de la instancia actual utilizando el comando `ghe-backup`. Si ya configuraste copias de seguridad programadas para tu instancia actual, no debes tomar una instantánea de tu instancia.
|
||||
|
||||
{% tip %}
|
||||
|
||||
**Sugerencia:** puedes dejar la instancia en línea y en uso activo durante la instantánea. Tomarás otras instantánea durante la parte de mantenimiento de la migración. Ya que las copias de seguridad son incrementales, esta instantánea inicial reduce la cantidad de datos transferidos en la instantánea final, que pueden acortar la ventana de mantenimiento.
|
||||
|
||||
{% endtip %}
|
||||
|
||||
5. Determina el método para cambiar el tráfico de red de usuario a la nueva instancia. Después de la migración, todo el tráfico de red de HTTP y Git se dirige a la nueva instancia.
|
||||
- **DNS** - Recomendamos este método para todos los entornos, ya que es simple y funciona bien incluso cuando se migra desde una base de datos a otra. Antes de comenzar la migración, reduce los TTL de los registros DNS existentes a cinco minutos o menos y permite el cambio a propagar. Una vez que la migración se completa, actualiza los registros DNS para que apunten a la dirección IP de la nueva instancia.
|
||||
- **Asignación de dirección IP** - Este método está únicamente disponible en VMware para la migración VMware y no se recomienda excepto que el método DNS no esté disponible. Antes de comenzar la migración, deberás cerrar la instancia anterior y asignar tu dirección IP a la nueva instancia.
|
||||
6. Programa una ventana de mantenimiento. La ventana de mantenimiento debe incluir tiempo suficiente para transferir datos desde el servidor de seguridad a la nueva instancia y variará en base al tamaño de la instantánea de respaldo y el ancho de banda de la red disponible. Durante este tiempo tu instancia actual no estará disponible y estará en modo mantenimiento mientras migras a la nueva instancia.
|
||||
|
||||
### Realiza la migración
|
||||
|
||||
1. Aprovisiona una nueva instancia {% data variables.product.prodname_enterprise %} 2.1. Para obtener más información, consulta la "[Guía de aprovisionamiento e instalación](/enterprise/2.1/admin/guides/installation/provisioning-and-installation/)" para tu plataforma destino.
|
||||
2. Desde un navegador, dirígete a la nueva dirección IP del aparato réplica y carga tu licencia de {% data variables.product.prodname_enterprise %}.
|
||||
3. Configura una contraseña de administrador.
|
||||
5. Haz clic en **Migrate (Migrar)**. 
|
||||
6. Pega tu clave SSH de acceso al servidor de respaldo en "Add new SSH key (Agregar nueva clave SSH)". 
|
||||
7. Da clic en **Agregar llave** y luego en **Continuar**.
|
||||
8. Copia el comando `ghe-restore` que ejecutarás en el servidor de respaldo para migrar datos a la nueva instancia. 
|
||||
9. Habilita el modo mantenimiento en la instancia anterior y espera a que se completen todos los procesos activos. Para obtener más información, consulta "[Habilitar y programar el modo mantenimiento](/enterprise/{{ currentVersion }}/admin/guides/installation/enabling-and-scheduling-maintenance-mode)."
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** la instancia no estará disponible para el uso normal desde este punto en adelante.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
10. En el servidor de respaldo, ejecuta el comando `ghe-backup` para tomar una instantánea de respaldo final. Esto asegura que se capturen todos los datos de la instancia anterior.
|
||||
11. En el servidor de respaldo, ejecuta el comando `ghe-restore` que copiaste en la pantalla de estado de restauración de la nueva instancia para restaurar la instantánea más reciente.
|
||||
```shell
|
||||
$ ghe-restore 169.254.1.1
|
||||
The authenticity of host '169.254.1.1:122' can't be established.
|
||||
La clave de huella digital RSA es fe:96:9e:ac:d0:22:7c:cf:22:68:f2:c3:c9:81:53:d1.
|
||||
¿Estás seguro que deseas continuar conectado (sí/no)? yes
|
||||
Connect 169.254.1.1:122 OK (v2.0.0)
|
||||
Starting restore of 169.254.1.1:122 from snapshot 20141014T141425
|
||||
Restoring Git repositories ...
|
||||
Restaurando las páginas GitHub ...
|
||||
Restaurando los adjuntos de activo ...
|
||||
Restaurando las entregas de enlace ...
|
||||
Restaurando la base de datos MySQL ...
|
||||
Restaurando la base de datos Redis ...
|
||||
Restaurando las claves autorizadas de SSH ...
|
||||
Restaurando los índice de ElasticSearch...
|
||||
Restaurando las claves del servidor SSH ...
|
||||
Completed restore of 169.254.1.1:122 from snapshot 20141014T141425
|
||||
Visit https://169.254.1.1/setup/settings to review appliance configuration.
|
||||
```
|
||||
|
||||
12. Regresa a la pantalla de estado de restauración de la nueva instancia para ver que la restauración está completa. 
|
||||
13. Haz clic en **Continue to settings (Continuar a configuraciones)** para revisar y ajustar la información de configuración y los parámetros que se importaron de la instancia anterior. 
|
||||
14. Haz clic en **Guardar parámetros**.
|
||||
|
||||
{% note %}
|
||||
|
||||
**Nota:** puedes usar la nueva instancia después de haber aplicado los parámetros de configuración y restaurar el servidor.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
15. Cambia el tráfico de red de usuario desde la instancia anterior a la nueva instancia utilizando la asignación de DNS o la dirección IP.
|
||||
16. Actualiza a la versión más reciente del lanzamiento del patch de {{ currentVersion }}. Para obtener más información, consulta "[Actualizar {% data variables.product.prodname_ghe_server %}](/enterprise/admin/guides/installation/upgrading-github-enterprise-server/)."
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user