From 99f1a3d73a2cad8092a0221967fb5250272a4cc5 Mon Sep 17 00:00:00 2001 From: Scott Lowe Date: Sun, 11 Mar 2018 16:38:59 -0600 Subject: [PATCH] Add Ansible support Add support for running Ansible playbook to configure VMs with packages necessary to turn up Kubernetes using kubeadm Signed-off-by: Scott Lowe --- kubernetes/kubeadm-vagrant/Vagrantfile | 5 +++ kubernetes/kubeadm-vagrant/ansible.cfg | 5 +++ kubernetes/kubeadm-vagrant/ansible.yml | 42 ++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 kubernetes/kubeadm-vagrant/ansible.cfg create mode 100644 kubernetes/kubeadm-vagrant/ansible.yml diff --git a/kubernetes/kubeadm-vagrant/Vagrantfile b/kubernetes/kubeadm-vagrant/Vagrantfile index ed0d192..06d02ca 100644 --- a/kubernetes/kubeadm-vagrant/Vagrantfile +++ b/kubernetes/kubeadm-vagrant/Vagrantfile @@ -66,4 +66,9 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # srv.vm.provider 'virtualbox' end # config.vm.define end # machines.each + + # Configure the VM using Ansible + config.vm.provision 'ansible' do |ansible| + ansible.playbook = 'ansible.yml' + end # config.vm.provision end # Vagrant.configure diff --git a/kubernetes/kubeadm-vagrant/ansible.cfg b/kubernetes/kubeadm-vagrant/ansible.cfg new file mode 100644 index 0000000..e7c5f46 --- /dev/null +++ b/kubernetes/kubeadm-vagrant/ansible.cfg @@ -0,0 +1,5 @@ +[defaults] +inventory = .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory +private_key_file = ~/.vagrant.d/insecure_private_key +remote_user = vagrant +host_key_checking = False \ No newline at end of file diff --git a/kubernetes/kubeadm-vagrant/ansible.yml b/kubernetes/kubeadm-vagrant/ansible.yml new file mode 100644 index 0000000..f35e45d --- /dev/null +++ b/kubernetes/kubeadm-vagrant/ansible.yml @@ -0,0 +1,42 @@ +--- +- hosts: "all" + become: true + remote_user: "vagrant" + gather_facts: false + + tasks: + - name: "Install Python" + raw: "apt-get -y -q install python" + + - name: "Gather facts" + setup: + + - name: "Install Kubernetes APT Key" + apt_key: + url: "https://packages.cloud.google.com/apt/doc/apt-key.gpg" + state: "present" + tags: + - manager + - worker + + - name: "Add Kubernetes repository for Ubuntu Xenial" + apt_repository: + repo: "deb http://apt.kubernetes.io/ kubernetes-xenial main" + state: "present" + update_cache: "yes" + tags: + - manager + - worker + + - name: "Install packages for Docker and Kubernetes" + apt: + name: "{{ item }}" + state: "present" + with_items: + - "docker.io" + - "kubectl" + - "kubelet" + - "kubeadm" + tags: + - manager + - node