Skip to content

Commit

Permalink
[8.x] Fix order of operations in instructions. (#195503) (#195524)
Browse files Browse the repository at this point in the history
# Backport

This will backport the following commits from `main` to `8.x`:
- [Fix order of operations in instructions.
(#195503)](#195503)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Ryan
Hass","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-10-09T00:01:48Z","message":"Fix
order of operations in instructions. (#195503)\n\n## Summary\r\n\r\nThe
enroll command must be executed after the elastic-agent is
running.\r\nThis updates the instructions so that users are told to
enable and start\r\nthe agent before running the `enroll` command to
ensure the socket file\r\nis created and available.\r\n\r\nThis fixes
issues with errors like
this:\r\n\r\n```\r\n{\"log.level\":\"info\",\"@timestamp\":\"2024-10-08T20:47:06.857Z\",\"log.origin\":{\"function\":\"github.com/elastic/elastic-agent/internal/pkg/agent/cmd.(*enrollCmd).enrollWithBackoff\",\"file.name\":\"cmd/enroll_cmd.go\",\"file.line\":518},\"message\":\"Starting
enrollment to URL:
https://<REDACTED>.fleet.us-west-2.aws.elastic.cloud:443/\",\"ecs.version\":\"1.6.0\"}\r\n{\"log.level\":\"info\",\"@timestamp\":\"2024-10-08T20:47:08.681Z\",\"log.origin\":{\"function\":\"github.com/elastic/elastic-agent/internal/pkg/agent/cmd.(*enrollCmd).daemonReloadWithBackoff\",\"file.name\":\"cmd/enroll_cmd.go\",\"file.line\":481},\"message\":\"Restarting
agent daemon, attempt
0\",\"ecs.version\":\"1.6.0\"}\r\n{\"log.level\":\"error\",\"@timestamp\":\"2024-10-08T20:47:08.683Z\",\"log.origin\":{\"function\":\"github.com/elastic/elastic-agent/internal/pkg/agent/cmd.(*enrollCmd).daemonReloadWithBackoff\",\"file.name\":\"cmd/enroll_cmd.go\",\"file.line\":495},\"message\":\"Restart
attempt 0 failed: 'rpc error: code = Unavailable desc = connection
error: desc = \\\"transport: Error while dialing: dial unix
/usr/share/elastic-agent/elastic-agent.sock: connect: no such file or
directory\\\"'. Waiting for
2s\",\"ecs.version\":\"1.6.0\"}\r\n```\r\n\r\n###
Checklist\r\n\r\nN/A\r\n\r\n### For maintainers\r\n\r\n- [ ] This was
checked for breaking API changes and was
[labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"13c2c7663546da0f6b34e5dd85932ebc74ecafa7","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Fleet","v9.0.0","backport:prev-major"],"title":"Fix
order of operations in
instructions.","number":195503,"url":"https://github.com/elastic/kibana/pull/195503","mergeCommit":{"message":"Fix
order of operations in instructions. (#195503)\n\n## Summary\r\n\r\nThe
enroll command must be executed after the elastic-agent is
running.\r\nThis updates the instructions so that users are told to
enable and start\r\nthe agent before running the `enroll` command to
ensure the socket file\r\nis created and available.\r\n\r\nThis fixes
issues with errors like
this:\r\n\r\n```\r\n{\"log.level\":\"info\",\"@timestamp\":\"2024-10-08T20:47:06.857Z\",\"log.origin\":{\"function\":\"github.com/elastic/elastic-agent/internal/pkg/agent/cmd.(*enrollCmd).enrollWithBackoff\",\"file.name\":\"cmd/enroll_cmd.go\",\"file.line\":518},\"message\":\"Starting
enrollment to URL:
https://<REDACTED>.fleet.us-west-2.aws.elastic.cloud:443/\",\"ecs.version\":\"1.6.0\"}\r\n{\"log.level\":\"info\",\"@timestamp\":\"2024-10-08T20:47:08.681Z\",\"log.origin\":{\"function\":\"github.com/elastic/elastic-agent/internal/pkg/agent/cmd.(*enrollCmd).daemonReloadWithBackoff\",\"file.name\":\"cmd/enroll_cmd.go\",\"file.line\":481},\"message\":\"Restarting
agent daemon, attempt
0\",\"ecs.version\":\"1.6.0\"}\r\n{\"log.level\":\"error\",\"@timestamp\":\"2024-10-08T20:47:08.683Z\",\"log.origin\":{\"function\":\"github.com/elastic/elastic-agent/internal/pkg/agent/cmd.(*enrollCmd).daemonReloadWithBackoff\",\"file.name\":\"cmd/enroll_cmd.go\",\"file.line\":495},\"message\":\"Restart
attempt 0 failed: 'rpc error: code = Unavailable desc = connection
error: desc = \\\"transport: Error while dialing: dial unix
/usr/share/elastic-agent/elastic-agent.sock: connect: no such file or
directory\\\"'. Waiting for
2s\",\"ecs.version\":\"1.6.0\"}\r\n```\r\n\r\n###
Checklist\r\n\r\nN/A\r\n\r\n### For maintainers\r\n\r\n- [ ] This was
checked for breaking API changes and was
[labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"13c2c7663546da0f6b34e5dd85932ebc74ecafa7"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/195503","number":195503,"mergeCommit":{"message":"Fix
order of operations in instructions. (#195503)\n\n## Summary\r\n\r\nThe
enroll command must be executed after the elastic-agent is
running.\r\nThis updates the instructions so that users are told to
enable and start\r\nthe agent before running the `enroll` command to
ensure the socket file\r\nis created and available.\r\n\r\nThis fixes
issues with errors like
this:\r\n\r\n```\r\n{\"log.level\":\"info\",\"@timestamp\":\"2024-10-08T20:47:06.857Z\",\"log.origin\":{\"function\":\"github.com/elastic/elastic-agent/internal/pkg/agent/cmd.(*enrollCmd).enrollWithBackoff\",\"file.name\":\"cmd/enroll_cmd.go\",\"file.line\":518},\"message\":\"Starting
enrollment to URL:
https://<REDACTED>.fleet.us-west-2.aws.elastic.cloud:443/\",\"ecs.version\":\"1.6.0\"}\r\n{\"log.level\":\"info\",\"@timestamp\":\"2024-10-08T20:47:08.681Z\",\"log.origin\":{\"function\":\"github.com/elastic/elastic-agent/internal/pkg/agent/cmd.(*enrollCmd).daemonReloadWithBackoff\",\"file.name\":\"cmd/enroll_cmd.go\",\"file.line\":481},\"message\":\"Restarting
agent daemon, attempt
0\",\"ecs.version\":\"1.6.0\"}\r\n{\"log.level\":\"error\",\"@timestamp\":\"2024-10-08T20:47:08.683Z\",\"log.origin\":{\"function\":\"github.com/elastic/elastic-agent/internal/pkg/agent/cmd.(*enrollCmd).daemonReloadWithBackoff\",\"file.name\":\"cmd/enroll_cmd.go\",\"file.line\":495},\"message\":\"Restart
attempt 0 failed: 'rpc error: code = Unavailable desc = connection
error: desc = \\\"transport: Error while dialing: dial unix
/usr/share/elastic-agent/elastic-agent.sock: connect: no such file or
directory\\\"'. Waiting for
2s\",\"ecs.version\":\"1.6.0\"}\r\n```\r\n\r\n###
Checklist\r\n\r\nN/A\r\n\r\n### For maintainers\r\n\r\n- [ ] This was
checked for breaking API changes and was
[labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"13c2c7663546da0f6b34e5dd85932ebc74ecafa7"}}]}]
BACKPORT-->

Co-authored-by: Ryan Hass <[email protected]>
  • Loading branch information
kibanamachine and rhass authored Oct 9, 2024
1 parent d9d8978 commit d3c0b00
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent--x86_64.rpm
sudo rpm -vi elastic-agent--x86_64.rpm
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
--fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--fleet-server-port=8220"
`);
});

Expand All @@ -93,12 +93,12 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent--amd64.deb
sudo dpkg -i elastic-agent--amd64.deb
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
--fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--fleet-server-port=8220"
`);
});

Expand Down Expand Up @@ -196,13 +196,13 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent--x86_64.rpm
sudo rpm -vi elastic-agent--x86_64.rpm
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
--fleet-server-policy=policy-1 \\\\
--fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--fleet-server-port=8220"
`);
});

Expand All @@ -217,13 +217,13 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent--amd64.deb
sudo dpkg -i elastic-agent--amd64.deb
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
--fleet-server-policy=policy-1 \\\\
--fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--fleet-server-port=8220"
`);
});
});
Expand Down Expand Up @@ -349,6 +349,8 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent--x86_64.rpm
sudo rpm -vi elastic-agent--x86_64.rpm
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll --url=http://fleetserver:8220 \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
Expand All @@ -357,9 +359,7 @@ describe('getInstallCommandForPlatform', () => {
--fleet-server-es-ca=<PATH_TO_ES_CERT> \\\\
--fleet-server-cert=<PATH_TO_FLEET_SERVER_CERT> \\\\
--fleet-server-cert-key=<PATH_TO_FLEET_SERVER_CERT_KEY> \\\\
--fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--fleet-server-port=8220"
`);
});

Expand All @@ -376,6 +376,8 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent--amd64.deb
sudo dpkg -i elastic-agent--amd64.deb
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll --url=http://fleetserver:8220 \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
Expand All @@ -384,9 +386,7 @@ describe('getInstallCommandForPlatform', () => {
--fleet-server-es-ca=<PATH_TO_ES_CERT> \\\\
--fleet-server-cert=<PATH_TO_FLEET_SERVER_CERT> \\\\
--fleet-server-cert-key=<PATH_TO_FLEET_SERVER_CERT_KEY> \\\\
--fleet-server-port=8220
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--fleet-server-port=8220"
`);
});
});
Expand Down Expand Up @@ -547,14 +547,14 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://download-src/8.12.0-test/beats/elastic-agent/elastic-agent--x86_64.rpm --proxy http://download-src-proxy:2222
sudo rpm -vi elastic-agent--x86_64.rpm
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
--fleet-server-policy=policy-1 \\\\
--fleet-server-port=8220 \\\\
--proxy-url=http://es-proxy:1111
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--proxy-url=http://es-proxy:1111"
`);
});

Expand Down Expand Up @@ -589,14 +589,14 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://download-src/8.12.0-test/beats/elastic-agent/elastic-agent--amd64.deb --proxy http://download-src-proxy:2222
sudo dpkg -i elastic-agent--amd64.deb
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
--fleet-server-policy=policy-1 \\\\
--fleet-server-port=8220 \\\\
--proxy-url=http://es-proxy:1111
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--proxy-url=http://es-proxy:1111"
`);
});
});
Expand Down Expand Up @@ -795,16 +795,16 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://download-src/8.12.0-test/beats/elastic-agent/elastic-agent--x86_64.rpm --proxy http://download-src-proxy:2222 --proxy-header \\"Accept-Language=en-US,en;q=0.5\\" --proxy-header \\"second-header=second-value\\"
sudo rpm -vi elastic-agent--x86_64.rpm
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
--fleet-server-policy=policy-1 \\\\
--fleet-server-port=8220 \\\\
--proxy-url=http://es-proxy:1111 \\\\
--proxy-header=\\"X-Forwarded-For=forwarded-value\\" \\\\
--proxy-header=\\"test-header=test-value\\"
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--proxy-header=\\"test-header=test-value\\""
`);
});

Expand Down Expand Up @@ -847,16 +847,16 @@ describe('getInstallCommandForPlatform', () => {
expect(res).toMatchInlineSnapshot(`
"curl -L -O https://download-src/8.12.0-test/beats/elastic-agent/elastic-agent--amd64.deb --proxy http://download-src-proxy:2222 --proxy-header \\"Accept-Language=en-US,en;q=0.5\\" --proxy-header \\"second-header=second-value\\"
sudo dpkg -i elastic-agent--amd64.deb
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent
sudo elastic-agent enroll \\\\
--fleet-server-es=http://elasticsearch:9200 \\\\
--fleet-server-service-token=service-token-1 \\\\
--fleet-server-policy=policy-1 \\\\
--fleet-server-port=8220 \\\\
--proxy-url=http://es-proxy:1111 \\\\
--proxy-header=\\"X-Forwarded-For=forwarded-value\\" \\\\
--proxy-header=\\"test-header=test-value\\"
sudo systemctl enable elastic-agent
sudo systemctl start elastic-agent"
--proxy-header=\\"test-header=test-value\\""
`);
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,8 @@ export function getInstallCommandForPlatform({
linux: `${artifact.downloadCommand}\nsudo ./elastic-agent install ${commandArgumentsStr}`,
mac: `${artifact.downloadCommand}\nsudo ./elastic-agent install ${commandArgumentsStr}`,
windows: `${artifact.downloadCommand}\n.\\elastic-agent.exe install ${commandArgumentsStr}`,
deb: `${artifact.downloadCommand}\nsudo elastic-agent enroll ${commandArgumentsStr}\nsudo systemctl enable elastic-agent\nsudo systemctl start elastic-agent`,
rpm: `${artifact.downloadCommand}\nsudo elastic-agent enroll ${commandArgumentsStr}\nsudo systemctl enable elastic-agent\nsudo systemctl start elastic-agent`,
deb: `${artifact.downloadCommand}\nsudo systemctl enable elastic-agent\nsudo systemctl start elastic-agent\nsudo elastic-agent enroll ${commandArgumentsStr}`,
rpm: `${artifact.downloadCommand}\nsudo systemctl enable elastic-agent\nsudo systemctl start elastic-agent\nsudo elastic-agent enroll ${commandArgumentsStr}`,
kubernetes: '',
cloudFormation: '',
googleCloudShell: '',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,11 @@ cd elastic-agent-${agentVersion}-windows-x86_64

const linuxDebCommand = `curl -L -O ${downloadBaseUrl}/beats/elastic-agent/elastic-agent-${agentVersion}-amd64.deb ${curlDownloadSourceProxyArgs}
sudo dpkg -i elastic-agent-${agentVersion}-amd64.deb
sudo elastic-agent enroll ${enrollArgs} \nsudo systemctl enable elastic-agent \nsudo systemctl start elastic-agent`;
sudo systemctl enable elastic-agent \nsudo systemctl start elastic-agent \nsudo elastic-agent enroll ${enrollArgs} \n`;

const linuxRpmCommand = `curl -L -O ${downloadBaseUrl}/beats/elastic-agent/elastic-agent-${agentVersion}-x86_64.rpm ${curlDownloadSourceProxyArgs}
sudo rpm -vi elastic-agent-${agentVersion}-x86_64.rpm
sudo elastic-agent enroll ${enrollArgs} \nsudo systemctl enable elastic-agent \nsudo systemctl start elastic-agent`;
sudo systemctl enable elastic-agent \nsudo systemctl start elastic-agent \nsudo elastic-agent enroll ${enrollArgs} \n`;

const googleCloudShellCommand = `gcloud config set project ${gcpProjectId} && ${
gcpAccountType === 'organization-account' ? `ORG_ID=${gcpOrganizationId}` : ``
Expand Down

0 comments on commit d3c0b00

Please sign in to comment.