安装 Rancher OS + gitlab 容器 趟坑记录

0,几个 linux 系统相关的命令:
   cat /proc/cupinfo | more  查看cpu 状态
   df -h | more              查看磁盘空间情况
   top                       查看进程运行情况
   uname -a                  查看电脑系统


1,操作的苹果机生成密钥,

终端执行:cat .ssh/id_rsa.pub

返回:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC61/9KAAHuC3NiWLnEo8WYVYzL+jzyGMKOAQyfXHVZoVBeeGvs/BKhgVOF+WoZL/pt8ZLtVkvCGXE0WYgP1D6/pfB8IEg7Gyxd0MDdPO23ngEHjJbuHt946RertJs8E4Hlagpma2diWq1qfKOtO7P/mqRW9yTnZlwzrkmgkfXc6VGyXJCGNmRcfzFjAP/kCsbNBZEoJSymBIUGdcbiO9f/Rs7ocYN/I7E4LZji5KfegL39q+zTYqXU0OuJJhOZmWZoJQrE/BFO4hSuzee+raBMwwLnsIo3Ad3kZcr61NWFGEqkacTK5A7ZFCJpFC3Z+GGWfD3zjtuaeGPUiHF7gf31 你的邮件地址


复制下来:


2,创建文件: cloud-config.yml
内容如下: 


#cloud-config
hostname: RancherOS-01
rancher:
  password:  密码
  autologin: tty1
  network:
    dns:
      nameservers:
        - 202.96.128.166
        - 202.96.134.133
        - 192.168.0.1
    interfaces:
      eth0: 
        address: 192.168.0.199/22
        gateway: 192.168.0.1
        mtu: 1500
        dhcp: false
  docker:  
    registry_mirror:   'https://nj9kfpre.mirror.aliyuncs.com'   #这个是用来拉取镜像的
ssh_authorized_keys:  
 - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC61/9KAAHuC3NiWLnEo8WYVYzL+jzyGMKOAQyfXHVZoVBeeGvs/BKhgVOF+WoZL/pt8ZLtVkvCGXE0WYgP1D6/pfB8IEg7Gyxd0MDdPO23ngEHjJbuHt946RertJs8E4Hlagpma2diWq1qfKOtO7P/mqRW9yTnZlwzrkmgkfXc6VGyXJCGNmRcfzFjAP/kCsbNBZEoJSymBIUGdcbiO9f/Rs7ocYN/I7E4LZji5KfegL39q+zTYqXU0OuJJhOZmWZoJQrE/BFO4hSuzee+raBMwwLnsIo3Ad3kZcr61NWFGEqkacTK5A7ZFCJpFC3Z+GGWfD3zjtuaeGPUiHF7gf31 你的邮件地址

3,终端执行:  ping 192.168.0.200   //我电脑ip   
             ping www.baidu.com   //上网
确保能联网

4,远程获取苹果机上写好的配置文件,当然你也可以在 rancher OS 安装的机器上直接写,但密钥是比较难写对的,还是远程拷贝吧

 sudo scp mac@192.168.0.200:/Users/mac/Desktop/cloud-config.yml cloud-config.yml


5,下载成功后,查看这个文件: vi cloud-config.yml


6,执行以下命令查看硬盘状况: sudo fdisk -l
sudo df 查看磁盘使用情况
sudo du 查看磁盘目录
查看安装的硬盘是不是 /dev/sda 还是其它


7,开始安装系统: sudo ros install -c /var/lib/rancher/conf/cloud-config.yml -d /dev/sda


8,安装好后重启,进入硬盘上的rancher OS,在苹果机上用终端ping一下,ping 192.168.0.199 ,确保它联网了

9,刚才生成密钥的苹果机上登录rancherOS:  ssh rancher@192.168.0.199


10,如果同一个 IP 登陆过ssh,需要删除文件 .ssh/known_hosts里面这个 ip 对应的记录
由于配置文件设置了密码,试试 rancher os 本机用密码登录,结论是:失败的
重新安装,使用命令: sudo ros install -c /var/lib/rancher/conf/cloud-config.yml -d /dev/sda --append "rancher.password=Antiandi168"
增加了 最后面的密码设置,安装后,是登录成功的,而且重启启 sudo reboot 后也是能登录 


11,进入之后:docker --version
sudo fdisk ls 查看磁盘分区状况


 如何设置ip 地址:
a, 先查看当前的 ip 设置
 sudo ros config get rancher.network 
dns:
  nameservers:
  - 202.96.128.166
  - 202.96.134.133
  - 192.168.0.1
  search: []
http_proxy: ""
https_proxy: ""
interfaces:
  eth0:
    address: 192.168.0.199/22
    addresses: []
    bond: ""
    bond_opts: {}
    bridge: ""
    dhcp: false
    dhcp_args: ""
    gateway: 192.168.0.1
    gateway_ipv6: ""
    ipv4ll: false
    match: ""
    mtu: 1500
    post_up: []
    pre_up: []
    vlans: ""
no_proxy: ""
post_cmds: []
pre_cmds: []


b, 修改 ip 地址: 改为 0.99 ,注意后面的22 或24是一定要带上的,否则连接不上
  sudo ros config set rancher.network.interfaces.eth0.address "192.168.0.99/22" 
  sudo ros config set rancher.network.interfaces.eth0.mtu 1500
  sudo ros config set rancher.network.interfaces.eth0.dhcp false
  sudo ros config set rancher.network.dns.nameservers '["202.96.128.166","202.96.134.133","192.168.0.1"]'


c, 重启 network, 以便让设置生效:
  sudo system-docker restart network



12, 下载 image 前使用命令 df 查看磁盘空间状况:
再执行:docker search rancher/server 从服务器搜索这个镜像
执行:docker pull rancher/server 从服务器拉取这个镜像,


如果速度慢,可以设置国内的镜像 'https://nj9kfpre.mirror.aliyuncs.com'
手工设置 mirror,加快下载速度:  
# RancherOS内设置registry mirror
$ sudo ros config set rancher.docker.registry-mirror "https://s06nkgus.mirror.aliyuncs.com"
$ sudo system-docker restart docker


查找 docker image ls 镜像


13,docker pull rancher/server 在虚拟机里会报错说空间不够用了,我估计这个命令是 pull 下来后放在内存里的,所以我重启 rancher os
换用: docker image pull rancher/server
就成功下载下来了。
并且用 docker image ls
可以查看到我下载下来的 rancher/server 这个镜像
下载完毕了,再用 df 看看磁盘空间的使用情况


14,docker container create docker run -d --restart=always -p 9999:8080 --name=rancher-server rancher/server 
--restart=always      是让 rancher-server 开机启动
--name=rancher-server 是给一个名字,好记住
-p 9999:8080          是系统把9999的端口转发到rancher-server 的8080 端口




15,通过命令查看这个 container 的运行状况:  sudo docker logs -f rancher-server
注意,docker 容器的启动需要时间,需要观察到这个容器启动完毕后才能 reboot 系统,否则再启动后容易出错
sudo reboot
docker container ps 
查看是否 rancher-server 已经开机启动了,
是的话则在其它电脑用浏览器登录 rancher-server
http://192.168.0.199:9999




16,通过命令查看 端口 情况:netstat -nl | grep -- ^tcp


17, 浏览器打开:http://192.168.0.199:9999 浏览 Rancher-server
添加主机,填写主机标签: HostName  RancherAgent-01
设置ip : 192.168.0.199 因为是本机也运行了 rancher-server 所以一定要设置
拷贝下面的命令到 ssh 出来的终端执行安装,注意最好添加一个 name 选项,这样容易查找到


sudo docker run -e CATTLE_AGENT_IP="192.168.0.199"  -e CATTLE_HOST_LABELS='HostName=RancherAgent-01' --name=rancher-agent-01  --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.5 http://192.168.0.199:9999/v1/scripts/35606AC7ECB3588B45AE:1483142400000:FPC9DZhZdpkFc8eko52wnmqfo


再到http://192.168.0.199:9999 浏览 Rancher-server,已经成功增加了一个 Host 主机


18,在Rancher-server搜索应用后下载: gitlab-ce 镜像,设置名字为:gitlab-01 , 端口转发改为: 9080 -> 80   9022 -> 22   9443 -> 443   
下一个应用可以把端口转发改为  9180 -> 80  


19, 在浏览器上登录 192.168.0.199:9080 登录 gitlab 应用


20,第一次访问 gitlab 会要求你填写密码,这里设置为 antiandi168, 保存后登录进入的账号是 root ,而不是 andrimistrator 哦,密码就是刚才设置那个


21, 创建groups,用户,最后是 project,
创建了用户之后,edit user
能设置密码,提供给用户第一次登录使用,并要求该用户修改初始密码
比如:要求王健这个账号的初始密码为 wangjian
湛晓倩的初始密码为  wangjian      http://192.168.0.199:9080/admin/users/wangjian/edit


22,  在项目文件夹里执行终端:
git config user.name " xxx"   //--global 不要,因为每个项目不太一样,最后只设置在当前项目中
git config user.email "xxx@yyy.com"  //--global  不要,因为每个项目不太一样,最后只设置在当前项目中






22, 修改 gitlab 的发送邮件的 email 地址:  from http://blog.gezhiqiang.com/2017/03/05/gitlab-email/
a, 执行命令: docker exec -it 0b08fc2eaf61 bash  // 进入容器
        其中 0b08fc2eaf61 是 container id 
   进入 gitlab 容器的命令行
b,编辑gitlab 的配置文件:vim /etc/gitlab/gitlab.rb 
c,修改这下面几段:
    ### Email Settings
    gitlab_rails['gitlab_email_enabled'] = true
    gitlab_rails['gitlab_email_from'] = 'xxx@yyy.com'
    gitlab_rails['gitlab_email_display_name'] = 'Gitlab'
    gitlab_rails['gitlab_email_reply_to'] = 'xxx@yyy.com'
    gitlab_rails['gitlab_email_subject_suffix'] = ''


    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "xxx@yyy.com"
    gitlab_rails['smtp_password'] = "密码"
    gitlab_rails['smtp_domain'] = "smtp.qq.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true


    保存后重启 gitlab :   sudo service gitlab start   
    不行就试试 ./ctlscript.sh restart 
    不行就试试 sudo gitlab-ctl reconfigure 使修改生效  这个很吓人,一轮编译的样子,修改了之后进不去网页,
    实在不行再 rancher server 上重启 gitlab 容器


d, 测试邮件:
// 进入控制台
$ gitlab-rails console
// 发送测试邮件
$ Notify.test_email('xxx@yyy.com', 'From gitlab', 'This is a test email').deliver_now




23, 登录 wangjian 账号,上面设置的初始密码是 wj123456
改为 antiandi168
尝试忘记密码,看看能否收到 email


24, 为了修改邮件里的网址:
 docker exec -it 0b08fc2eaf61 bash  // 进入容器
        其中 0b08fc2eaf61 是 container id 
   进入 gitlab 容器的命令行
b,编辑gitlab 的配置文件:vim /etc/gitlab/gitlab.rb 
c,修改这下面几段:
    # external_url 'GENERATED_EXTERNAL_URL'
    为  
    external_url 'http://192.168.0.199'   // 不可以改成这样,会造成 gitlab 初始化失败,一直启动不了,要加上 http://
    不能带端口号,因为在 gitlab-ce 容器内部,是 80 做端口,9001是外界再转一层进去
    邮箱收到的邮件没有办法了,要手动加9001端口才能进去,好歹看到的网址是正确的 
e,保存后执行 gitlab-ctl reconfigure ,非常多的 log,很吓人,等待完成。。。


25,  爆粗口: 修改了/etc/gitlab/gitlab.rb 里面的 为 external_url '192.168.0.199:9080' 后,gitlab 一直启动不起来
   网上找的修改不能见效,就想用 docker 的容器命令来做,给我找到了这个命令来取出配置文集,修改好,再塞回去,结果是成功的:


docker container cp 0b08fc2eaf61:/etc/gitlab/gitlab.rb gitlab.rb     其中 0b08fc2eaf61 是 container id  ,拷贝到当前目录下
vi gitlab.rb 修改 external_url '192.168.0.199:9080' 为 # external_url 'GENERATED_EXTERNAL_URL'
docker container cp gitlab.rb 0b08fc2eaf61:/etc/gitlab/gitlab.rb   塞回去


重启容器,结果是成功的。


26,看到rancher server 界面里的 gitlab 里有个命令, 里面有个
环境变量  GITLAB_OMNIBUS_CONFIG 
值是:  external_url 'http://git.example.com' registry_external_url 'http://registry.example.com'
vi gitlab.rb , 
用 ? 命令查找字符串:   GITLAB_OMNIBUS_CONFIG
没找到




27, docker attach container-id 不能用 ctrl + c 退出的处理
使用命令参数: docker attach --sig-proxy=false container-id  就能用 ctrl + c 退出的处理


28, 安装了 rancher os rancher server rancher agent gitlab-ce 到20170808现在,已经 kernal panic 两次了,这个不应该啊,linux 不应该很稳定吗?
我想试试 rancher os + gitlab-ce, 顶多是不监控容器的运行状况,反正看了也没用


29, rancher os 有个问题,就是不能在服务器上登录操作,等我找找解决办法
安装时的命令加上 rancher.password=密码  就行了
重新安装,使用命令: sudo ros install -c /var/lib/rancher/conf/cloud-config.yml -d /dev/sda --append "rancher.password=Antiandi168"
增加了 最后面的密码设置,安装后,是登录成功的,而且重启启 sudo reboot 后也是能登录




30, 只安装 gitlab, 用命令执行:
   docker run -d --restart=always --name=gitlab-ce-01 -p 9001:80 -p 9002:22 -p 9003:443 
   --env='GITLAB_HOST=192.168.0.199' --env='GITLAB_ROOT_PASSWORD=antiandi168' --env='GITLAB_SSH_HOST=192.168.0.199' --env='GITLAB_SSH_PORT=22' 
   --env='GITLAB_BACKUP_DIR=/var/opt/gitlab/backups' --env='GITLAB_BACKUPS=daily' --env='GITLAB_BACKUP_TIME=00:00' 
   --env='GITLAB_EMAIL_ENABLED=true' --env='GITLAB_EMAIL=xxx@yyy.com' --env='GITLAB_EMAIL_FROM=xxx@yyy.com' --env='GITLAB_EMAIL_DISPLAY_NAME=gitlab-01' --env='GITLAB_EMAIL_REPLY_TO=xxx@yyy.com' --env='GITLAB_EMAIL_SUBJECT_SUFFIX=-- Send Automaticly'
   --env='SMTP_ENABLED=true' --env='SMTP_ADDRESS=smtp.exmail.qq.com' --env='SMTP_PORT=465' --env='SMTP_USER_NAME=xxx@yyy.com' --env='SMTP_PASSWORD= 密码' --env='SMTP_DOMAIN=smtp.qq.com' --env='SMTP_AUTHENTICATION=login' --env='SMTP_ENABLE_STARTTLS_AUTO=true' --env='SMTP_TLS=true'
    gitlab/gitlab-ce


上面的命令来源于: 别人的命令 加上自己修改 gitlab.rb 文件的经验,
注意: 需要复制下来,删掉换行,在命令行里执行


docker run -d    \
  --name='gitlab' \
  --link=postgresql-gitlab:postgresql  \
  --link=redis-gitlab:redisio \
  --publish=2222:22 \
  --publish=5080:80 \
  --env='GITLAB_HOST=192.168.0.135'  \
  --env='GITLAB_ROOT_PASSWORD=password'  \
  --env='GITLAB_PORT=5080'  \
  --env='GITLAB_SSH_HOST=192.168.0.135'  \
  --env='GITLAB_SSH_PORT=22' \
  --env='GTTLAB_SINGUP=false' \
  --env='GITLAB_EMAIL=bjjd00001@163.com' \
  --env='GITLAB_EMAIL_DISPLAY_NAME=Gitlab' \
  --env='GITLAB_EMAIL_ENABLED=true' \
  --env='GITLAB_BACKUP_DIR=/home/git/data/backups' \
  --env='GITLAB_BACKUPS=daily' \
  --env='GITLAB_BACKUP_TIME=00:00' \
  --env='SMTP_ENABLED=true' \
  --env='SMTP_DOMAIN=163.com' \
  --env='SMTP_HOST=smtp.163.com' \
  --env='SMTP_PORT=25' \
  --env='SMTP_USER=***********@163.com' \
  --env='SMTP_PASS=123456' \
  --env='SMTP_STARTTLS=true' \
  --env='SMTP_OPENSSL_VERIFY_MODE=peer' \
  --env='SMTP_AUTHENTICATION=login' \
  --volume=/etc/localtime:/etc/localtime \
  --volume=/docker/gitlab/gitlab:/home/git/data \
  sameersbn/gitlab:7.8.1


自己修改 gitlab.rb 文件的经验:
    gitlab_rails['gitlab_email_enabled'] = true
    gitlab_rails['gitlab_email_from'] = 'xxx@yyy.com'
    gitlab_rails['gitlab_email_display_name'] = 'Gitlab'
    gitlab_rails['gitlab_email_reply_to'] = 'xxx@yyy.com'
    gitlab_rails['gitlab_email_subject_suffix'] = ''


    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = " xxx@yyy.com"
    gitlab_rails['smtp_password'] = "密码"
    gitlab_rails['smtp_domain'] = "smtp.qq.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true


复制下来,删掉换行,在命令行里执行
    docker run -d --restart=always --name=gitlab-ce-01 -p 9001:80 -p 9002:22 -p 9003:443 --env='GITLAB_HOST=192.168.0.199' --env='GITLAB_ROOT_PASSWORD=xxx' --env='GITLAB_SSH_HOST=192.168.0.199' --env='GITLAB_SSH_PORT=22' --env='GITLAB_BACKUP_DIR=/var/opt/gitlab/backups' --env='GITLAB_BACKUPS=daily' --env='GITLAB_BACKUP_TIME=00:00' --env='GITLAB_EMAIL_ENABLED=true' --env='GITLAB_EMAIL= xxx@yyy.com' --env='GITLAB_EMAIL_FROM=xxx@yyy.com' --env='GITLAB_EMAIL_DISPLAY_NAME=gitlab-01 of Antiandi' --env='GITLAB_EMAIL_REPLY_TO=xxx@yyy.com' --env='GITLAB_EMAIL_SUBJECT_SUFFIX= ** Send Automaticly' --env='SMTP_ENABLED=true' --env='SMTP_ADDRESS=smtp.exmail.qq.com' --env='SMTP_PORT=465' --env='SMTP_USER_NAME=xxx@yyy.com' --env='SMTP_PASSWORD=密码' --env='SMTP_DOMAIN=smtp.qq.com' --env='SMTP_AUTHENTICATION=login' --env='SMTP_ENABLE_STARTTLS_AUTO=true' --env='SMTP_TLS=true' gitlab/gitlab-ce


实验结果:
端口 ok    root 密码 ok     backup 不知道    email 不行还是要到 gitlab.rb 上去修改
docker run -d --restart=always --name=gitlab-ce-01 -p 9001:80 -p 9002:22 -p 9003:443 --env='external_url=http://192.168.0.199:9001' --env='GITLAB_BACKUP_DIR=/var/opt/gitlab/backups' --env='GITLAB_BACKUPS=daily' --env='GITLAB_BACKUP_TIME=16:00' gitlab/gitlab-ce


20170808 16:00 Rancher OS 又崩溃了,end kernel no syncing


换用cent os 7 最小版本吧,不会用,连 ping 的命令都没有,,,,还是 rancher os 好用


再给 rancher os 一次机会,看 rancher os 启动时是 selinux ,百度了一下  selinux kernel panic no syncing , 
得到这篇网页: https://stackoverflow.com/questions/12867591/how-to-solve-kernel-panic-not-syncing-attempted-to-kill-init-without-er
说最简单的方式是: sudo vi /etc/selinux/config
修改  SELINUX=permissive   为   SELINUX=enforcing
看 permissive  和 enforcing 的区别是: permissive 出错时做记录,但不拒绝, enforcing 出错时拒绝,
按道理是可以避免死机吧
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值