Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update the integration setup playbook #75

Closed
wants to merge 2 commits into from

Conversation

abompard
Copy link
Contributor

@abompard abompard commented Jun 2, 2021

The installation instructions have changed, these updates allow the integration container to build and run the tests.

@abompard abompard marked this pull request as draft June 2, 2021 10:07
@abompard abompard mentioned this pull request Jun 2, 2021
@abompard abompard force-pushed the integration-tests branch from 8c969c9 to a572df9 Compare July 14, 2021 11:07
@cognifloyd
Copy link
Collaborator

cognifloyd commented Jul 14, 2021

azure pipelines says that logs are kept for 3 days, so I'm going to copy the relevant parts of the error output in here so I don't lose them. Sorry for the really long message.

It looks like the errors are ubuntu version-specific. 16 has an issue with the signing key and 18 has an issue resolving which packages to install.

CI (Docker 2.9 Ubuntu 16.04) -> Run Tests

01:11 TASK [setup_rabbitmq : Team RabbitMQ's main signing key] ***********************
01:12 fatal: [testhost]: FAILED! => {
01:12     "cmd": "/usr/bin/apt-key adv --no-tty --keyserver hkps://keys.openpgp.org --recv 0A9AF2115F4687BD29803A206B73A36E6026DFCA", 
01:12     "msg": "Error fetching key 0A9AF2115F4687BD29803A206B73A36E6026DFCA from keyserver: hkps://keys.openpgp.org", 
01:12     "rc": 2, 
01:12     "stderr_lines": [
01:12         "gpg: requesting key 6026DFCA from hkps server keys.openpgp.org", 
01:12         "gpg: no valid OpenPGP data found.", 
01:12         "gpg: Total number processed: 0", 
01:12         "gpg: keyserver communications error: ?", 
01:12         "gpg: keyserver communications error: g10err=127", 
01:12         "gpg: keyserver receive failed: g10err=127"
01:12     ], 
01:12     "stdout_lines": [
01:12         "Executing: /tmp/tmp.ccuzbUZxK6/gpg.1.sh --no-tty", 
01:12         "--keyserver", 
01:12         "hkps://keys.openpgp.org", 
01:12         "--recv", 
01:12         "0A9AF2115F4687BD29803A206B73A36E6026DFCA", 
01:12         "gpgkeys: HTTP fetch error 1: unsupported protocol"
01:12     ]

CI (Docker 2.10 Ubuntu 16.04) -> Run Tests

01:08 TASK [setup_rabbitmq : Team RabbitMQ's main signing key] ***********************
01:09 fatal: [testhost]: FAILED! => {
01:09     "cmd": "/usr/bin/apt-key adv --no-tty --keyserver hkps://keys.openpgp.org --recv 0A9AF2115F4687BD29803A206B73A36E6026DFCA", 
01:09     "msg": "Error fetching key 0A9AF2115F4687BD29803A206B73A36E6026DFCA from keyserver: hkps://keys.openpgp.org", 
01:09     "rc": 2, 
01:09     "stderr_lines": [
01:09         "gpg: requesting key 6026DFCA from hkps server keys.openpgp.org", 
01:09         "gpg: no valid OpenPGP data found.", 
01:09         "gpg: Total number processed: 0", 
01:09         "gpg: keyserver communications error: ?", 
01:09         "gpg: keyserver communications error: g10err=127", 
01:09         "gpg: keyserver receive failed: g10err=127"
01:09     ], 
01:09     "stdout_lines": [
01:09         "Executing: /tmp/tmp.KR1vOvdqGl/gpg.1.sh --no-tty", 
01:09         "--keyserver", 
01:09         "hkps://keys.openpgp.org", 
01:09         "--recv", 
01:09         "0A9AF2115F4687BD29803A206B73A36E6026DFCA", 
01:09         "gpgkeys: HTTP fetch error 1: unsupported protocol"
01:09     ]

CI (Docker 2.9 Ubuntu 18.04) -> Run Tests

01:41 TASK [setup_rabbitmq : Install Erlang packages] ********************************
01:42 fatal: [testhost]: FAILED! => {
01:42     "msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\"      install 'erlang-base' 'erlang-asn1' 'erlang-crypto' 'erlang-eldap' 'erlang-ftp' 'erlang-inets' 'erlang-mnesia' 'erlang-os-mon' 'erlang-parsetools' 'erlang-public-key' 'erlang-runtime-tools' 'erlang-snmp' 'erlang-ssl' 'erlang-syntax-tools' 'erlang-tftp' 'erlang-tools' 'erlang-xmerl'' failed: E: Unable to correct problems, you have held broken packages.\n",
01:42     "rc": 100,
01:42     "stderr_lines": [
01:42         "E: Unable to correct problems, you have held broken packages."
01:42     ],
01:42     "stdout_lines": [
01:42         "Reading package lists...",
01:42         "Building dependency tree...",
01:42         "Reading state information...",
01:42         "Some packages could not be installed. This may mean that you have",
01:42         "requested an impossible situation or if you are using the unstable",
01:42         "distribution that some required packages have not yet been created",
01:42         "or been moved out of Incoming.",
01:42         "The following information may help to resolve the situation:",
01:42         "",
01:42         "The following packages have unmet dependencies:",
01:42         " erlang-ftp : Depends: erlang-base (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or",
01:42         "                       erlang-base-hipe (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but it is not going to be installed",
01:42         "              Depends: erlang-runtime-tools (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed",
01:42         "              Depends: erlang-ssl (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed",
01:42         " erlang-tftp : Depends: erlang-base (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or",
01:42         "                        erlang-base-hipe (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but it is not going to be installed"
01:42     ]

CI (Docker 2.10 Ubuntu 18.04) -> Run Tests

01:30 TASK [setup_rabbitmq : Install Erlang packages] ********************************
01:31 fatal: [testhost]: FAILED! => {
01:31     "msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\"      install 'erlang-base' 'erlang-asn1' 'erlang-crypto' 'erlang-eldap' 'erlang-ftp' 'erlang-inets' 'erlang-mnesia' 'erlang-os-mon' 'erlang-parsetools' 'erlang-public-key' 'erlang-runtime-tools' 'erlang-snmp' 'erlang-ssl' 'erlang-syntax-tools' 'erlang-tftp' 'erlang-tools' 'erlang-xmerl'' failed: E: Unable to correct problems, you have held broken packages.\n",
01:31     "rc": 100,
01:31     "stderr_lines": [
01:31         "E: Unable to correct problems, you have held broken packages."
01:31     ],
01:31     "stdout_lines": [
01:31         "Reading package lists...",
01:31         "Building dependency tree...",
01:31         "Reading state information...",
01:31         "Some packages could not be installed. This may mean that you have",
01:31         "requested an impossible situation or if you are using the unstable",
01:31         "distribution that some required packages have not yet been created",
01:31         "or been moved out of Incoming.",
01:31         "The following information may help to resolve the situation:",
01:31         "",
01:31         "The following packages have unmet dependencies:",
01:31         " erlang-ftp : Depends: erlang-base (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or",
01:31         "                       erlang-base-hipe (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but it is not going to be installed",
01:31         "              Depends: erlang-runtime-tools (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed",
01:31         "              Depends: erlang-ssl (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed",
01:31         " erlang-tftp : Depends: erlang-base (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or",
01:31         "                        erlang-base-hipe (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but it is not going to be installed"
01:31     ]

CI (Docker 2.11 Ubuntu 18.04) -> Run Tests

01:43 TASK [setup_rabbitmq : Install Erlang packages] ********************************
01:44 fatal: [testhost]: FAILED! => {
01:44     "msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\"       install 'erlang-base' 'erlang-asn1' 'erlang-crypto' 'erlang-eldap' 'erlang-ftp' 'erlang-inets' 'erlang-mnesia' 'erlang-os-mon' 'erlang-parsetools' 'erlang-public-key' 'erlang-runtime-tools' 'erlang-snmp' 'erlang-ssl' 'erlang-syntax-tools' 'erlang-tftp' 'erlang-tools' 'erlang-xmerl'' failed: E: Unable to correct problems, you have held broken packages.\n",
01:44     "rc": 100,
01:44     "stderr_lines": [
01:44         "E: Unable to correct problems, you have held broken packages."
01:44     ],
01:44     "stdout_lines": [
01:44         "Reading package lists...",
01:44         "Building dependency tree...",
01:44         "Reading state information...",
01:44         "Some packages could not be installed. This may mean that you have",
01:44         "requested an impossible situation or if you are using the unstable",
01:44         "distribution that some required packages have not yet been created",
01:44         "or been moved out of Incoming.",
01:44         "The following information may help to resolve the situation:",
01:44         "",
01:44         "The following packages have unmet dependencies:",
01:44         " erlang-ftp : Depends: erlang-base (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or",
01:44         "                       erlang-base-hipe (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but it is not going to be installed",
01:44         "              Depends: erlang-runtime-tools (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed",
01:44         "              Depends: erlang-ssl (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed",
01:44         " erlang-tftp : Depends: erlang-base (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or",
01:44         "                        erlang-base-hipe (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but it is not going to be installed"
01:44     ]

CI (Docker devel Ubuntu 18.04) -> Run Tests

01:49 TASK [setup_rabbitmq : Install Erlang packages] ********************************
01:51 fatal: [testhost]: FAILED! => {
01:51     "msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\"       install 'erlang-base' 'erlang-asn1' 'erlang-crypto' 'erlang-eldap' 'erlang-ftp' 'erlang-inets' 'erlang-mnesia' 'erlang-os-mon' 'erlang-parsetools' 'erlang-public-key' 'erlang-runtime-tools' 'erlang-snmp' 'erlang-ssl' 'erlang-syntax-tools' 'erlang-tftp' 'erlang-tools' 'erlang-xmerl'' failed: E: Unable to correct problems, you have held broken packages.\n",
01:51     "rc": 100,
01:51     "stderr_lines": [
01:51         "E: Unable to correct problems, you have held broken packages."
01:51     ],
01:51     "stdout_lines": [
01:51         "Reading package lists...",
01:51         "Building dependency tree...",
01:51         "Reading state information...",
01:51         "Some packages could not be installed. This may mean that you have",
01:51         "requested an impossible situation or if you are using the unstable",
01:51         "distribution that some required packages have not yet been created",
01:51         "or been moved out of Incoming.",
01:51         "The following information may help to resolve the situation:",
01:51         "",
01:51         "The following packages have unmet dependencies:",
01:51         " erlang-ftp : Depends: erlang-base (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or",
01:51         "                       erlang-base-hipe (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but it is not going to be installed",
01:51         "              Depends: erlang-runtime-tools (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed",
01:51         "              Depends: erlang-ssl (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed",
01:51         " erlang-tftp : Depends: erlang-base (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or",
01:51         "                        erlang-base-hipe (= 1:22.0.7+dfsg-1build1~ubuntu18.04.1) but it is not going to be installed"
01:51     ]

@cognifloyd
Copy link
Collaborator

cognifloyd commented Jul 14, 2021

@abompard Are these the same errors you saw last time? It sounds like they are different. In #72 (comment) you said:

I'm stuck with systemctl failing in the ubuntu container that ansible-test creates.

@cognifloyd
Copy link
Collaborator

cognifloyd commented Jul 14, 2021

Ubuntu 16 is EOL (since April 30th), so maybe we should:

  • drop Ubuntu 16 from the test matrix
  • get Ubuntu 18 working
  • add Ubuntu 20 (in Add testing on Ubuntu 20.04 #44 edit: looks like that PR is out-of-date since it adjusts shippable config instead of azure-pipelines)

@cognifloyd
Copy link
Collaborator

Also, RabbitMQ only supports: "Ubuntu 18.04 through 21.04" so we really should drop ubuntu 16.
https://www.rabbitmq.com/install-debian.html#supported-distributions

Copy link
Collaborator

@cognifloyd cognifloyd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm hoping that these 3 changes will fix the ubuntu 18 stages. wdyt?

Comment on lines 49 to 50
#update_cache: yes
update_cache: no
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why did you disable update_cache? This might be (part of) why it's getting so many package conflicts.

Suggested change
#update_cache: yes
update_cache: no
update_cache: yes

Comment on lines 57 to 58
#update_cache: yes
update_cache: no
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#update_cache: yes
update_cache: no
update_cache: yes

- erlang-crypto
- erlang-public-key
- erlang-ssl
name: rabbitmq-server
Copy link
Collaborator

@cognifloyd cognifloyd Jul 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docs say to use --fix-missing when installing rabbitmq-server, so I believe we need to use state:fixed here.

Suggested change
name: rabbitmq-server
name: rabbitmq-server
state: fixed

@Andersson007
Copy link
Contributor

@cognifloyd hi, would you like to create a PR to update the playbook yourself? I'd be happy to review and merge it

@Andersson007
Copy link
Contributor

@abompard do you have time / with to finish it?
A guy who will fix the CI will be like a savior of the collection.

@abompard abompard force-pushed the integration-tests branch from a572df9 to 6dc7d41 Compare July 16, 2021 06:54
The [installation instructions](https://www.rabbitmq.com/install-debian.html)
have changed, these updates allow the integration container to build and
run the tests.

Signed-off-by: Aurélien Bompard <[email protected]>
@abompard abompard force-pushed the integration-tests branch from 6dc7d41 to 6c53462 Compare July 16, 2021 06:56
@abompard abompard force-pushed the integration-tests branch from 6c53462 to c796be2 Compare July 16, 2021 06:57
@abompard
Copy link
Contributor Author

I may have some time but I'm also unfamiliar with the ansible testing framework and the Azure pipelines. So if someone else wants to take over I'll gladly pass it on :-) I just want CI to work so I can contribute some feature to the rabbitmq modules.

@abompard abompard marked this pull request as ready for review July 16, 2021 07:07
@abompard abompard changed the title WIP: Update the integration setup playbook Update the integration setup playbook Jul 16, 2021
@Andersson007
Copy link
Contributor

@abompard thanks for the feedback! How about the changes that @cognifloyd suggested?

@abompard
Copy link
Contributor Author

abompard commented Jul 16, 2021

I applied them and force pushed

@Andersson007
Copy link
Contributor

#78
#79

@Andersson007
Copy link
Contributor

@abompard i think this PR can be closed since i made a temporary (hehe) solution #78. Thank you for the attempt!

If anyone is interested in improving the CI, welcome #79

@abompard @cognifloyd thanks!

@cognifloyd
Copy link
Collaborator

I just saw all your messages.

i think this PR can be closed since i made a temporary (hehe) solution #78. Thank you for the attempt!

@Andersson007 LOL - disabling all the envs is quite the hack.

Sure, I can create another PR to fix this stuff.

@cognifloyd
Copy link
Collaborator

Just looked at the test results. How encouraging :) so, my suggested fixes fixed Ubuntu 18 + ansible 2.10, 2.11, and devel. The fixes did not make Ubuntu 18 + ansible 2.9 work, however. Also, Ubuntu 20 didn't work.

I figure we can enable one set of distros in each PR until we get them all working.

@Andersson007
Copy link
Contributor

@cognifloyd

@Andersson007 LOL - disabling all the envs is quite the hack.

Yes, it is:) Though the tests were actually running only on Ubuntu. And the errors on Ubuntu 16 / 18 didn't seem to relate to the modules themselves.

Sure, I can create another PR to fix this stuff.

Would be really cool! Ping me there for review.

I figure we can enable one set of distros in each PR until we get them all working.

Acting gradually sounds sensible to me.

I'll close this PR then. @abompard would be nice if you take part in the future PRs dedicated to fixing the CI. It is really important for stability of this stuff. The many eyes / opinios, the better. Thank you!

cognifloyd added a commit to cognifloyd/community.rabbitmq that referenced this pull request Jul 31, 2021
New process as documented upstream.

Follows the general outline developed in ansible-collections#75
Andersson007 pushed a commit that referenced this pull request Aug 10, 2021
* Test Ubuntu 20.04

* Test on CentOS 7

* Revert "Test on CentOS 7"

This reverts commit 346dc97.

* enable ansible 2.9 integration tests

* drop ansible 2.9 integration tests again

* use include_tasks in setup_rabbitmq test role

* Update integration test role setup_rabbitmq

New process as documented upstream.

Follows the general outline developed in #75

* Rename ubuntu.yml to Ubuntu.yml

* first_found fix

* drop duplicate task

* drop hack install script

* reenable ansible 2.9 integration tests

* configure before installing rabbitmq-server

* disable service start on apt-get install

* update libssl1.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants