Introducci贸n

1

Lo que aprender谩s sobre DevOps con GitLab

2

驴Qu茅 es Devops?

3

El ciclo de vida del Devops

4

Introducci贸n a Gitlab

5

Gitlab vs Github

Administraci贸n

6

Autenticaci贸n

7

Grupos

8

Autorizaci贸n

9

Auditor铆a

10

Proyectos

Planificaci贸n

11

Tipos de desarrollo

12

Planificaci贸n en Gitlab-Issues

13

Planificaci贸n en Gitlab-Etiquetas

14

Planificaci贸n en Gitlab-Pesos

15

Planificaci贸n en Gitlab-Milestones

16

Planificaci贸n en Gitlab-Boards

17

Planificaci贸n en Gitlab-Service Desk

18

Planificaci贸n en Gitlab-Quick actions

Verificaci贸n

19

Inicializaci贸n del repositorio

20

Merge requests

21

Profundizando en Merge requests

22

Continuous Integration-CI

23

Gitlab CI

24

Automatizacion con GitLab Cl

25

Validacion de la configuracion con GitLab Cl

26

gitlab-ci.yml

27

Gitlab pages

28

Implementando Gitlab pages

29

驴Qu茅 es el Desarrollo 脕gil?

30

Gitlab autodevops

31

Implementando GitLab autodevops

32

Habilitando autodevops

Empaquetaci贸n

33

Gitlab container registry

34

Introducci贸n a contenedores

Seguridad

35

Introducci贸n a DevSecOps

36

Firmas de seguridad

37

Pruebas est谩ticas de seguridad

38

Escaneo de contenedores

39

Escaneo de dependencias

40

Pruebas din谩micas de seguridad

41

Gitlab security dashboard

Distribuci贸n

42

Continuous Delivery (CD)

43

Ambientes

44

Review apps

45

Estrategias de Distribuci贸n

46

Feature Flags

47

Rollback

Monitoreo

48

驴Por qu茅 monitorear?

49

M茅tricas de desempe帽o (performance metrics)

50

M茅tricas de salud (health metrics)

51

Metricas de equipo

52

Rastreo de errores

Conclusiones

53

驴Por qu茅 desarrollar con Gitlab?

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Inicializaci贸n del repositorio

19/53
Recursos

Aportes 42

Preguntas 10

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Es necesario tener instalado NodeJS y Angular/CLI. Estos son los pasos para conseguirlo en Ubuntu:

$ sudo apt-get install python-software-properties
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt-get install nodejs
$ npm install -g @angular/cli

Para aquellas personas que tiene el error de:
$ git push -u origin --all
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Utilicen este comando:
git config core.sshCommand 鈥渟sh -o IdentitiesOnly=yes -i ~/.ssh/private-key-filename-for-this-repository -F /dev/null鈥

A m铆 me sirvi贸, espero que si les sirva.
https://gitlab.com/help/ssh/README#locating-an-existing-ssh-key-pair

yo tuve que realizar primero lo siguiente:
git init
git status
git add .
git commit -am "mensaje"
git remote add origin "url"
git remote -v
git push origin master
y ah铆 funcin贸.

Para los que estamos en windows para instalar los gestores de paquetes:
Vamos a usar NodeJS y npm (gestor de paquetes y librer铆as)
Descargar versi贸n LTS de https://nodejs.org/es/
Instalar con aceptar y continuar
Al terminar de instalar abrir una consola de cmd y escribir el comando
$ node 鈥搗 $ npm 鈥搗
Para descargar el cli y poder usar el comando ng
$ npm install 鈥揼 @angular/cli

Yo ven铆a de usar Github y me acabo de dar cuenta que puedo gestionar el mismo proyecto en ambos repositorios. Lo 煤nico que hago es tener nombres diferentes para el origin.

Obviamente antes de la clase habia que instalar Angular, npm, git. Detalles que no me gusto de la clase, utilizar material que de pronto otros no sabemos (Yo con angular ni idea)

Para los que no tengan conocimientos de como instalar Angular, les comparto este tutorial, siguiendo las instrucciones tendr谩n su equipo ambientado y listo para seguir con el curso.

Tutorial

Para instalar angular

npm install -g @angular/cli

En mi me solicit贸 el passphrase

![](

Vengo del curso de git y github profesional 2019 y encaja perfectamente con este curso, muy recomendados ambos!

Exitos!!

Creo que el menu es diferente ahora, no me fue posible encontrar ese menu debajo de proyectos donde estan 鈥淒etalles鈥

Hola, que debo tener instalado en mi mac para seguir el ejemplo que se muestra? Se que se trata de angular pero no estoy muy familiarizado y si alguien me podria colaborar diciendome que tendria que instalar se agradece! 馃槂

Todos los videos anteriores estuvieron muy bien. En este, creo que se debe considerar agregar una lecci贸n m谩s, donde se le explique a los estudiantes como instalar angular y posibles dependencias m铆nimas. Yo siempre trabajo con Vue y no conozco mucho de angular

Dure mucho buscando los detalles de proyecto pero no me fue posible parece que ha cambiado el menu, no me fue posible realizar las dos ultimas partees del video.

Chicos! Si tienen problemas con el acceso cuando intenten hacer el push, pueden usar esta opci贸n:

  1. Cuando les pida el usuario, agregar el usuario normal que tienen en Gitlab

  2. Cuando les pida la contrase帽a, generen un token de acceso de esta forma:

    • User settings/ Access tokens
      • Add a personal access token
      • Es importante que seleccionen la opci贸n read_repository y write_repository
      • Create access token
    • Lo copian y eso es lo que dan en la consola como contrase帽a

Hola chicos! Para los que tienen Mac y no tienen instalado angular ac谩 est谩n los pasos que segu铆 yo:

  1. Instalar brew (Es un gestor de paquetes que lo usan en muchas de las clases de varios cursos y es muy util)

  2. Instalar node:

    • brew install node
  3. Instalar angular CLI

    • npm install -g @angular/cli

Nota: si desean instalar alguna version en especifico de angular CLI el comando es: npm install -g @angular/[email protected]VERSION

鈥淪ean industriales鈥 Capital humano, altamente desechable.

si les sale Command not found cuando ejecutan ng new platzi-devops, lo que deben hacer es antes instalar angular con el comando:

npm install -g @angular/[email protected]

Tuve una dificulta y ha sido una de las dificultades que se me presentaban para poder hacer uso de Gitlab y es que al clonar el repositorio mi sistema no tiene permisos de HTTP para esto tuve que crear un token que me otorga los permisos necesarios. NOTA: el nombre del usuario y la contrase帽a ser谩n los que se crean en el token, estos los debes almacenar en un lugar para que lo uses en otras instancias.
Les dejo una gu铆a que me ayudo a entender mi problema https://stackoverflow.com/questions/47860772/gitlab-remote-http-basic-access-denied-and-fatal-authentication

Cuando inicien un proyecto desde cero les recomiendo primero crearlo en gitlab y despu茅s clonarlo.

Es mejor que iniciar un git local y despu茅s intentar subirlo. Cuando clonan del gitlab ya viene configurado.

Para los que tengan problemas en MacOS, con el comando:

git push -u origin --all

y les salga lo siguiente:

[email protected]com: Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Tienen que hacer lo siguiente:

  1. Agregar al keychain la llave ssh creada, para esto:
ssh-add -K ~/.ssh/[your-private-key]

your-private-key: colocan la que NO tiene el .pub

  1. Deben modificar el archivo ~/.ssh/config
    por ejemplo, usando nano:
nano ~/.ssh/config

y ahora agregan:

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/[your-private-key]

y listo. Espero les sea de ayuda.

Si no van a usar Angular y prefieren tomar un proyecto que ya tengan en su computadora por ejemplo uno con Flask pueden seguir estos pasos:

Git global setup

git config --global user.name <>
git config --global user.email <>

Push an existing folder

cd <existing_folder>
git init
git remote add origin [email protected].com:<>/<>.git
git add .
git commit -m "Initial commit"
git push -u origin master

Pero me marc贸 error al hacer el push, el error fue:
[email protected]: Permission denied (publickey,keyboard-interactive).
Entonces al leer algunos comentarios de la comunidad use:

git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/<llave_creada_en_la_clase*> -F /dev/null"

La llave la pueden crear siguiendo este video:
[](https://platzi.com/clases/1526-gitlab/19276-autenticacion2093/
Pero no funcion贸 al refrescar gitlab entonces le agregue --all al hacer push:

git push -u origin --all

y listo! Sub铆 mi proyecto de Flask.
Practicamente solo reemplace git push -u origin master por git push -u origin --all
Estoy usando Ubuntu.

Para subir a gitlab usando WSL Ubuntu 20.04
Si tienen problemas con
fatal: Could not read from remote repository.
al momento de hacer el git push
Usen lo siguiente

git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/private-key-filename-for-this-repository -F /dev/null"

Si luego tienen problemas con los permisos del archivo de la llave ssh
creen un archivo /etc/wsl.conf con el contenido

[automount]
    enabled = true
    root = /mnt/
    options = "metadata,umask=22,fmask=11"

y reincien el PC
En mi caso particular le di el permiso chown 644 a las keys
Recien ahi me dejo subir a gitlab
Me guie de este enlace:
https://superuser.com/questions/1323645/unable-to-change-file-permissions-on-ubuntu-bash-for-windows-10

[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

A alguien le sale este mismo error?.

Buenas noches, al momento de ingresar el nuevo origen me sale el siguiente error: fatal: not a git repository (or any of the parent directories): .git

Alguien sabe que puede ser?

Ten铆a varias llaves y no me dej贸 hacer el push. Con esto lo solucion茅

git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/private-key-filename-for-this-repository -F /dev/null"

Se demora un poco, pero al final corre bien

git push -u origin --all

Esta clase me pareci贸 煤til ya que aprend铆 a generar claves SSH y asignarlas a proyectos en GITLab , anteriormente lo hab铆a hecho pero hasta ahora entend铆 bien el proceso completo. La consola tambi茅n es f谩cil de manejar para crear los repositorios pero en mi caso prefiero hacerlo desde el IDE u alguna otra herramienta.

Todo ok.

otra pregunta tenemos que programar ? yo todav铆a no se angular ni express ni ruby ni nada de eso que hago ahora ?

cuando intento hacer el push me manda el siguiente error:

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 鈥榤aster鈥.
fatal: the remote end hung up unexpectedly
Everything up-to-date

HELP!!

git push -u origin --tags
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

yo lo hice con la url,
conecte con el repo remoto: git remote add origin https://gitlab.com/nombregrupo/nombreproyecto.git
me traje el readme que se creo automaticamente: git pull origin master
y cuando tuve todo hice el push: git push origin master

Despu茅s de investigar un buen rato antes de poder avanzar, encontr茅 que en windows debo correr lo siguiente antes;
git config core.sshCommand 鈥渟sh -o IdentitiesOnly=yes -i ~/.ssh/data_rsa -F /dev/null鈥
Donde data_rsa es el nombre del archivo generado con la clave SSH.

Debe tenerse presente cual es el passphrase utilizado al generar el archivo

Casi no puedo, mi dificultad estaba en las llaves SSH, deb铆 crar una nuevamente y luego si me funcion贸

Para los que tuvieron el error de:
remote: HTTP Basic: Access denied
fatal: Authentication failed for 鈥https://gitlab.com/group-name/project-name.git/

Es porque estan intentando iniciar sesion con un usuario diferente les comento mi escenario(estuve intentando loguear con mi username y la contrase帽a del ssh lo que esta mal, en este escenario seria la ontrase帽a de gitlab directamente), el error esta en que si lo clonan como https les pedira autentificacion http Basic si quieren continuar asi tienen que crear un acces token con permisos para leer o escribir.
Para seguir como en el video clonen el repositorio como ssh y continuen los pasos, con la contrase帽a que pusieron en el ssh

en mi caso la 煤nica manera de solucionar fue haciendo el git remote por https y desahabilitando el Mfa

indeferente al lenguaje que se va ocupar pasar por entendido la instalaci贸n no corresponde
hasta hora la clase mas incompleta del curso.