Combate CICD - usando Jenkins para alcançar implantação automatizada e isolamento de ambiente
instalação
jdk
1. Verifique se o jdk está instalado
[root@10-0-59-231 data]# java -version # 查看是否安装jdk,没有则要安装
-bash: java: 未找到命令
2. Pesquise os pacotes disponíveis
yum search java |grep -i --color JDK
3. Instale o jdk
yum install java-1.8.0-openjdk* # 安装1.8 openjdk
4. Veja
java -version
#输出
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
PS: yum configura automaticamente as variáveis de ambiente, você pode / profile vim / etc Visualizar
Jenkins
1. Instale sob centos 7
yum install jenkins
2. Altere o número da porta padrão e o diretório de armazenamento do código git clone
vim /etc/sysconfig/jenkins
JENKINS_PORT="8088" # 默认8080
JENKINS_HOME="/data/jenkins" # 默认 /var/lib/jenkins
systemctl daemon-reload # 使得配置生效
3. Comece
systemctl restart jenkins # 重启
chkconfig jenkins on # 开机启动
Configuração
1. Crie uma nova tarefa
2. Insira um nome e selecione o software de estilo livre.
3. Geral, marque para descartar a construção antiga
4. Configure o armazém de código. Usamos o gitlab, portanto, verifique o Git e cole o endereço do repositório de código, Credenciais, adicione um usuário com permissão.
Especificador de ramo: O padrão é extrair o código do mestre para compilar, geralmente lançamos é o lançamento, portanto, o ramo de lançamento é usado aqui.
5. Crie gatilhos. Isso não precisa ser configurado, nem usado.
6. Construa o ambiente. Não usado temporariamente, ignore.
7. Construir. Clique em "Executar Shell" para chamar o script build.sh para completar a compilação do código-fonte, consulte a próxima seção para obter detalhes.
8. Após a construção. Clique em “Send build artifacts over SSH” para publicar o pacote compilado na máquina remota via ssh, veja abaixo para detalhes.
Construir
1. Construa o script.
cd ${WORKSPACE} && cd server/paas_build
chmod 777 build_db_proxy_server.sh
./build_db_proxy_server.sh
cd ../
echo 'tar ${pwd}/online.base.im/'
tar -czvf online.base.im.tar.gz online.base.im/
Empacote e compacte aqui para facilitar a distribuição de cópias subsequente.
2. Teste a construção.
Clique em Build Now para ver o progresso da compilação abaixo e clique novamente para ver os resultados específicos da compilação.
distribuição
Adicionados servidores SSH
PS: Depois que o programa é compilado localmente, ele precisa ser copiado para a máquina de destino e executado para concluir todo o processo.
Clique em Gerenciamento do sistema -> Configurações do sistema e arraste-o para a parte inferior. Encontre servidores SSH e clique em Adicionar.
Insira as informações relevantes, incluindo o Diretório remoto, que precisa ser criado com antecedência. É recomendado estar em diretórios como / data / apps. Este diretório representa o diretório raiz da cópia subsequente do arquivo para a máquina. Em seguida, clique em Senha de configurações avançadas e em "Testar configuração" para verificar se a configuração está correta.
Se houver várias máquinas, adicione várias vezes.
Publicar script
1. Depois que a compilação for concluída, você precisará executar algumas ações de instalação por meio de scripts, clique em "Enviar artefatos de compilação por SSH".
2. Escolha um servidor. Comparado ao WorkSpace, meu pacote está localizado em server / online.base.im.tar.gz.
Remover prefixo: o prefixo a ser removido, se não definido. Supondo que o diretório remoto definido pelos servidores SSH seja / data / webapps, o caminho após o pacote compactado ser copiado é: /data/webapps/server/online.base.im.tar.gz.
Comando Exec: o comando a ser executado. Defina o diretório de trabalho atual antes da execução, como cd / data / webapps.
Script anexado:
kill -9 $(pidof db_proxy_server) # 停止进程
sleep 5 # 等一会
cd /data/webapps/
# 备份原程序
mv online.base.imdbproxyserver.service online.base.imdbproxyserver.service.$(date "+%Y%m%d")${BUILD_NUMBER}
tar -zxvf online.base.im.tar.gz
rm -rf online.base.im.tar.gz
mv online.base.im online.base.imdbproxyserver.service
cd online.base.imdbproxyserver.service
cd db_proxy_server
mv libhiredis.so.0.13 libhiredis.so.0.12
ln -s /data/webconf/dbproxyserver.xml dbproxyserver.xml
cd ../
chmod 777 *.sh
./restart.sh db_proxy_server
reconstruir
Neste momento, você deve continuar ajustando o script até que apareça uma bola azul, o que significa que tudo correu bem no meio sem erros. Então é alcançado:
- Extraia automaticamente o código mais recente do gitlab
- Compilar
- Implantar o cluster automaticamente
Dê uma olhada no efeito:
PS: Se você precisar publicar em várias máquinas, basta adicionar um Servidor SSH na seção "pós-construção".
sobre
CSDN sobre o autor
recomenda seu próprio IM de código aberto, escrito em Golang puro:
CoffeeChat :
https://github.com/xmcy0011/CoffeeChat
código aberto im com servidor (go) e cliente (flutter + swift)
Referido a projetos bem conhecidos, como TeamTalk e Guazi IM, incluindo servidor (go) e cliente (flutter + swift), funções de bate-papo único e robô (micro, Turing, Sizhi) foram concluídas e funções de bate-papo em grupo estão sendo atualmente desenvolvido, Bem-vindo amigos Star que estão interessados em golang e desenvolvimento de plataforma cruzada de tecnologia de vibração para prestar mais atenção.
—————————————————
Declaração de direitos autorais: este artigo é o artigo original do blogueiro CSDN "Xu Fei" e segue o contrato de direitos autorais CC 4.0 BY-SA. Anexe a fonte original link e isso para reimpressão.
Link original: https://blog.csdn.net/xmcy001122/article/details/105665732
Referência: https://www.jianshu.com/p/5f671aca2b5a
Referência: http://www.linuxboy.net/linuxjc/144365.html