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.

Reply via email to