前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一键自动安装Docker

一键自动安装Docker

作者头像
dhyuan
发布2022-05-30 14:20:19
1.2K0
发布2022-05-30 14:20:19
举报
文章被收录于专栏:响应式编程

1)创建虚拟机

准备自动化创建VM的脚本

checkout 用于创建 KVM Guest 的 Ansible 脚本。

代码语言:javascript
复制
cd ~/devenv_bootstrap/
git clone git@github.com:dhyuan/virt-infra-ansible.git

cd ~/devenv_bootstrap/virt-infra-ansible/roles
git clone https://github.com/dhyuan/ansible-role-virt-infra.git
cd ansible-role-virt-infra
git checkout -b devenv
git branch --set-upstream-to origin/devenv
git pull

基于自己的情况修改在 inventory 中定义的虚拟机参数

代码语言:javascript
复制
vi ~/devenv_bootstrap/virt-infra-ansible/k8s_masters.yml
vi ~/devenv_bootstrap/virt-infra-ansible/k8s_nodes.yml

如果我们希望利用 DHCP 服务让这些机器拥有固定的 IP,那么我们这里可以给虚拟机设置 mac 地址。

创建虚拟机

代码语言:javascript
复制
ansible-playbook ./virt-infra.yml \
--limit kvmhost,k8s_masters,k8s_nodes

启动虚拟机

代码语言:javascript
复制
ansible-playbook ./virt-infra.yml \
--limit kvmhost,k8s_masters,k8s_nodes \
--extra-vars virt_infra_state=running

停止虚拟机

代码语言:javascript
复制
ansible-playbook ./virt-infra.yml \
--limit kvmhost,k8s_masters,k8s_nodes \
--extra-vars virt_infra_state=shutdown

删除虚拟机

强烈建议用 ansible 删除虚拟机,因为 KVM HOST 上的 hosts 文件、ssh 的一些配置也要修改。

代码语言:javascript
复制
ansible-playbook ./virt-infra.yml \
--limit kvmhost,k8s_masters,k8s_nodes \
--extra-vars virt_infra_state=undefined

更新虚拟机

代码语言:javascript
复制
ansible-playbook --ask-become-pass --inventory ./inventory ansible/update-vms.yaml

2)虚拟机准备完毕,下面开始安装docker。

在 KVMHost 上安装 docker role

代码语言:javascript
复制
ansible-galaxy install \
--roles-path ~/.ansible/roles/ \
git+https://github.com/haxorof/ansible-role-docker-ce.git,2.7.0

#
ansible-galaxy list

其代码保存在 ~/.ansible/roles/ansible-role-docker-ce

创建安装 docker 的 playbook

可以看到这里使用了国内docker镜像源,以提高下载速度。对于私有云环境,可以设置为自己内部镜像库地址。

代码语言:javascript
复制
[devops@192 virt-infra-ansible]$ cat install_docker.yml
---
- hosts: all,!kvmhost
  vars:
    docker_version: 19.03.8
    docker_remove_pre_ce: false
    docker_users: [devops]
    docker_daemon_config:
      registry-mirrors:
        [
          "http://ovfftd6p.mirror.aliyuncs.com",
          "http://registry.docker-cn.com",
          "http://docker.mirrors.ustc.edu.cn",
          "http://hub-mirror.c.163.com",
        ]
      insecure-registries: ["docker.mirrors.ustc.edu.cn"]

  roles:
    - role: ansible-role-docker-ce
[devops@192 virt-infra-ansible]$

在所有 k8s 节点上安装 docker engine。

这里的重点是使用了国内ali的docker-ce源。

代码语言:javascript
复制
ansible-playbook ./install_docker.yml \
--limit k8s_masters,k8s_nodes -v \
-e '{"docker_repository_url": {"CentOS": "http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo"}}'

登录到 master、nodes 节点确认 docker 安装成功。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 响应式编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1)创建虚拟机
    • checkout 用于创建 KVM Guest 的 Ansible 脚本。
      • 基于自己的情况修改在 inventory 中定义的虚拟机参数
        • 创建虚拟机
          • 启动虚拟机
            • 停止虚拟机
              • 删除虚拟机
                • 更新虚拟机
                  • 2)虚拟机准备完毕,下面开始安装docker。
                    • 在 KVMHost 上安装 docker role
                      • 创建安装 docker 的 playbook
                        • 在所有 k8s 节点上安装 docker engine。
                          • 登录到 master、nodes 节点确认 docker 安装成功。
                          相关产品与服务
                          容器镜像服务
                          容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档