Instale y configure el flujo de trabajo de CI/CD con acciones de GitHub para implementar el código fuente en el servidor remoto.
En esta guía, aprenderá cómo configurar las acciones de GitHub para realizar implementaciones automatizadas en el servidor una vez que se realiza un envío. Configuraremos claves SSH para autenticar con el servidor.
Requisitos
Siga esta guía para crear un nuevo usuario y configurar las claves SSH que son necesarias para que GitHub realice conexiones seguras con su servidor.
Una vez que haya completado el paso anterior, puede proceder a GitHub para configurar las acciones.
Tome nota de los siguientes detalles de la configuración anterior.
- Nombre de usuario :El nuevo usuario que creaste usando
adduser
comando. - Nombre de host :Esta es la dirección IP de su servidor.
- Clave privada :Esta clave se crea automáticamente usando el
ssh-keygen
dominio. Asegúrese de que la clave esté en formato RSA, que comienza con-----BEGIN RSA PRIVATE KEY-----
.
Estos 3 datos son necesarios para realizar la conexión al servidor desde GitHub.
Secretos de configuración
Inicie sesión en su cuenta de GitHub y vaya a su repositorio.
Vaya a Configuración>> Secretos .
Haz clic en Nuevo secreto de repositorio .
En el Nombre agregue SSH_HOST y en valor ingrese la dirección IP de su servidor.
Haz clic en Añadir secreto .
Vuelva a hacer clic en Nuevo secreto de repositorio .
En el Nombre agregue SSH_USERNAME y en valor ingrese el nombre de usuario anotó anteriormente que se creó en la publicación mencionada en la sección de requisitos previos.
Haz clic en Añadir secreto .
Vuelva a hacer clic en Nuevo secreto de repositorio .
En el Nombre agregue SSH_KEY y en valor ingrese la clave privada anotó anteriormente que se creó en la publicación mencionada en la sección de requisitos previos.
Haz clic en Añadir secreto .
Ahora deberías tener tus secretos como se muestra a continuación.
Una vez que los secretos estén en su lugar, puede configurar acciones.
Iniciar flujo de trabajo de acciones
Ahora haga clic en Acciones pestaña.
Verá una lista de flujos de trabajo que se pueden configurar de forma predeterminada.
Puede hacer clic en Configurar un flujo de trabajo usted mismo.
Verá algunas configuraciones predeterminadas aquí.
Configurar flujo de trabajo de acciones
Puede nombrar el archivo de flujo de trabajo según su deseo. Lo nombraré como deploy.yml
.
Puede eliminar todos los flujos de trabajo que se incluyeron de forma predeterminada.
Copie el siguiente flujo de trabajo y agréguelo.
name: Identifier Name on: push: branches: [ branch-name ] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/[email protected] - name: Deploy source-code uses: appleboy/[email protected] env: HOST: ${{ secrets.SSH_HOST }} USERNAME: ${{ secrets.SSH_USERNAME }} PORT: 22 KEY: ${{ secrets.SSH_KEY }} with: source: "*" target: "/path/in/your/server"
El código anterior realizará una implementación en su servidor cuando se realice una inserción en una rama de mota.
Despliega todo el código fuente ubicado en la ubicación raíz de su repositorio. Si necesita implementar una carpeta específica, solo puede configurarla en la directiva de origen.
Asegúrese de que el usuario tenga permisos en el servidor para realizar la implementación.
Por ejemplo, si está utilizando el servidor web Nginx o Apache que se ejecuta con el usuario www-data, necesita permisos de configuración y restablecer los permisos como se muestra a continuación.
name: Identifier Name on: push: branches: [ branch-name ] jobs: deploy: runs-on: ubuntu-latest steps: - name: Reset Permissions before deployment uses: appleboy/[email protected] with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_KEY }} port: 22 script: | sudo chmod -R 755 /path/in/your/server sudo chown -R username:username /path/in/your/server sudo setfacl -R -m u:www-data:rwx /path/in/your/server - uses: actions/[email protected] - name: Deploy source-code uses: appleboy/[email protected] env: HOST: ${{ secrets.SSH_HOST }} USERNAME: ${{ secrets.SSH_USERNAME }} PORT: 22 KEY: ${{ secrets.SSH_KEY }} with: source: "*" target: "/path/in/your/server" - name: Reset Permissions after deployment uses: appleboy/[email protected] with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_KEY }} port: 22 script: | sudo chmod -R 755 /path/in/your/server sudo chown -R www-data:www-data /path/in/your/server sudo setfacl -R -m u:username:rwx /path/in/your/server
La configuración de implementación anterior configura al usuario para que tenga acceso completo a la carpeta para la implementación y el acceso de configuración para el usuario www-data
que es utilizado por Apache y Nignx.
Una vez hecho esto, haga clic en Comenzar confirmación y haga clic en Confirmar archivo nuevo para completar la configuración.
Ahora tiene una implementación configurada para ejecutarse cada vez que se realiza un envío a la rama específica.
Conclusión
Ahora ha aprendido cómo instalar y configurar el flujo de trabajo de acciones de GitHub para CI/CD.
Gracias por tu tiempo. Si tiene algún problema o comentario, deje un comentario a continuación.