- K8s管理
- ansible管理
- 创建目录
- 配置hosts文件
- export ANSIBLE_PYTHON_INTERPRETER=/usr/bin/python3
- 使ansible默认使用python3,修改后在被管理机上也同样会调用python3执行发送的脚本,如果被管理机没装python3将会报错,所以要先把管理机环境变量中的python3改成python2,给被管理机安装完python3以后再改回来
- ansible all -m shell -a ‘yum install -y python3-pip’
- 写files
- 写tasks
- 用yum 安装docker-ce不好,最好用yum localinstall 本地已经有的缓存,不过这会先偷个懒了
- 写top.yml
- 运行
K8s管理
ansible管理
- 管理机
- 安装docker-ce、docker-compose
sudo yum install -y yum-utils device-mapper-persistent-data lvm2# docker-ce的依赖yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 下载docker-ce yum源sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo# 配置docker-ce yum源为tunasudo yum makecache fast && sudo yum install -y docker-ce# 重新加载yum缓存并下载docker-ce
- docker-ce加速,开启内核转发
vim /etc/sysctl.conf``net.ipv4.ip_forward = 1sysctl -p
- 安装rust、python3-pip(会把python解释器一起装了
yum install -y rust python3-pippip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip# 升级pippip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 配置pip源
- 用pip3安装ansible
pip3 install setuptools_rustpip3 install ansible
- 用pip3安装给ansible用的docker模块的依赖
pip3 install docker==2.6.1
- 用epel源安装docker-compose
yum install -y docker-compose
- 添加环境变量
export ANSIBLE_PYTHON_INTERPRETER=/usr/bin/python3# 具体解释见下方第一个代码块第八行export ANSIBLE_INVENTORY=./hosts# pip装的没有那个配置文件source /etc/profile- 最后来个检查
pip3 list |egrep 'docker|ansible' && python3 --version && docker -v
- 安装docker-ce、docker-compose
- 被管理机
- 安装docker-ce
sudo yum install -y yum-utils device-mapper-persistent-data lvm2# docker-ce的依赖yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 下载docker-ce yum源sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo# 配置docker-ce yum源为tunasudo yum makecache fast && sudo yum install docker-ce# 重新加载yum缓存并下载docker-ce
- docker-ce加速,开启内核转发
vim /etc/sysctl.conf``net.ipv4.ip_forward = 1sysctl -p
- 安装python3-pip
yum install -y python3-pippip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip# 升级pippip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 配置pip源
- 用pip3安装给ansible用的docker依赖
pip3 install docker==2.6.1
- 用epel源安装docker-compose
- 安装docker-ce
配置hosts文件
vim /server/ansible/roles/docker-config/hosts
export ANSIBLE_PYTHON_INTERPRETER=/usr/bin/python3
使ansible默认使用python3,修改后在被管理机上也同样会调用python3执行发送的脚本,如果被管理机没装python3将会报错,所以要先把管理机环境变量中的python3改成python2,给被管理机安装完python3以后再改回来
ansible all -m shell -a ‘yum install -y python3-pip’
写files
vim /server/ansible/roles/docker-config/files/daemon.json
{ “registry-mirrors”: [“https://p96e1lwq.mirror.aliyuncs.com“], “insecure-registries”: [“registry:5000”] }
写tasks
vim /server/ansible/roles/docker-config/tasks/main.yml
name: 配置docker-ce yum源 shell: yum-config-manager —add-repo https://download.docker.com/linux/centos/docker-ce.repo && sed -i ‘s+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+’ /etc/yum.repos.d/docker-ce.repo && sudo yum makecache fast
name: 下载pip3, docker-compose, yum-utils, device-mapper-persistent-data, lvm2, docker-ce yum: name: python3-pip,docker-compose,yum-utils,device-mapper-persistent-data,lvm2,docker-ce
用yum 安装docker-ce不好,最好用yum localinstall 本地已经有的缓存,不过这会先偷个懒了
state: latest
name: docker加速:预 file: name: /etc/docker state: directory
name: docker加速 copy: src: daemon.json dest: /etc/docker/
name: 重启docker systemd: name: docker state: restarted enabled: yes daemon_reload: yes
name: 内核转发 lineinfile: line: net.ipv4.ip_forward = 1 path: /etc/sysctl.conf
name: 重启内核 shell: sysctl -p
name: 升级pip shell: pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple —upgrade pip
name: 配置pip源 shell: pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
name: 安装ansible docker模块依赖,这玩意好像是自带的,不需要安装 shell: pip3 install docker==2.6.1
name: 检查安装成果 shell: pip3 list |grep ‘docker’ && python3 —version && docker -v register: jiancha
name: 输出检查成果 debug: msg: “{{ jiancha.stdout }}”
写top.yml
- hosts: all
roles:
- role: docker-config
运行
ansible-playbook top.yml
<a name="PPk8g"></a>## ansible的docker_compose模块| **选项** | **含义** || --- | --- || project_src | 指定docker-compose.yml所在的目录 || build | yes、no(默认<br />构建dockerfile || state | present (docker-compose up -d<br />absent(关闭并删除容器 |**不建议用docker_image模块构建镜像(即docker build),建议docker build并上传到仓库再拉取。**```bash- name: 构建镜像并上传到私有仓库docker_image:build:path: ./sinatra 指定dockerfile所在路径name: registry:5000/oldboyedu/restarttag: v1.0push: yessource: build# compose.yml很能执行docker build的功能# 所以docker-compose模块也可以构建镜像# dockerfile构建镜像的方式大概就可以分为这三种中# 不用dockerfile的话就是手动配置像然后commit了
