Duncan,
you seem to be doing it right setting dir first, however still it looks
like you are not in the right path for the file/dir it is trying to look
for may be if you use the shell module and set your cwd first, then the
configure line
shell : "cd {{ curl_dir }};{{ item }}'
On 7 February 2014 22:18, Duncan Lock <[email protected]> wrote:
> I'm trying to use Ansible to provision a Vagrant VM. The VM is running
> CentOS 6.4. I'm using the following (abbreviated) ansible playbook:
>
> - hosts: default
> vars:
> home: '/home/vagrant'
> curl_version: '7_19_7'
> curl_url: 'https://github.com/bagder/curl/archive/curl-{{curl_version
> }}.tar.gz'
> curl_dir: '{{ home }}/curl-curl-{{ curl_version }}'
>
> # user: vagrant
> remote_user: vagrant
> sudo: yes
>
> tasks:
>
> - name: Ensure required packages and installed and up to date - pt1
> yum: pkg={{ item }} state=present
> with_items:
> - make
> - gcc
> - etc...
>
> # Lots more yum tasks in here
>
> - name: Ensure CURL source downloaded
> get_url: url={{ curl_url }} dest=/home/vagrant/curl-{{
> curl_version }}.tar
>
> - name: Extract CURL source
> command: tar -zxf {{ home }}/curl-{{ curl_version }}.tar
> creates={{ curl_dir }}
>
> - name: Copy ssh patch over
> copy: src=./files/ssh.c.patch dest={{ home }}/ssh.c.patch
>
> - name: Patch CURL with openssl
> shell: patch -t {{ curl_dir }}/lib/ssh.c {{ home }}/ssh.c.patch
> chdir={{ curl_dir }}/lib
> when: path_file_result.changed
>
> - name: Build CURL with openssl
> command: 'chdir={{ curl_dir }} "{{ item }}"'
> with_items:
> - ./buildconf
> - ./configure --with-gssapi --with-libidn --with-libssh2
> --prefix=/usr --without-nss
> - make
> - make install
> - ldconfig
>
> Vagrant is working fine and the Ansible playbook runs successfully up to
> the last task 'Build CURL with openssl' - which fails, like so:
>
> TASK: [Build CURL with openssl]
> ***********************************************
> changed: [default] => (item=./buildconf) => {"changed": true, "cmd":
> ["./buildconf"], "delta": "0:00:10.709817", "end": "2014-02-07
> 02:26:44.802652", "item": "./buildconf", "rc": 0, "start": "2014-02-07
> 02:26:34.092835", "stderr": "configure.ac:78: installing `./compile'
> configure.ac:73: installing `./config.guess'
> configure.ac:73: installing `./config.sub'
> configure.ac:65: installing `./missing'
> Makefile.am: installing `./depcomp'
> configure.ac:137: installing `./config.guess'
> configure.ac:137: installing `./config.sub'
> docs/examples/Makefile.am: installing `./depcomp'", "stdout":
> "buildconf: autoconf version 2.63 (ok)
> buildconf: autom4te version 2.63 (ok)
> buildconf: autoheader version 2.63 (ok)
> buildconf: automake version 1.11.1 (ok)
> buildconf: aclocal version 1.11.1 (ok)
> buildconf: libtool version 2.2.6 (ok)
> buildconf: libtoolize found
> buildconf: GNU m4 version 1.4.13 (ok)
> buildconf: running libtoolize
> buildconf: running aclocal
> buildconf: running aclocal hack to convert all mv to mv -f
> buildconf: running autoheader
> buildconf: cp lib/curl_config.h.in src/curl_config.h.in
> buildconf: running autoconf
> buildconf: running in ares
> buildconf: running automake
> buildconf: OK"}
>
> failed: [default] => (item=./configure --with-gssapi --with-libidn
> --with-libssh2 --prefix=/usr --without-nss) => {"cmd": ["./configure
> --with-gssapi --with-libidn --with-libssh2 --prefix=/usr --without-nss"],
> "failed": true, "item": "./configure --with-gssapi --with-libidn
> --with-libssh2 --prefix=/usr --without-nss", "rc": 2}
> msg: [Errno 2] No such file or directory
> failed: [default] => (item=make) => {"changed": true, "cmd": ["make"],
> "delta": "0:00:00.001828", "end": "2014-02-07 02:26:45.003968", "item":
> "make", "rc": 2, "start": "2014-02-07 02:26:45.002140"}
> stderr: make: *** No targets specified and no makefile found. Stop.
> failed: [default] => (item=make install) => {"cmd": ["make install"],
> "failed": true, "item": "make install", "rc": 2}
> msg: [Errno 2] No such file or directory
> changed: [default] => (item=ldconfig) => {"changed": true, "cmd":
> ["ldconfig"], "delta": "0:00:00.009685", "end": "2014-02-07
> 02:26:46.096829", "item": "ldconfig", "rc": 0, "start": "2014-02-07
> 02:26:46.087144", "stderr": "", "stdout": ""}
>
> FATAL: all hosts have already failed -- aborting
>
> So, the `./buildconf` step works, but the `./configure --with-gssapi
> --with-libidn --with-libssh2 --prefix=/usr --without-nss` step seems to
> be failing with `[Errno 2] No such file or directory`. I presume this is
> because it's trying to run that whole string like it was a single command?
>
> If I change it to use `shell` instead of `command`, I get this instead:
>
> failed: [default] => (item=./configure --with-gssapi --with-libidn
> --with-libssh2 --prefix=/usr --without-nss) => {"changed": true, "cmd": "
> \"./configure --with-gssapi --with-libidn --with-libssh2 --prefix=/usr
> --without-nss\" ", "delta": "0:00:00.001171", "end": "2014-02-07
> 02:31:34.862373", "item": "./configure --with-gssapi --with-libidn
> --with-libssh2 --prefix=/usr --without-nss", "rc": 127, "start":
> "2014-02-07 02:31:34.861202"}
> stderr: /bin/sh: ./configure --with-gssapi --with-libidn
> --with-libssh2 --prefix=/usr --without-nss: No such file or directory
>
> I've verified that all the tasks up to that point work, and the files are
> downloaded and extracted to the expected places and the patch works (see
> here:
> http://serverfault.com/questions/573505/ansible-playbook-not-working-trying-to-run-patch
> ).
>
> After the task fails (or if you comment it out), if you SSH into the VM
> that's being configured, and run all the same build steps yourself - using
> the exact values from the playbook, it works.
>
> I'm still pretty new to Ansible and I'm not sure why this isn't working?
> What am I doing wrong? Is there some way to format or quote that `
> configure` command differently so it gets interpreted properly, if that's
> the issue? Should I be using `raw` for this? Or something else?
>
> Thanks!
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.