使用ansible一键部署gitlab私有仓库

这是我实验室的一个项目,也写在了简历上所以将这个项目写了,用这篇博客来详细说一下

环境:

主机 :ansible(用来安装ansible的控制主机) , gitlab(用来部署gitlab的主机)

系统:rhel7.3

软件:gitlab-ce,ansible

ansible部署:

首先需要在ansible主机上部署ansible

[root@ansible ansible]# ls
ansible-2.7.8-1.el7.noarch.rpm
ansible-tower-setup-bundle-3.4.2-1.el7.tar.gz
libtomcrypt-1.17-25.el7.x86_64.rpm
libtommath-0.42.0-5.el7.x86_64.rpm
python2-crypto-2.6.1-13.el7.x86_64.rpm
python2-jmespath-0.9.0-1.el7.noarch.rpm
python-httplib2-0.9.2-0.1.el7.noarch.rpm
python-keyczar-0.71c-2.el7.noarch.rpm
python-paramiko-2.1.1-0.9.el7.noarch.rpm
sshpass-1.06-1.el7.x86_64.rpm
[root@ansible ansible]# yum install * -y

然后配置ansible

[root@ansible ansible]# cd /etc/ansible/
[root@ansible ansible]# ls
ansible.cfg  hosts  roles                ##host是节点主机信息,cfg主配置文件,roles:放角色
[root@ansible ansible]# vim hosts       ##最后添加

[gitlab]
gitlab 

设置ansible免密登陆

[root@ansible .ssh]# ssh-keygen 
[root@ansible .ssh]# ssh-copy-id -i id_rsa.pub [email protected]
[root@ansible .ssh]# ssh-copy-id -i id_rsa.pub [email protected]

测试命令

[root@ansible1 ~]# ansible all -m ping 
ansible | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
gitlab | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

到这里ansible就已经部署完毕,可以进行命令的操作了

将需要用的文件,提前放到制定目录,下面的yml脚本需要,内容如下

[root@gitlab playbooks]# cat /mnt/gitlab.rb
external_url 'http://172.25.1.1'

gitlab部署:

首先需要创建第三方仓库,将gitlab可以通过yum命令来实现安装

[root@ansible software]# createrepo -v software

然后在yum仓库中添加,使软件可被安装,详细过程不说了,这是最简单的操作 

一键部署:

在ansible主机新建yml文件,如下

[root@gitlab ~]# cd /etc/ansible/
[root@gitlab ~]# mkdir playbooks
[root@gitlab ~]# cd playbooks/
[root@gitlab ~]# vim gitlab.yml

---
#gitlab部署
 - hosts: ansible                             ##主机
   remote_user: root                          ##用户
   tasks:                                     ##任务

     - name: install gitlab
       yum: name=gitlab-ce-11.2.0-ce.0.el7.x86_64 state=present
                
     - name: config gitlab
       copy: src=/mnt/gitlab.rb dest=/etc/gitlab/gitlab.rb
                                 
     - name: start gitlab
       raw: gitlab-ctl reconfigure

然后执行操作

[root@gitlab playbooks]# ansible-playbook gitlab.yml 

ok了,这个项目就成功了

项目总结:

通过ansible进行一键部署,大大减少了服务部署的繁琐步骤

  1. gitlab仓库对主机配置较高,在服务器预留资源给gitlab所在的虚拟机时需注意
  2. 搭建成功后无法访问gitlab,后发现为防火墙问题,没有添加端口为白名单

你可能感兴趣的:(redhat,linux)