Docker 如何确保remote exec provisioner环境与直接运行ssh相同?

Docker 如何确保remote exec provisioner环境与直接运行ssh相同?,docker,terraform,terraform-provider-aws,Docker,Terraform,Terraform Provider Aws,我可以直接使用ssh在我的实例中运行命令: ssh -o StrictHostKeyChecking=no -i myid_rsa centos@x.x.x.x sudo docker exec samdom samba-tool user create myuser Passw0rd Warning: Permanently added 'x.x.x.x' (ECDSA) to the list of known hosts. User 'myuser' created successfull

我可以直接使用ssh在我的实例中运行命令:

ssh -o StrictHostKeyChecking=no -i myid_rsa centos@x.x.x.x sudo docker exec samdom samba-tool user create myuser Passw0rd
Warning: Permanently added 'x.x.x.x' (ECDSA) to the list of known hosts.
User 'myuser' created successfully
我想使用remote exec provisioner执行同样的操作:

provisioner "remote-exec" {
    connection {
      type        = "ssh"
      user        = "centos"
      ...
    }
    inline = [
      ...
      "sudo docker exec samdom samba-tool user create myuser Passw0rd",
      ...
但是,我得到一个错误:

aws_instance.ad_server[0] (remote-exec): ERROR(<type 'exceptions.ValueError'>): Failed to add user 'myuser':  - unable to parse dn string
aws_instance.ad_server[0] (remote-exec):   File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 197, in run
aws_instance.ad_server[0] (remote-exec):     gecos=gecos, loginshell=login_shell)
aws_instance.ad_server[0] (remote-exec):   File "/usr/lib/python2.7/dist-packages/samba/samdb.py", line 356, in newuser
aws_instance.ad_server[0] (remote-exec):     dnsdomain = ldb.Dn(self, self.domain_dn()).canonical_str().replace("/", "")
aws_实例.ad_服务器[0](远程执行):错误():添加用户“myuser”失败:-无法分析dn字符串
aws_instance.ad_服务器[0](远程执行):文件“/usr/lib/python2.7/dist packages/samba/netcmd/user.py”,第197行,正在运行
aws_instance.ad_服务器[0](远程执行):gecos=gecos,loginshell=login_shell)
aws_instance.ad_服务器[0](远程执行):文件“/usr/lib/python2.7/dist packages/samba/samdb.py”,第356行,在newuser中
aws_instance.ad_服务器[0](远程执行):dnsdomain=ldb.Dn(self,self.domain_Dn()).canonical_str().replace(“/”,“”)

我假设每种方法的环境都不同,但我不确定如何为terraform provisioner纠正这一点。

我认为terraform的事情可能有点像转移视线,因为samba工具似乎不能很好地处理错误。许多其他问题都指向LDAP数据库的缺乏,也指向Linux操作系统中尚未创建的用户(因为他们显然需要映射到那里)。我不确定你现在在这个问题上有什么是可以回答的,因为它不能从你所给的复制出来。如果你能把它重新设计成一个可靠的复制品,并且是地形的话,那可能会很有帮助。我已经找到了另一种添加用户的方法,所以如果这个问题对其他用户没有帮助的话,很高兴结束这个问题。