diff --git a/roles/vncserver/tasks/main.yml b/roles/vncserver/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b4df6889cdd83c26b50f59f044a849bc2e82c8da
--- /dev/null
+++ b/roles/vncserver/tasks/main.yml
@@ -0,0 +1,20 @@
+---
+- include_vars: "{{ hostvars[ansible_hostname]['ansible_distribution'] }}_{{ ansible_architecture }}.yml"
+
+- name: add repos apt
+  shell: "add-apt-repository -y 'deb {{ item }} {{ ansible_distribution_release }} main' "
+  sudo: true
+  with_items: apt_repos
+  when: ansible_os_family == 'Debian'
+
+- name: install system packages apt
+  apt: name={{ item }} state=installed update_cache=true  force=yes
+  sudo: true
+  with_items: system_packages
+  when: ansible_os_family == 'Debian'
+
+- name: install system packages yum
+  yum: name={{ item }} state=installed
+  sudo: true
+  with_items: system_packages
+  when: ansible_os_family == 'RedHat'
diff --git a/roles/vncserver/vars/CentOS_x86_64.yml b/roles/vncserver/vars/CentOS_x86_64.yml
new file mode 100644
index 0000000000000000000000000000000000000000..640f11fbcf3e5b796f4aa6ea83cdaa625eb6dc8c
--- /dev/null
+++ b/roles/vncserver/vars/CentOS_x86_64.yml
@@ -0,0 +1,4 @@
+---
+ system_packages:
+   - "@desktop"
+   - tigervnc-server
diff --git a/roles/vncserver/vars/Ubuntu_x86_64.yml b/roles/vncserver/vars/Ubuntu_x86_64.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ef0d60dc6b5564ef1a0870ba7024ac4572d7771d
--- /dev/null
+++ b/roles/vncserver/vars/Ubuntu_x86_64.yml
@@ -0,0 +1,7 @@
+---
+ system_packages:
+   - mate-desktop-environment
+   - tightvncserver
+
+ apt_repos:
+   - "http://repo.mate-desktop.org/archive/1.8/ubuntu"