Force IPv4 settings for APT

* Create /etc/apt/apt.conf.d/05disable-ipv6 and set Acquire::ForceIPv4 "true";
  to disable IPv6 as Ubuntu DNS returns IPv6 sometimes.
* Delete the same part from fuel_agent_ci cloud-init template as it should be
  configured by Orchestrator

Change-Id: I90fe58157c3eac04842102b1cb956bbeb324413a
Closes-Bug: 1450004
Signed-off-by: Sergii Golovatiuk <sgolovatiuk@mirantis.com>
This commit is contained in:
Sergii Golovatiuk 2015-04-29 19:24:25 +02:00
parent cb52a2e40e
commit 5cef6371ee
5 changed files with 23 additions and 11 deletions

View File

@ -44,13 +44,6 @@ write_files:
path: /etc/nailgun-agent/config.yaml path: /etc/nailgun-agent/config.yaml
- content: target - content: target
path: /etc/nailgun_systemtype path: /etc/nailgun_systemtype
- content: APT::Get::AllowUnauthenticated 1;
path: /etc/apt/apt.conf.d/02mirantis-allow-unsigned
apt_sources:
- source: deb http://{{ MASTER_IP }}:8080/ubuntu/fuelweb/x86_64 trusty main
mcollective: mcollective:
conf: conf:

View File

@ -178,6 +178,7 @@ class UploadMOSRepo(GenericRolesHook):
'cmd': '> /etc/apt/sources.list', 'cmd': '> /etc/apt/sources.list',
'timeout': 10 'timeout': 10
}}) }})
yield templates.make_ubuntu_apt_disable_ipv6(uids)
# NOTE(kozhukalov): # NOTE(kozhukalov):
# This task is to allow installing packages from # This task is to allow installing packages from
# unauthenticated repositories. # unauthenticated repositories.

View File

@ -87,6 +87,12 @@ def make_ubuntu_preferences_task(uids, repo):
return make_upload_task(uids, preferences_content, preferences_path) return make_upload_task(uids, preferences_content, preferences_path)
def make_ubuntu_apt_disable_ipv6(uids):
config_content = 'Acquire::ForceIPv4 "true";\n'
config_path = '/etc/apt/apt.conf.d/05disable-ipv6'
return make_upload_task(uids, config_content, config_path)
def make_ubuntu_unauth_repos_task(uids): def make_ubuntu_unauth_repos_task(uids):
# NOTE(kozhukalov): This task is to allow installing packages # NOTE(kozhukalov): This task is to allow installing packages
# from unauthenticated repositories. Apt has special # from unauthenticated repositories. Apt has special

View File

@ -90,7 +90,7 @@ class TestHooksSerializersUbuntu(BaseTaskSerializationTestUbuntu):
task = tasks_serializer.UploadMOSRepo( task = tasks_serializer.UploadMOSRepo(
task_config, self.cluster, self.nodes) task_config, self.cluster, self.nodes)
serialized = list(task.serialize()) serialized = list(task.serialize())
self.assertEqual(len(serialized), 16) self.assertEqual(len(serialized), 17)
self.assertEqual(serialized[0]['type'], 'shell') self.assertEqual(serialized[0]['type'], 'shell')
self.assertEqual( self.assertEqual(
serialized[0]['parameters']['cmd'], '> /etc/apt/sources.list') serialized[0]['parameters']['cmd'], '> /etc/apt/sources.list')
@ -108,8 +108,9 @@ class TestHooksSerializersUbuntu(BaseTaskSerializationTestUbuntu):
self.assertEqual(serialized[12]['type'], 'upload_file') self.assertEqual(serialized[12]['type'], 'upload_file')
self.assertEqual(serialized[13]['type'], 'upload_file') self.assertEqual(serialized[13]['type'], 'upload_file')
self.assertEqual(serialized[14]['type'], 'upload_file') self.assertEqual(serialized[14]['type'], 'upload_file')
self.assertEqual(serialized[15]['type'], 'shell') self.assertEqual(serialized[15]['type'], 'upload_file')
self.assertEqual(serialized[15]['parameters']['cmd'], 'apt-get update') self.assertEqual(serialized[16]['type'], 'shell')
self.assertEqual(serialized[16]['parameters']['cmd'], 'apt-get update')
self.assertItemsEqual(serialized[3]['uids'], self.all_uids) self.assertItemsEqual(serialized[3]['uids'], self.all_uids)
@ -308,7 +309,7 @@ class TestPreTaskSerialization(BaseTaskSerializationTestUbuntu):
self.graph = deployment_graph.AstuteGraph(self.cluster) self.graph = deployment_graph.AstuteGraph(self.cluster)
self.cluster.release.operating_system = consts.RELEASE_OS.ubuntu self.cluster.release.operating_system = consts.RELEASE_OS.ubuntu
tasks = self.graph.pre_tasks_serialize(self.nodes) tasks = self.graph.pre_tasks_serialize(self.nodes)
self.assertEqual(len(tasks), 19) self.assertEqual(len(tasks), 20)
tasks_tests = [('shell', ['master']), tasks_tests = [('shell', ['master']),
('shell', sorted(self.all_uids)), ('shell', sorted(self.all_uids)),
('upload_file', sorted(self.all_uids)), ('upload_file', sorted(self.all_uids)),
@ -325,6 +326,7 @@ class TestPreTaskSerialization(BaseTaskSerializationTestUbuntu):
('upload_file', sorted(self.all_uids)), ('upload_file', sorted(self.all_uids)),
('upload_file', sorted(self.all_uids)), ('upload_file', sorted(self.all_uids)),
('upload_file', sorted(self.all_uids)), ('upload_file', sorted(self.all_uids)),
('upload_file', sorted(self.all_uids)),
('copy_files', sorted(self.all_uids)), ('copy_files', sorted(self.all_uids)),
('sync', sorted(self.all_uids)), ('sync', sorted(self.all_uids)),
('shell', sorted(self.all_uids))] ('shell', sorted(self.all_uids))]

View File

@ -50,6 +50,16 @@ class TestMakeTask(base.BaseTestCase):
'type': 'upload_file', 'type': 'upload_file',
'uids': [1, 2, 3]}) 'uids': [1, 2, 3]})
def test_make_ubuntu_apt_disable_ipv6(self):
result = tasks_templates.make_ubuntu_apt_disable_ipv6([1, 2, 3])
self.assertEqual(
result,
{'parameters': {
'data': 'Acquire::ForceIPv4 "true";\n',
'path': '/etc/apt/apt.conf.d/05disable-ipv6'},
'type': 'upload_file',
'uids': [1, 2, 3]})
def test_make_ubuntu_unauth_repos_task(self): def test_make_ubuntu_unauth_repos_task(self):
result = tasks_templates.make_ubuntu_unauth_repos_task([1, 2, 3]) result = tasks_templates.make_ubuntu_unauth_repos_task([1, 2, 3])
self.assertEqual( self.assertEqual(