MigratingTo1804
Jan 21, 2019
Technology
AIM
For upgrading the offline installation of kubespray from 1604 to 1804.
Ansible
Get the ansible debs via following command:
# apt-get update
# apt-get install install software-properties-common
# apt-add-repository ppa:ansible/ansible
# apt-get install ansible
# mkdir /root/debs && cd /var/cache
# find . | grep deb$ | xargs -I % cp % /root/debs
You should change the vagrant box’s configuration:
# vim /etc/netplan/01-netcfg.yaml
eth0:
dhcp4: yes
+ dhcp-identifier: mac
The vagrant file(shell provision) should be like following:
rm -f /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
echo ' nameservers:'>>/etc/netplan/50-vagrant.yaml
echo ' addresses: [10.148.129.101]'>>/etc/netplan/50-vagrant.yaml
netplan apply eth1
task Changes
Judge for OS version changes:
# vim roles/kube-deploy/tasks/main.yml
- name: Set ubuntu_version
set_fact:
ubuntu_version: >-
{%- if 'bionic' in os_release.stdout -%}
bionic
{%- elif 'xenial' in os_release.stdout -%}
xenial
{%- endif -%}
# vim roles/kube-deploy/deploy-ubuntu.yml
- name: "upload debs.tar.xz files to kube-deploy(Xenial)"
copy:
src: files/1604debs.tar.xz
dest: /usr/local/
owner: root
group: root
mode: 0777
when: ubuntu_version == "xenial"
- name: "Install ansible and python-netaddr(Xenial)"
raw: cd /usr/local/ && tar xJvf 1604debs.tar.xz -C /usr/local/ && echo "deb [trusted=yes] file:///usr/local/static ./">/etc/apt/sources.list && apt-get u
pdate -y && apt-get install -y ansible python-netaddr && rm -f /usr/local/debs.tar.xz
when: ubuntu_version == "xenial"
- name: "upload debs.tar.xz files to kube-deploy(Bionic)"
copy:
src: files/1804debs.tar.xz
dest: /usr/local/
owner: root
group: root
mode: 0777
when: ubuntu_version == "bionic"
- name: "Install ansible and python-netaddr(Bionic)"
raw: cd /usr/local/ && tar xJvf 1804debs.tar.xz -C /usr/local/ && echo "deb [trusted=yes] file:///usr/local/static ./">/etc/apt/sources.list && apt-get u
pdate -y && apt-get install -y ansible python-netaddr && rm -f /usr/local/debs.tar.xz
when: ubuntu_version == "bionic"
Also you have to change the Vagrantfiles:
File.open('./dns.sh' ,'w') do |f|
f.write "#!/bin/bash\n"
f.write "sed -i '/^#VAGRANT-END/i dns-nameservers 10.148.129.101' /etc/network/interfaces\n"
f.write "systemctl restart networking.service\n"
#f.write "rm -f /etc/resolv.conf\n"
#f.write "ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf\n"
#f.write "echo ' nameservers:'>>/etc/netplan/50-vagrant.yaml\n"
#f.write "echo ' addresses: [10.148.129.101]'>>/etc/netplan/50-vagrant.yaml\n"
#f.write "netplan apply eth1\n"
end
Uncomment the sed/systemctl for xenial, uncomment the later 5 lines for bionic.
You should have xenial/bionic boxs under ~/.vagrant.d/boxes.