diff options
Diffstat (limited to 'ansible/roles/set_package_installer_proxy')
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 %} |