39 lines
962 B
Plaintext
Executable File
39 lines
962 B
Plaintext
Executable File
#!/usr/bin/expect -f
|
|
|
|
# List of expected users with dummy password
|
|
set users {"elastic" "kibana_system" "logstash_system" "beats_system" "apm_system" "remote_monitoring_user"}
|
|
set password "testpasswd"
|
|
|
|
# Find elasticsearch container id
|
|
set MODE [lindex $argv 0]
|
|
if { [string match "swarm" $MODE] } {
|
|
set cid [exec docker ps -q -f label=com.docker.swarm.service.name=elk_elasticsearch]
|
|
} else {
|
|
set cid [exec docker ps -q -f label=com.docker.compose.service=elasticsearch]
|
|
}
|
|
|
|
foreach user $users {
|
|
set cmd "docker exec -it $cid bin/elasticsearch-reset-password --batch --user $user -i"
|
|
|
|
spawn {*}$cmd
|
|
|
|
expect {
|
|
-re "(E|Re-e)nter password for \\\[$user\\\]: " {
|
|
send "$password\r"
|
|
exp_continue
|
|
}
|
|
timeout {
|
|
puts "\ntimed out waiting for input"
|
|
exit 4
|
|
}
|
|
eof
|
|
}
|
|
|
|
lassign [wait] pid spawnid os_error_flag value
|
|
|
|
if {$value != 0} {
|
|
if {$os_error_flag == 0} { puts "exit status: $value" } else { puts "errno: $value" }
|
|
exit $value
|
|
}
|
|
}
|