#!/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 } }