76 lines
2.0 KiB
YAML
76 lines
2.0 KiB
YAML
---
|
|
# main tasks for kubernetes role
|
|
|
|
# install required system packages
|
|
- name: install system packages
|
|
apt:
|
|
state: present
|
|
name: "{{item}}"
|
|
update_cache: yes
|
|
with_items:
|
|
- git
|
|
- virtualbox
|
|
|
|
# install vagrant
|
|
- stat: path=/usr/bin/vagrant
|
|
register: vagrant_exe
|
|
|
|
- name: download vagrant package
|
|
get_url:
|
|
dest: "{{ vagrant_installer_path }}"
|
|
url: "{{ vagrant_installer_url }}"
|
|
when: vagrant_exe.stat.exists == False
|
|
|
|
- name: install vagrant deb from download
|
|
apt:
|
|
deb: "{{ vagrant_installer_path }}"
|
|
when: vagrant_exe.stat.exists == False
|
|
|
|
- name: remove vagrant installer
|
|
file:
|
|
state: absent
|
|
path: "{{ vagrant_installer_path }}"
|
|
|
|
|
|
# install kubectl
|
|
- stat: path="{{kubernetes_kubectl_path}}"
|
|
register: kubectl_exe
|
|
|
|
- name: download kubectl
|
|
get_url:
|
|
url: "{{ kubernetes_kubectl_url }}"
|
|
dest: "{{kubernetes_kubectl_path}}"
|
|
mode: 0755
|
|
when: kubectl_exe.stat.exists == False
|
|
|
|
# get vagrant file from git
|
|
- name: fetch vagrantfile
|
|
git:
|
|
repo: https://github.com/coreos/coreos-kubernetes.git
|
|
dest: /opt/home.xai-corp.net/coreos-kubernetes
|
|
|
|
- stat: path="{{kubernates_vagrant_config_path}}/config.rb"
|
|
register: k8s_config
|
|
|
|
- name: create k8s config
|
|
command: cp {{kubernates_vagrant_config_path}}/config.rb.sample {{kubernates_vagrant_config_path}}/config.rb
|
|
|
|
# update vagrant box
|
|
- name: update vagrant box
|
|
command: vagrant box update
|
|
args:
|
|
chdir: "{{kubernates_vagrant_config_path}}"
|
|
|
|
- name: vagrant up
|
|
command: vagrant up
|
|
args:
|
|
chdir: "{{kubernates_vagrant_config_path}}"
|
|
|
|
- name: configure kubectl
|
|
command: "{{ item }}"
|
|
with_items:
|
|
- kubectl config set-cluster vagrant-multi-cluster --server=https://172.17.4.99:443 --certificate-authority=${PWD}/ssl/ca.pem
|
|
- kubectl config set-credentials vagrant-multi-admin --certificate-authority=${PWD}/ssl/ca.pem --client-key=${PWD}/ssl/admin-key.pem --client-certificate=${PWD}/ssl/admin.pem
|
|
- kubectl config set-context vagrant-multi --cluster=vagrant-multi-cluster --user=vagrant-multi-admin
|
|
- kubectl config use-context vagrant-multi
|