我正在尝试通过local-exec测试Terraform调用Ansible剧本
我遇到了以下错误
null_resource.pb_add_main: Provisioning with 'local-exec'...
null_resource.pb_add_main (local-exec): Executing: ["/bin/sh" "-c" " ansible-playbook hw.ymln"]
null_resource.pb_add_main (local-exec): /bin/sh: 1: ansible-playbook: not found
╷
│ Error: Error running command ' ansible-playbook hw.yml
│ ': exit status 127. Output: /bin/sh: 1: ansible-playbook: not found
不知道如何纠正这个.........任何帮助都非常感谢!
我看到参考ansible已经安装-它是,executable location = /usr/bin/ansible
并在local-exec命令中执行echo $PATH
,并确认在给定路径
null_resource.echo (local-exec): Executing: ["/bin/sh" "-c" "echo $PATH"]
null_resource.pb_add_main: Creating...
null_resource.echo (local-exec): /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
<标题>附加信息CentOS新版本
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum install terraform
sudo yum install epel-release
sudo yum install ansible
[user@centos-automate config_deploy_del]$ ansible --version
ansible 2.9.23
config file = /home/user/config_deploy_del/ansible.cfg
configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Jul 15 2021, 15:17:46) [GCC 8.5.0 20210514 (Red Hat 8.5.0-2)]
Terraform正在从执行
[user@centos-automate config_deploy_del]$ pwd
/home/user/config_deploy_del
tf和pb文件都在同一个目录
[user@centos-automate config_deploy_del]$ ls -la
total 72
-rw-rw-r--. 1 user user 0 Aug 5 18:13 ansible.cfg
-rw-rw-r--. 1 user user 145 Aug 5 18:13 backend.tf
-rw-rw-r--. 1 user user 228 Aug 5 18:13 hw.yml
-rw-rw-r--. 1 user user 855 Aug 5 18:13 pb.tf
-rw-rw-r--. 1 user user 140 Aug 5 18:13 providers.tf
-rw-rw-r--. 1 user user 321 Aug 5 18:13 variables.tf
特遣部队文件pb.tf
resource "null_resource" "echo" {
provisioner "local-exec" {
command = "echo $PATH"
}
}
resource "null_resource" "pb_add_main" {
provisioner "local-exec" {
command = <<EOT
ansible-playbook hw.yml
EOT
}
}
tf文件更改pb.tf
导致相同的错误
........
resource "null_resource" "pb_add_main" {
provisioner "local-exec" {
command = "ansible-playbook hw.yml"
}
}
<<p>路径组合/strong>To visible and playbook - none work
/usr/bin/ansible-playbook hw.yml
and
/usr/bin/ansible-playbook /home/user/config_deploy_del/hw.yml
and
ansible-playbook /home/user/config_deploy_del/hw.yml
开始看这一行
有意思——我已经开始看这一行了
(local-exec): Executing: ["/bin/sh" "-c" "ansible-playbook hw.yml"]
,如果您从CMDL运行它.........仅仅是它自己-播放执行
[user@centos-automate config_deploy_del]$ /bin/sh -c "ansible-playbook hw.yml"
潜在的修复-工作,然后不
我得到一个提示,ansible
需要通过pip
安装,而不是通过yum
或apt-get
在一个备用的ubuntu虚拟机上,我做了以下操作——允许local-exec
执行playbook
然而这只工作了几次,当我更新我的工作.tf
和.yml
文件来运行我的工作流时,它又失败了。
我恢复我的文件,它继续失败.......
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform
terraform -help
touch ~/.bashrc
sudo apt install python3-pip
sudo pip3 install ansible
我在CentOS上遵循这个过程,它没有工作
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum update
sudo yum install terraform
sudo yum install python3
sudo yum install python3-pip
sudo pip3 install --upgrade pip
sudo pip3 install ansible
标题>这有点晚了,但可能您需要将working_dir
参数添加到provision local-exec
语句中。
见:https://developer.hashicorp.com/terraform/language/resources/provisioners/local-exec