安装 Rancher OS + gitlab 容器 趟坑记录
0,几个 linux 系统相关的命令: cat /proc/cupinfo | more 查看cpu 状态 df -h | more 查看磁盘空间情况 top 查看进程运行情况 uname -a 查看电脑系统1,操作的苹果机生成密钥,终端执行:c
·
0,几个 linux 系统相关的命令:
cat /proc/cupinfo | more 查看cpu 状态
df -h | more 查看磁盘空间情况
top 查看进程运行情况
uname -a 查看电脑系统
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 //上网
确保能联网
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 出错时拒绝,
按道理是可以避免死机吧
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条内容
所有评论(0)