Walter, I tried this, which is like what I think you posted:





















*---- hosts: localhost  connection: local  gather_facts: false  
vars_prompt:    - name: "domainfile"      prompt: "Enter domain short 
name"      private: no    - name: "pemno"      prompt: "Enter the number of 
the created pems"      private: no  tasks:    - set_fact:        pemno: "{{ 
pemno }}"    ... other plays*
















*- hosts: myhost  become: yes  tasks:    - name: Copy pem files to hosts    
  ansible.builtin.copy:        src: "{{ item.src }}"        dest: "{{ 
item.dest }}"        owner: root        group: root        mode: preserve  
        #remote_src: yes      with_items:        - { src: 
'/home/deploy/somedomain.com/privkey{{ pemno }}.pem', dest: 
'/etc/letsencrypt/archive/somedomain.com' }        - { src: '/home/deploy/* 
*somedomain**.com/cert{{ pemno }}.pem', dest: '/etc/letsencrypt/archive/* 
*somedomain*
*.com' }        - { src: '/home/deploy/* *somedomain**.com/chain{{ pemno 
}}.pem', dest: '/etc/letsencrypt/archive/* *somedomain*
*.com' }        - { src: '/home/deploy/* *somedomain**.com/fullchain{{ 
pemno }}.pem', dest: '/etc/letsencrypt/archive/* *somedomain*

*.com' }      tags:        - copypems*

It fails:





*TASK [Copy pem files to hosts] 
*********************************************************************Wednesday 
21 February 2024  09:35:38 -0500 (0:00:02.470)       0:00:17.925 
****Wednesday 21 February 2024  09:35:38 -0500 (0:00:02.469)       
0:00:17.924 ****fatal: [myhost]: FAILED! =>  msg: '''pemno'' is undefined. 
''pemno'' is undefined'   *        

On Wednesday, February 21, 2024 at 8:13:23 AM UTC-5 Rowe, Walter P. (Fed) 
wrote:

> This works. The set_fact makes a global variable for the entire playbook.
>
>
> - hosts: localhost
>
>   connection: local
>
>   gather_facts: false
>
>   become: false
>
>
>   vars_prompt:
>
>        - name: "pemno"
>
>          prompt: "Enter the number of the created pems"
>
>          private: no
>
>
>   tasks:
>
>     - set_fact:
>
>         pemno: "{{ pemno }}"
>
>
> - hosts: all
>
>   gather_facts: false
>
>   become: false
>
>
>   tasks:
>
>     - debug: var=pemno
>
>
> Walter
> --
> Walter Rowe, Division Chief
> Infrastructure Services Division
> Mobile: 202.355.4123 <(202)%20355-4123> 
>
> On Feb 21, 2024, at 8:03 AM, Dimitri Yioulos <[email protected]> wrote:
>
> Dick, I'm not getting that to work. For now, I'm prompting again for the 
> pemno withing the second set of tasks. That works, but isn't ideal. I'd 
> like to see if I can "re-use" the pemno gathered from the first tasks 
> prompt in the second set of tasks: 
>
>
>
>
> *- hosts: localhost   connection: local   gather_facts: false *
>
> *  vars_prompt:*
>
>
>
>
> *       - name: "pemno"          prompt: "Enter the number of the created 
> pems"          private: no *
> *   tasks:*
> *   <first set of plays>*
>
>
>
> *- hosts: myhost   become: yes *
>
> *  tasks:*
> *   <second set of plays>    <----- use pemno here from above*
> On Tuesday, February 20, 2024 at 9:15:29 AM UTC-5 Dick Visser wrote:
>
>> I *think* the vars from vars_prompt are tied to localhost in the first 
>> play, so if you need them in any next plays, you would need to reference 
>> them as localhost's hostvars:
>>
>> {{ hostvars['localhost'].pemno }}
>>
>> (not tested)
>>
>> On Tue, 20 Feb 2024 at 14:10, Dimitri Yioulos <[email protected]> wrote:
>>
>>> Good  morning. 
>>>
>>> In the following playbook, i have prompts to capture certain 
>>> information. The created variables work fine in the first set of tasks in 
>>> the playbook. However, they don't carry over into the second set of tasks 
>>> in the playbook, based on what I've tried (as seen in the playbook, which 
>>> is probably not the most efficient). Is there a way to do this?
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *--- - hosts: localhost   connection: local   gather_facts: false   
>>> vars_prompt:     - name: "domainfile"       prompt: "Enter domain short 
>>> name"       private: no     - name: "pemno"       prompt: "Enter the number 
>>> of the created pems"       private: no         #- name: ""         #prompt: 
>>> ""         #private: no   tasks:     - name: Create directory       
>>> ansible.builtin.file:         path: '/home/deploy/{{ domainfile }}'         
>>> state: directory         owner: deploy         owner: deploy         group: 
>>> deploy         mode: '0755'       tags:         - create_dir     - name: 
>>> Copy pem files to directory       ansible.builtin.copy:         src: "{{ 
>>> item.src }}"         dest: '/home/deploy/{{ domainfile }}'         owner: 
>>> deploy         group: deploy         mode: '0644'         remote_src: yes   
>>>     with_items:         - { src: 
>>> '/etc/letsencrypt/archive/myhost.com/privkey{{ 
>>> <http://myhost.com/privkey%7B%7B> pemno }}.pem' }         - { src: 
>>> '/etc/letsencrypt/archive/myhost.com/cert{{ <http://myhost.com/cert%7B%7B> 
>>> pemno }}.pem' }         - { src: 
>>> '/etc/letsencrypt/archive/myhost.com/chain{{ 
>>> <http://myhost.com/chain%7B%7B> pemno }}.pem' }         - { src: 
>>> '/etc/letsencrypt/archive/myhost.com/fullchain{{ 
>>> <http://myhost.com/fullchain%7B%7B> pemno }}.pem' }       become: yes       
>>> become_user: root       become_method: sudo       tags:         - copy_pems 
>>>     - name: Change privkey permission       ansible.builtin.file:         
>>> path: '/home/deploy/{{ domainfile }}/privkey{{ pemno }}.pem'         mode: 
>>> '0600'       tags:         - chg_privkey_perm     - name: Save our 
>>> variables to localhost facts for next tasks       run_once: yes       
>>> delegate_to: localhost       delegate_facts: yes       set_fact:         
>>> domainfile: "{{ domainfile }}"         pemno: "{{ pemno }}" - hosts: 
>>> another_host   become: yes   become_user: root   become_method: sudo   
>>> vars:     a_domainfile: "{{ domainfile }}"     pemno: "{{ pemno }}"   
>>> tasks:     - name: Copy pem files to hosts       ansible.builtin.copy:     
>>>     src: "{{ item.src }}"         dest: "{{ item.dest }}"         owner: 
>>> root         group: root         mode: preserve         remote_src: yes     
>>>   with_items:         - { src: 
>>> '/etc/letsencrypt/archive/myhost.com/privkey{{ 
>>> <http://myhost.com/privkey%7B%7B> pemno }}.pem' ,dest: '/home/deploy/' }   
>>>       - { src: '/etc/letsencrypt/archive/myhost.com/cert{{ 
>>> <http://myhost.com/cert%7B%7B> pemno }}.pem' ,dest: '/home/deploy/' }       
>>>   - { src: '/etc/letsencrypt/archive/myhost.com/chain{{ 
>>> <http://myhost.com/chain%7B%7B> pemno }}.pem' ,dest: '/home/deploy/' }     
>>>     - { src: '/etc/letsencrypt/archive/myhost.com/fullchain{{ 
>>> <http://myhost.com/fullchain%7B%7B> pemno }}.pem',dest: '/home/deploy/' }   
>>>     tags:         - copypems     - name: Copy pem files to letsencrypt 
>>> archive directory       shell: cp -p '/home/deploy/{{ pemno }}.pem 
>>> /etc/letsencrypt/archive/myhost.com/ <http://myhost.com/>'       tags:     
>>>     - cppems     - name: Set selinux       shell: |         semanage 
>>> fcontext -a -t etc_t "/etc/letsencrypt/archive/myhost.com 
>>> <http://myhost.com/>(/.*)?"         restorecon -R -v 
>>> /etc/letsencrypt/archive/myhost.com/ <http://myhost.com/>       tags:       
>>>   - selinux     - name: Unlink pems       shell: |         cd 
>>> /etc/letsencrypt/live/myhost.com <http://myhost.com/>         unlink 
>>> cert.pem ; 'ln -s /etc/letsencrypt/archive/myhost.com/cert{{ 
>>> <http://myhost.com/cert%7B%7B> a_)pemno }}.pem cert.pem'         unlink 
>>> chain.pem ; 'ln -s /etc/letsencrypt/archive/myhost.com/chain{{ 
>>> <http://myhost.com/chain%7B%7B> pemno }}.pem chain.pem'         unlink 
>>> fullchain.pem ; 'ln -s /etc/letsencrypt/archive/myhost.com/fullchain{{ 
>>> <http://myhost.com/fullchain%7B%7B> pemno }}.pem'         unlink 
>>> privkey.pem ; 'ln -s /etc/letsencrypt/archive/myhost.com/privkey{{ 
>>> <http://myhost.com/privkey%7B%7B> pemno }}.pem'       tags:         - 
>>> unlink     - name: Check apache       shell: |         httpd -f 
>>> /etc/httpd/conf/httpd.conf -t         httpd -f /etc/httpd/conf/httpd.conf 
>>> -S       register: ck_apache       tags:         - check_apache     - 
>>> debug: msg={{ ck_apache.stderr_lines }}       tags:         - check_apache 
>>>     - debug: msg={{ ck_apache.stdout }}       tags:         - check_apache 
>>>     - name: Reload apache       shell: systemctl reload httpd       tags:   
>>>       - reload_apache     - name: Check cert expire date       shell: 
>>> openssl x509 -enddate -noout -in /etc/letsencrypt/live/myhost.com/cert.pem 
>>> <http://myhost.com/cert.pem>       register: certdate       tags:         - 
>>> ck_cert_date     - debug: msg={{ certdate.stdout_lines }}       tags:       
>>>   - ck_cert_date     - name: Remove pem files stored temporarily       
>>> ansible.builtin.file:         path: |           '/home/deploy/privkey{{ 
>>> pemno }}.pem'           '/home/deploy/cert{{ pemno }}.pem'           
>>> '/home/deploy/chain{{ pemno }}.pem'           '/home/deploy/fullchain{{ 
>>> pemno }}.pem'           '/tmp/privkey{{ pemno }}.pem'           
>>> '/tmp/cert{{ pemno }}.pem'           '/tmp/chain{{ pemno }}.pem'           
>>> '/tmp/fullchain{{ pemno }}.pem'         state: absent         tags:         
>>>   - delfiles*
>>>
>>> -- 
>>> 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 view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/ansible-project/8dc92686-4fc0-4bf5-89b7-43e87e7fd397n%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/ansible-project/8dc92686-4fc0-4bf5-89b7-43e87e7fd397n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
> -- 
> 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 view this discussion on the web visit 
> https://groups.google.com/d/msgid/ansible-project/ff8e7017-545c-48f0-99da-b719d789101bn%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/ansible-project/ff8e7017-545c-48f0-99da-b719d789101bn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/5a793a54-4f3e-4f96-800f-2a2fd911fd1en%40googlegroups.com.

Reply via email to