简介
了解ansible 后写的一些 小案例,加油学习,实践出功夫
注意:安装k3s之前如果用用 docker 代替 containerd的话,需要提前安装docker,k3s需要它下载相关的镜像,不然会提示错误
一、单机安装k3s
查看hosts
root@ecs-3c98-0002:~# tail -5 /etc/ansible/hosts
[k3s_master]
localhost ansible_connection=local hostname=k3s-master
[k3s_node]
192.168.0.100 hostname=k3s-node1
#定义变量
[k3s_node:vars]
#master主机IP
IP=192.168.0.101
#node 主机密码
Passwd=123456
制作ssh-key
ssh-keygen -f ~/.ssh/id_rsa -P '' -q
1.编写yaml
---
- hosts: k3s_master
remote_user: root
tasks:
- name: 下载脚本
shell:
cmd: curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh > install.sh && chmod +x install.sh
- name: 开始安装
shell:
cmd: bash install.sh --write-kubeconfig-mode 644 --docker --disable traefik --node-name k3s-master
- name: 拷贝kubeconfig
shell: mkdir ~/.kube && cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
- name: source kubectl
shell: echo "source <(kubectl completion bash)" >> ~/.bashrc && source ~/.bashrc
args:
executable: /bin/bash
- name: 查看状态
shell: kubectl cluster-info
register: k3s
- debug:
var: k3s.stdout_lines
2.开始安装
# 检查yaml 文件是否存在语法格式错误
ansible-playbook --check --syntax-check k3s_master.yaml
# 模拟运行 -C 或者 --check
ansible-playbook -C k3s_master.yaml
# 没有问题的话执行安装
ansible-playbook k3s_master.yaml
检查
root@k3s-master:~# kubectl get node
NAME STATUS ROLES AGE VERSION
k3s-master Ready control-plane,master 29s v1.20.7+k3s1
二、多节点安装k3s agent
hosts 和上面一样,就是用上面的k3s master 扩展了一台服务器安装agent
0.编写传递key的yaml
---
- hosts: k3s_node
remote_user: root
gather_facts: false
connection: local
tasks:
- name: ssh 秘钥
shell:
cmd: |
sshpass -p "{{ Passwd }}" ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" root@{{inventory_hostname}}
执行
ansible-playbook ssh_key.yaml
1.编写yaml
---
- hosts: k3s_node
remote_user: root
tasks:
- name: 远程拷贝token
copy:
src: /var/lib/rancher/k3s/server/token
dest: /tmp
owner: root
group: root
mode: 755
- name: 开始安装
shell:
cmd: |
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
K3S_URL=https://{{ IP }}:6443 \
K3S_TOKEN_FILE=/tmp/token \
INSTALL_K3S_EXEC="--docker --no-deploy traefik --write-kubeconfig-mode 644" sh -
2.开始安装
# 检查yaml 文件是否存在语法格式错误
ansible-playbook --check --syntax-check k3s_node.yaml
# 模拟运行 -C 或者 --check
ansible-playbook -C k3s_node.yaml
# 没有问题的话执行安装
ansible-playbook k3s_node.yaml
安装完毕,如果需要多个agent 节点,往hosts里的k3s_node 组里添加