## 安全策略
- iptables 默认规则删除
- selinux 关闭
- swap 分区禁用,检查/etc/fstab 是否禁用
## 基础环境检查
- 检查宿主机新增磁盘ID
- hostname重命名
- ssh 公钥创建
## 自建yum 仓库
- install vsftpd
- createrepo
## 基础服务
- ansible 安装
- ftp yum 服务
- dns 服务
- docker
- harbor
- harbor noah-cloud 基础镜像导入
SSH 公钥创建
ssh-keygen
复制公钥到所有宿主机
ssh-copy-id root@192.168.10.100
进入安装目录/root/auto_k8s_1.0.1/noah_tools/docker_install/roles,执行 RunVsftpd.sh脚本部署yum 服务及ansible
bash -x RunVsftpd.sh
初始化ansible hosts 配置文件。
vim /etc/ansible/hosts
[harbor]
192.168.10.100
[k8s-master]
192.168.10.120 hostname=k8s-master01.sinux.com.cn
192.168.10.121 hostname=k8s-master02.sinux.com.cn
192.168.10.122 hostname=k8s-master03.sinux.com.cn
[k8s-node]
192.168.10.123 hostname=k8s-node01.sinux.com.cn
验证 ansible 权限添加是否成功。
ansible all -m ping
192.168.10.100 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.10.120 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.10.121 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.10.123 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.10.122 | SUCCESS => {
"changed": false,
"ping": "pong"
}
返回success 及ansible权限添加成功。
### 基础服务环境变量初始化: cat vars/init.yml
---
harbor_server: harbor.sinux.com.cn
yum_url: 192.168.10.100
harbor_password: redhat
domain: sinux.com.cn
dns_server: 192.168.10.100
reverse_zone: 10.168.192.in-addr.arpa
reverse_file: 192.168.10.zone
执行deploy_dns.yml 部署 dns server
ansible-playbook -e host=192.168.10.100 -e user=root deploy_dns.yml
修改DNS A 记录
cat /var/named/chroot/var/named/sinux.com.cn.zone
$TTL 1D
@ IN SOA sinux.com.cn. root.sinux.com.cn. (
2015101401 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.sinux.com.cn.
ns A 192.168.10.100
harbor A 192.168.10.100
k8s-master01 A 192.168.10.120
k8s-master02 A 192.168.10.121
k8s-master03 A 192.168.10.122
k8s-node01 A 192.168.10.123
修改DNS 反向记录
cat /var/named/chroot/var/named/192.168.10.zone
$TTL 1D
@ IN SOA sinux.com.cn. root.sinux.com.cn. (
2015101402 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.sinux.com.cn.
100 IN PTR ns.sinux.com.cn.
100 IN PTR harbor.sinux.com.cn.
120 IN PTR k8s-master01.sinux.com.cn.
121 IN PTR k8s-master02.sinux.com.cn.
122 IN PTR k8s-master03.sinux.com.cn.
123 IN PTR k8s-node01.sinux.com.cn.
124 IN PTR k8s-node02.sinux.com.cn.
重启DNS 服务,并验证DNS 记录是否生效
systemctl restart named-chroot.service
dig harbor.sinux.com.cn
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> harbor.sinux.com.cn
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40436
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;harbor.sinux.com.cn. IN A
;; ANSWER SECTION:
harbor.sinux.com.cn. 86400 IN A 192.168.10.100
;; AUTHORITY SECTION:
sinux.com.cn. 86400 IN NS ns.sinux.com.cn.
;; ADDITIONAL SECTION:
ns.sinux.com.cn. 86400 IN A 192.168.10.100
;; Query time: 0 msec
;; SERVER: 192.168.10.100#53(192.168.10.100)
;; WHEN: Sat Jan 05 02:07:51 EST 2019
;; MSG SIZE rcvd: 97
> 注意修改 所有机器 dns 客户端配置。/etc/resolv.conf
所有机器执行deploy_docker.yml 部署 docker-ce-17.03
ansible-playbook -e host=all -e user=root deploy_docker.yml
执行deploy_harbor.yml 部署harbor 镜像仓库服务。安装之前重启harbor宿主机。
ansible-playbook -e host=192.168.10.100 -e user=root deploy_harbor.yml
> harbor 管理用户: admin/redhat
>注意 检查 harbor 宿主机是否创建/data 磁盘分区
windows 添加hots 解析访问harbor 服务。创建harbor 公开项目:noah-cloud
所有宿主机登录harbor
ansible all -m shell -a "docker login harbor.sinux.com.cn -uadmin -p'redhat' "
进入 /root/auto_k8s_1.0.1/noah_tools/harbor_tools/ 导入kubernetes 基础安装镜像。总共导入29个镜像
> 注意修改脚本harbor服务地址
python harbor_load.py