prefácio
Antes de aprender gitlab o ambiente de compilação, você primeiro precisa entender a relação entre seus três Git, gitlab, GitHub
Git é um sistema de controle de versão de código-fonte que permite acompanhar as mudanças em mudanças locais e empurre ou puxe de recursos remotos.
GitHub é um serviço gratuito disponível ao público, que exige todo o código (a menos que você tem uma conta paga) público. Qualquer um pode ver que você empurrou para o código GitHub e fornecer recomendações para melhorias.
Gitlab github é um serviço semelhante, as organizações podem usá-lo para fornecer repositório de gerenciamento git interno. É um sistema de gerenciamento de Git-repositório de auto-hospedado que pode manter a privacidade do código de utilizador, e pode facilmente implantar alterações no código.
Em termos simples, github é a maior do mundo plataforma gay de código aberto amigável, livre e aberto para o código. gitlab é de construir a plataforma de gerenciamento de código da empresa para a plataforma de gerenciamento de código proprietário.
Porque a empresa não quer que outras pessoas vejam, o que requer uma empresa para construir a plataforma gitlab para uso pessoal interno.
Preparando o Ambiente:
centos 7
gitlab 10
dependências de instalação
Adicionar gitlab Depois de alguns 10.x mais dependente, e que pretende iniciar o serviço sshd, então vamos adicionar uma dependência para iniciar sshd, firewall adicionar serviços
sudo yum install -y curl policycoreutils-python openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
# 防火墙这2步可以不用管 # sudo firewall-cmd –permanent –add-service=http # sudo systemctl reload firewalld
geração sufixo é substituir sendmail convencional. Em comparação com o sendmail, velocidade sufixo. Desempenho e estabilidade são superiores.
Hoje, muitos dominante agora serviço de correio estão de fato usando postfix. Quando precisamos de um servidor leve é o e-mail, postfix é uma opção.
- ação postfix falta gama são os usuários da Internet em geral. Tentando influenciar o sistema de e-mail sobre a maior parte da Internet, por isso é livre.
- postfix sendmail cerca de três vezes mais rápido do que o desempenho. execução Postfix de um PC desktop pode enviar e receber milhões de mensagens por dia.
- postfix é compatível com o sendmail, sendmail para que os usuários podem facilmente migrar para o postfix. Suporte Postfix / var [/ spool] / mail, / etc / aliases, NIS, e ~ / arquivo .forward.
- postfix é projetado para ainda ser capaz de trabalhar sob carga pesada. Quando o número de crescimento de processamento de correio não vai seguir o processo de execução postfix acrescentou.
- postfix por mais de um programa pequeno dúzia consistindo de cada programa é completado função específica.
configuração gitlab necessário para usar e-mail, assim instalar o postfix
yum -y install postfix
Após a instalação, iniciar postfix
systemctl começar postfix
启动 过程 中 如果 报错: Job para postfix.service falhou porque o processo de controle saiu com o código de erro. Consulte "systemctl estado postfix.service" e "journalctl -XE" para mais detalhes.
Solutions, /etc/postfix/main.cf aberta vim, modificar a seguinte dois, você pode fazer o backup antes da próxima modificação
# 修改 /etc/postfix/main.cf的设置
inet_protocols = ipv4
inet_interfaces = all
Após a edição, começar de novo, o erro não vai, e está programado para iniciar a partir do postfix start
systemctl permitir postfix
Ver estado start-up, consulte Active: ativo (em execução) que foi devidamente iniciado
[Root @ yoyo ~] # systemctl estado postfix
Complete a seguinte operação
[root@yoyo ~]# yum -y install policycoreutils-python openssh-server openssh-clients
[root@yoyo ~]# systemctl enable sshd
[root@yoyo ~]# systemctl start sshd
[root@yoyo ~]# yum -y install postfix
[root@yoyo ~]# systemctl start postfix Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details. [root@yoyo ~]# cp /etc/postfix/main.cf /etc/postfix/main.cf.bak [root@yoyo ~]# vim /etc/postfix/main.cf # 修改inet_protocols = ipv4 和inet_interfaces = all [root@yoyo ~]# systemctl start postfix [root@yoyo ~]# systemctl enable postfix [root@yoyo ~]# systemctl status postfix ● postfix.service - Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2019-01-15 15:37:28 CST; 5min ago Process: 3171 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS) Process: 3167 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS) Process: 3164 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS) Main PID: 3244 (master) CGroup: /system.slice/postfix.service ├─3244 /usr/libexec/postfix/master -w ├─3245 pickup -l -t unix -u └─3246 qmgr -l -t unix -u Jan 15 15:37:27 yoyo systemd[1]: Starting Postfix Mail Transport Agent... Jan 15 15:37:28 yoyo postfix/postfix-script[3242]: starting the Postfix mail system Jan 15 15:37:28 yoyo postfix/master[3244]: daemon started -- version 2.10.1, configuration /etc/postfix Jan 15 15:37:28 yoyo systemd[1]: Started Postfix Mail Transport Agent. [root@yoyo ~]#
instalação gitlab
Download de centos 7 sistema: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
Baixar a versão mais recente para encontrar gitlab-ce-11.6.3-ce.0.el7.x86_64.rpm
Faça o download e instalar o pacote rpm
[root@yoyo ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
[root@yoyo ~]# mkdir /usr/local/gitlab
[root@yoyo ~]# mv gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm /usr/local/gitlab/
[root@yoyo ~]# cd /usr/local/gitlab/
[root@yoyo gitlab]# rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm warning: gitlab-ce-11.6.3-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY error: Failed dependencies: policycoreutils-python is needed by gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm # 如果出现上面这个报错就执行yum install policycoreutils-python [root@yoyo gitlab]# yum -y install policycoreutils-python [root@yoyo gitlab]# rpm -i gitlab-ce-11.6.3-ce.0.el7.x86_64.rpm warning: gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY It looks like GitLab has not been configured yet; skipping the upgrade script. *. *. *** *** ***** ***** .****** ******* ******** ******** ,,,,,,,,,***********,,,,,,,,, ,,,,,,,,,,,*********,,,,,,,,,,, .,,,,,,,,,,,*******,,,,,,,,,,,, ,,,,,,,,,*****,,,,,,,,,. ,,,,,,,****,,,,,, .,,,***,,,, ,*,. _______ __ __ __ / ____(_) /_/ / ____ _/ /_ / / __/ / __/ / / __ `/ __ \ / /_/ / / /_/ /___/ /_/ / /_/ / \____/_/\__/_____/\__,_/_.___/ Thank you for installing GitLab! GitLab was unable to detect a valid hostname for your instance. Please configure a URL for your GitLab instance by setting `external_url` configuration in /etc/gitlab/gitlab.rb file. Then, you can start your GitLab instance by running the following command: sudo gitlab-ctl reconfigure For a comprehensive list of configuration options please see the Omnibus GitLab readme https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Depois de concluída a instalação, haverá um endereço oficial documento gitlab https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Configurar e iniciar gitlab-ce
gitlab Depois de concluída a instalação, você precisa definir um endereço de acesso (ou nome de domínio) para abrir /etc/gitlab/gitlab.rb
, o padrão external_url = 'http://git.example.com'
modificar para seu próprio endereço IP:http://xxx.xx.xxx.xx
[Root @ yoyo conf] # vim /etc/gitlab/gitlab.rb
O external_url padrão original
## GitLab URL
##! URL on which GitLab will be reachable. ##! For more details on configuring external_url see: ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab external_url 'http://git.example.com'
Url modificado para atender a sua própria definição, um porto de criar a sua própria, e não tem um conflito
## GitLab URL
##! URL on which GitLab will be reachable. ##! For more details on configuring external_url see: ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab external_url 'http://47.104.x.x:8100'
Depois de editar: WQ salvar e sair, execute o seguinte comando para fazer o efeito de configuração take
[Root @ yoyo conf] # gitlab-CTL reconfigure
Iniciar gitlab
[Root @ yoyo conf] start # gitlab-CTL
[root@yoyo ~]# gitlab-ctl start
ok: run: gitaly: (pid 6638) 186s
ok: run: gitlab-monitor: (pid 6656) 186s ok: run: gitlab-workhorse: (pid 6659) 186s ok: run: logrotate: (pid 6703) 185s ok: run: nginx: (pid 6709) 185s ok: run: node-exporter: (pid 6715) 184s ok: run: postgres-exporter: (pid 6720) 184s ok: run: postgresql: (pid 7324) 44s ok: run: prometheus: (pid 6752) 171s ok: run: redis: (pid 6761) 171s ok: run: redis-exporter: (pid 6765) 170s ok: run: sidekiq: (pid 7299) 45s ok: run: unicorn: (pid 7476) 18s
Após o arranque, a entrada do navegador http://47.104.x.x:8100
é gitlab login Início, se 502 aparece de página, é necessário modificar a porta padrão 8080
502 problema
Abrir gitlab Início surgem 502 questões
Esse problema ocorre principalmente porque a porta 8080 está ocupada, antes de instalar o tomcat porta padrão 8080, -ntpl netstat ver a situação da porta
[root@yoyo ~]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 6715/node_exporter tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 801/java tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 6709/nginx: master tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 6765/redis_exporter tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 6752/prometheus tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 6720/postgres_expor tcp 0 0 0.0.0.0:8100 0.0.0.0:* LISTEN 6709/nginx: master tcp 0 0 127.0.0.1:8101 0.0.0.0:* LISTEN 7495/unicorn master tcp6 0 0 :::3306 :::* LISTEN 1370/mysqld
Para matar 8080, 8080 correspondente à porta 801 é pip
[Root @ yoyo ~] # kill -9 801
Sob reiniciar o serviço, você pode acessar uma atualização de página
[Root @ yoyo ~] # gitlab-CTL restart
A fim de conflitos a evitar a porta 8080, você pode modificar a porta padrão sob unicórnio, /etc/gitlab/gitlab.rb aberto arquivo de configuração vim
Adicionar uma Unicorn [ 'porta'] = 8101, modificado como se segue
## GitLab URL
##! URL on which GitLab will be reachable. ##! For more details on configuring external_url see: ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab external_url 'http://47.104.x.x:8100' unicorn['port'] = 8101
Depois de editar: wq Salvar e sair, execute o comando reconfigure gitlab-CTL, para que a configuração tenha efeito, e depois reiniciar o serviço
[root@yoyo conf]# gitlab-ctl reconfigure
[root@yoyo conf]# gitlab-ctl stop
[root@yoyo conf]# gitlab-ctl start
Em seguida, o browser será capaz de acessar a home page para ver gitlab Acesso
gitlab configuração Ver
configuração gitlab principalmente dois lugares no etc / gitlab / gitlab.rb
external_url 'http://47.104.x.x:8100'
unicorn['port'] = 8101
Ver mais informações de configuração, consulte os detalhes específicos em /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 47.104.x.x port: 8100 https: false
operações relacionadas
Início do serviço: gitlab-CTL começar a
visualizar o estado: estado gitlab-CTL
parou de serviço: parada gitlab-CTL
para reiniciar o serviço: gitlab-CTL restart
permitir a configuração tenha efeito: reconfigure gitlab-CTL