Skip to content

Commit

Permalink
Fix order of operations in instructions. (elastic#195503)
Browse files Browse the repository at this point in the history
## Summary

The enroll command must be executed after the elastic-agent is running.
This updates the instructions so that users are told to enable and start
the agent before running the `enroll` command to ensure the socket file
is created and available.

This fixes issues with errors like this:

```
{"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"}
{"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"}
{"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"}
```

### Checklist

N/A

### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
  • Loading branch information
rhass authored Oct 9, 2024
1 parent 7839db9 commit 13c2c76
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 13c2c76

Please sign in to comment.