diff --git a/deploy_containerlab.yaml b/deploy_containerlab.yaml deleted file mode 100644 index 24a2984624b8f0b77b6774098c6a86e95a57b3de..0000000000000000000000000000000000000000 --- a/deploy_containerlab.yaml +++ /dev/null @@ -1,14 +0,0 @@ -- name: Sanity check - hosts: dev_environments - -- name: System Setup - hosts: dev_environments - become: true - roles: - - kvm - - containerlab - - dev_images -- name: System Setup - hosts: dev_environments - roles: - - dev_networks diff --git a/inventory.yml b/inventory.yml index 42b0550dd22bc2764de4969685f9ba6d23d50e7a..a3a9fabba39ef85a9ffaf5b3d975862c9d41cd1f 100644 --- a/inventory.yml +++ b/inventory.yml @@ -1,5 +1,4 @@ dev_environments: hosts: - test02: - ansible_host: 172.16.100.9 - + karel-cl-01: + ansible_host: karel-cl-01 diff --git a/playbook.yml b/playbook.yml index bc489526da8d56532af3e0310827f0e5df37debf..7fb2825fefeb5f8e7e1ff478f784f6fd4e47309b 100644 --- a/playbook.yml +++ b/playbook.yml @@ -1,21 +1,6 @@ -- name: Sanity check - hosts: dev_environments - tasks: - - name: Ping them - ansible.builtin.ping: - - name: Show something - ansible.builtin.debug: - msg: blah blah - -- name: System Setup +- name: Install Docker and ContainerLab hosts: dev_environments become: true roles: - - kvm + - docker - containerlab - - dev_images - -- name: System Setup - hosts: dev_environments - roles: - - dev_networks diff --git a/roles/containerlab/tasks/main.yml b/roles/containerlab/tasks/main.yml index 43ef0e4895830a128ca1a47be2cd88e563a40ecb..6cab3f4faf78ecb1251e220768331ab6944fdaa0 100644 --- a/roles/containerlab/tasks/main.yml +++ b/roles/containerlab/tasks/main.yml @@ -1,4 +1,4 @@ -- name: Containerlab Repository +- name: ContainerLab Repository ansible.builtin.apt_repository: repo: deb [trusted=yes] https://apt.fury.io/netdevops/ / state: present @@ -6,19 +6,7 @@ notify: - Update apt cache -- name: Install Packages +- name: Install ContainerLab package ansible.builtin.apt: pkg: - - docker.io - containerlab - - python3-pip - -- name: Extra pip packages - ansible.builtin.pip: - name: boto3 - -- name: Add relevant users to docker group - ansible.builtin.user: - name: "{{ nat_user }}" - groups: docker - append: true diff --git a/roles/dev_images/tasks/build_image.yml b/roles/dev_images/tasks/build_image.yml deleted file mode 100644 index 8a264404db6dca020f7faa6b97676976e2fa0128..0000000000000000000000000000000000000000 --- a/roles/dev_images/tasks/build_image.yml +++ /dev/null @@ -1,20 +0,0 @@ -- name: Inspect a single image - community.docker.docker_image_info: - name: "{{ image.image_name }}:{{ image.image_tag }}" - register: image_exists - -- name: Build image if necessary - when: image_exists.images | length == 0 - block: - - name: Get VM image - amazon.aws.aws_s3: - aws_access_key: "{{ s3.access_key }}" - aws_secret_key: "{{ s3.secret_key }}" - region: "{{ s3.region }}" - bucket: "{{ s3.bucket }}" - object: "{{ image.vm_image }}" - dest: "$HOME/vrnetlab/{{ image.integration }}/{{ image.vm_image }}" - mode: get - - name: Build/install the docker image - community.general.make: - chdir: "$HOME/vrnetlab/{{ image.integration }}" diff --git a/roles/dev_images/tasks/import_image.yml b/roles/dev_images/tasks/import_image.yml deleted file mode 100644 index 968648b0ebc490a9bc642e6fcc64cc16ee3ef3af..0000000000000000000000000000000000000000 --- a/roles/dev_images/tasks/import_image.yml +++ /dev/null @@ -1,25 +0,0 @@ -- name: Inspect a single image - community.docker.docker_image_info: - name: "{{ image.image_name }}:{{ image.image_tag }}" - register: image_exists - -- name: Add docker image if necessary - when: image_exists.images | length == 0 - block: - - name: Get VM images - amazon.aws.aws_s3: - aws_access_key: "{{ s3.access_key }}" - aws_secret_key: "{{ s3.secret_key }}" - region: "{{ s3.region }}" - bucket: "{{ s3.bucket }}" - object: "{{ image.filename }}" - dest: "/tmp/{{ image.filename }}" - mode: get - - name: Add docker images - # community.docker.docker_image doesn't work in this case - ansible.builtin.shell: - cmd: "docker image import /tmp/{{ image.filename }} {{ image.image_name }}:{{ image.image_tag }}" - - name: Remove downloaded file - ansible.builtin.file: - path: "/tmp/{{ image.filename }}" - state: absent diff --git a/roles/dev_images/tasks/main.yml b/roles/dev_images/tasks/main.yml deleted file mode 100644 index 5d1180ef47c051a77ff12a614d2aca862c0c4b53..0000000000000000000000000000000000000000 --- a/roles/dev_images/tasks/main.yml +++ /dev/null @@ -1,23 +0,0 @@ -- name: Install Packages - ansible.builtin.apt: - pkg: - - git - - make - -- name: Clone vrnetlab - ansible.builtin.git: - repo: https://github.com/hellt/vrnetlab - version: v0.8.1 - dest: $HOME/vrnetlab - -- name: Build vrnetlab images - ansible.builtin.include_tasks: build_image.yml - loop: "{{ vrnetlab_images }}" - loop_control: - loop_var: image - -- name: Import normal images - ansible.builtin.include_tasks: import_image.yml - loop: "{{ normal_images }}" - loop_control: - loop_var: image diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..77e2ceee8016905ad048637dfa549339e86350ae --- /dev/null +++ b/roles/docker/tasks/main.yml @@ -0,0 +1,34 @@ +- name: Install required system packages + ansible.builtin.apt: + pkg: + - apt-transport-https + - ca-certificates + - curl + - software-properties-common + - python3-pip + - virtualenv + - python3-setuptools + state: latest + update_cache: true + +- name: Add Docker GPG apt Key + ansible.builtin.apt_key: + url: https://download.docker.com/linux/ubuntu/gpg + state: present + +- name: Add Docker Repository + ansible.builtin.apt_repository: + repo: deb https://download.docker.com/linux/ubuntu focal stable + state: present + +- name: Update apt and install docker-ce + ansible.builtin.apt: + name: docker-ce + state: latest + update_cache: true + +- name: Add relevant user to docker group + ansible.builtin.user: + name: "{{ nat_user }}" + groups: docker + append: true