Ansible : 核心
Modules : 包括 Ansible 自带的核心模块及自定义模块
Plugins : 完成模块功能的补充,包括连接插件、邮件插件等
Playbooks : 剧本;定义 Ansible 多任务配置文件,由Ansible 自动执行
Inventory : 定义 Ansible 管理主机的清单
编辑:佚名 2021-06-12 16:45:47 来源于:魔法系统之家下载
以下步骤都经本人实测,可以完美运行。
官方参考网址:https://github.com/gjmzj/kubeasz/
Ansible了解
ansible是个什么东西呢?官方的title是“Ansibleis Simple IT Automation”——简单的自动化IT工具。这个工具的目标有这么几项:
自动化部署APP;
自动化管理配置项;
自动化的持续交互;
自动化的(AWS)云服务管理;
所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。通俗的说就是批量的在远程服务器上执行命令。当然,最主要的是它是基于 paramiko 开发的。这个paramiko是什么呢?它是一个纯Python实现的ssh协议库。因此fabric和ansible还有一个共同点就是不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。
由上面的图可以看到 Ansible 的组成由 5 个部分组成:
具体的命令可以查看参考(中文权威指南):http://www.ansible.com.cn/docs/intro_installation.html
# 文档中脚本默认均以root用户执行# 安装 epel 源并更新 yum install epel-release –y(最好每台机器装一下) yum install net-tools yum update# 删除不要的默认安装 yum erase firewalld firewalld-filesystem python-firewall -y# 安装python yum install python -y
# CentOS 7 yum install git python-pip -y# pip安装ansible(国内如果安装太慢可以直接用pip阿里云加速)#pip install pip –upgrade#pip install ansible pip install pip –upgrade -i http://mirrors.aliyun.com/pypi/simple/ –trusted-host mirrors.aliyun.com pip install –no-cache-dir ansible -i http://mirrors.aliyun.com/pypi/simple/ –trusted-host mirrors.aliyun.com
ssh-keygen -t rsa -b 2048 回车 回车 回车 ssh-copy-id $IPs #$IPs为所有节点地址包括自身,按照提示输入yes 和root密码 (即使是本机也需要配置)
# 下载项目文件 git clone https://github.com/gjmzj/kubeasz.git mv kubeasz /etc/ansible# 下载已打包好的binaries,并且解压缩到/etc/ansible/bin目录# 国内请从我分享的百度云链接下载 https://pan.baidu.com/s/1c4RFaA # 如果你有合适网络环境也可以按照/down/download.sh自行从官网下载各种tar包到 ./down目录,并执行download.sh tar zxvf k8s.191.tar.gz mv bin/* /etc/ansible/bin cd /etc/ansible cp example/hosts.m-masters.example hosts# 根据上文实际规划修改此hosts文件 vi hosts
验证ansible安装
在deploy 节点使用如下命令
ansible all -m ping
如果配置正确可以看到类似输出:
192.168.1.42 | SUCCESS => { “changed”: false, “failed”: false, “ping”: “pong” } 192.168.1.43 | SUCCESS => { “changed”: false, “failed”: false, “ping”: “pong” } 192.168.1.44 | SUCCESS => { “changed”: false, “failed”: false, “ping”: “pong” }
注意:
1)如何重复安装时,注意在执行完卸载命令后,将/etc/kubernetes目录删除
2)安装02.etcd时往往不能够一次性成功安装,如何执行过程中有错误应执行第二遍02.etcd.yml(不管使用90.setup.yml或是02.etcd.yml安装)
#ansible-playbook 01.prepare.yml #ansible-playbook 02.etcd.yml #ansible-playbook 03.kubectl.yml #ansible-playbook 04.docker.yml #ansible-playbook 05.kube-master.yml #ansible-playbook 06.kube-node.yml #ansible-playbook 07.calico.yml 或者 ansible-playbook 07.flannel.yml 只能选择一种网络插件 #ansible-playbook 90.setup.yml # 一步安装 #ansible-playbook 99.clean.yml # 一步安装source /etc/profile(环境变量设置未生效,kubectl工具不能使用)
自动安装时没有环境变量,需要source一下;
单主单节点
发现问题:ansible1.8在重新安装并没有完全删除掉/etc/kubernetes中的东西,1.9没啥问题,所以1.8需要将/etc/kubernetes中的东西全部删掉再运行;否则在安装06node时csr验证会报错。
还有装02.etcd时配置文件读不到的问题,运行两次就好了;
ansible 1.9没有问题
安装DNS/dashboard时,注意dashboard-controller.yaml中deployment的版本为extensions/v1beta1
规律,可以先执行90.setup,然后执行2.etcd
卸载的时候注意删除掉/etc/kubernetes目录
注意:api-server是以https(用户名密码启动的),所以最后需要为用户配置角色才可以通过url进行访问:
绑定api-server的权限(否则是注册不上的)
kubectlcreate clusterrolebinding kubelet-node-clusterbinding1 –clusterrole=cluster-adm
Ansible : 核心 Modules : 包括 Ansible 自带的核心模块及自定义模块 Plugins : 完成模块功能的补充,包括连接插件、邮件插件等 Playbooks : 剧本;定义 Ansible 多任务配置文件,由Ansible 自动执行 Inventory : 定义 Ansible 管理主机的清单