THANK YOU!
That fixes it :)
So, this doesn't work:[Errno 2] No such file or directory :
- name: Build CURL with openssl
*shell: 'chdir={{ curl_dir }} "{{ item }}"'*
with_items:
- ./buildconf
- ./configure --with-gssapi --with-libidn --with-libssh2
--prefix=/usr --without-nss
- make
- make install
- ldconfig
but this works perfectly:
- name: Build CURL with openssl
*shell: 'cd {{ curl_dir }};{{ item }}'*
with_items:
- ./buildconf
- ./configure --with-gssapi --with-libidn --with-libssh2
--prefix=/usr --without-nss
- make
- make install
- ldconfig
anyone know why?
On Friday, February 7, 2014 12:22:48 PM UTC-8, Walid Shaari wrote:
>
> 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] <javascript:>>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] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> 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.