aboutsummaryrefslogtreecommitdiffstats
path: root/ansible/roles/set_package_installer_proxy
diff options
context:
space:
mode:
Diffstat (limited to 'ansible/roles/set_package_installer_proxy')
-rw-r--r--ansible/roles/set_package_installer_proxy/defaults/main.yml2
-rw-r--r--ansible/roles/set_package_installer_proxy/tasks/Debian.yml35
-rw-r--r--ansible/roles/set_package_installer_proxy/tasks/RedHat.yml57
-rw-r--r--ansible/roles/set_package_installer_proxy/tasks/main.yml40
-rw-r--r--ansible/roles/set_package_installer_proxy/templates/apt_conf.j23
5 files changed, 137 insertions, 0 deletions
diff --git a/ansible/roles/set_package_installer_proxy/defaults/main.yml b/ansible/roles/set_package_installer_proxy/defaults/main.yml
new file mode 100644
index 000000000..9dcf3e9b6
--- /dev/null
+++ b/ansible/roles/set_package_installer_proxy/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+connection_timeout: 600 \ No newline at end of file
diff --git a/ansible/roles/set_package_installer_proxy/tasks/Debian.yml b/ansible/roles/set_package_installer_proxy/tasks/Debian.yml
new file mode 100644
index 000000000..11117e5ed
--- /dev/null
+++ b/ansible/roles/set_package_installer_proxy/tasks/Debian.yml
@@ -0,0 +1,35 @@
+# Copyright (c) 2016, Intel Corporation.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of Intel Corporation nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---
+ - name: Create apt.conf.d/ proxy config
+ template:
+ src: apt_conf.j2
+ dest: "/etc/apt/apt.conf.d/20proxy"
+
+ - name: Test proxy connection
+# async: "{{ connection_timeout }}"
+ action: "{{ ansible_pkg_mgr }} name=tar state=latest update_cache=yes"
+# poll: 0
+ register: test_proxy_job_id
diff --git a/ansible/roles/set_package_installer_proxy/tasks/RedHat.yml b/ansible/roles/set_package_installer_proxy/tasks/RedHat.yml
new file mode 100644
index 000000000..809e43a60
--- /dev/null
+++ b/ansible/roles/set_package_installer_proxy/tasks/RedHat.yml
@@ -0,0 +1,57 @@
+# Copyright (c) 2016, Intel Corporation.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of Intel Corporation nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---
+ # must do this before setting yum proxy
+ - name: find yum/dnf config
+ stat: "path={{ item }}"
+ register: packager_conf_stat
+ with_items:
+ - /etc/yum.conf
+ - /etc/dnf/dnf.conf
+
+ - name: insert yum/dnf proxy(http)
+ # insert after [main] section
+ lineinfile:
+ dest: "{{ item.stat.path }}"
+ state: present
+ regexp: "^proxy\\s*=\\s*{{ proxy_env.http_proxy }}"
+ insertafter: "^\\[main\\]"
+ line: "proxy={{ proxy_env.http_proxy }}"
+ when: '"http_proxy" in proxy_env and item.stat.isreg is defined and item.stat.isreg'
+ with_items: "{{ packager_conf_stat.results }}"
+
+ - name: verify proxy
+ command: "grep proxy= {{ item.stat.path }}"
+ when: 'item.stat.isreg is defined and item.stat.isreg'
+ with_items: "{{ packager_conf_stat.results }}"
+ register: yum_proxy_lines
+
+# - name: Test proxy connection
+# # try workaround call makecache directly
+# # yum module was failing for some reason
+# async: "{{ connection_timeout }}"
+# command: "{{ ansible_pkg_mgr }} -d2 -y makecache"
+# poll: 0
+# register: test_proxy_job_id
diff --git a/ansible/roles/set_package_installer_proxy/tasks/main.yml b/ansible/roles/set_package_installer_proxy/tasks/main.yml
new file mode 100644
index 000000000..9838cd489
--- /dev/null
+++ b/ansible/roles/set_package_installer_proxy/tasks/main.yml
@@ -0,0 +1,40 @@
+# Copyright (c) 2016, Intel Corporation.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of Intel Corporation nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---
+ - name: Configure package manager proxy
+ include: "{{ ansible_os_family }}.yml"
+
+# - async_status: jid={{ test_proxy_job_id.ansible_job_id }}
+# register: test_proxy_result
+# until: test_proxy_result.finished
+# retries: 60
+# delay: 10
+#
+# - debug: var=hostvars[item]['test_proxy_result']
+# with_items: "{{ hostvars }}"
+#
+# - name: Verify proxy test
+# fail: msg="proxy test timeout"
+# when: "{{ test_proxy_result.get('finished', 0) == 0 }}"
diff --git a/ansible/roles/set_package_installer_proxy/templates/apt_conf.j2 b/ansible/roles/set_package_installer_proxy/templates/apt_conf.j2
new file mode 100644
index 000000000..5b57178a7
--- /dev/null
+++ b/ansible/roles/set_package_installer_proxy/templates/apt_conf.j2
@@ -0,0 +1,3 @@
+{% if "http_proxy" in proxy_env %}
+Acquire::http::Proxy "{{ proxy_env.http_proxy }}";
+{% endif %}