ansible: Looping over directory and referencing that file in another playbook












1














I am trying to make a playbook that loops over the number of files in a directory and then use those files in another playbook.
My playbook as it is now:



---

- name: Run playbooks for Raji's testing
register: scripts
roles:
- prepare_edge.yml
- prepare_iq.yml
- scriptor.yml
with_fileglob: ~/ansible/test_scripts/*
~


When I run this it doesn't work, I've tried "register: scripts" to make a variable to reference inside scriptor.yml but again the playbook fails. Any advice or help you can provide would be much appreciated.
Thanks!



P.S. I am super new to ansible



here is the scriptor.yml



---

- hosts: all
tasks:

- name: Create directory
command: mkdir /some/path/

- name: If file is a playbook
copy:
src: "{{ scripts }}"
dest: /some/path/
when: "{{ scripts }}" == "*.yml"

- name: if file is a script
shell: . ${{ scripts }}
when: "{{ scripts }}" == "*.sh"


P.S.S prepare_edge.yml and prepare_iq.yml don't reference anything and just need to be called in the loop before scriptor.yml



here is the error:



ERROR! 'register' is not a valid attribute for a Play

The error appears to have been in '/Users/JGrow33/ansible/raji_magic_playbook.yml': line 3, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name: Run playbooks for Raji's testing
^ here









share|improve this question
























  • I don't see where you're trying to use register or where you're trying to access the reigstered variable. If your playbook is failing with an error, please include that error in your question.
    – larsks
    Nov 14 '18 at 16:38










  • I've updated it to the original playbook and added the error i've been getting. If i take register: scripts out, I get the same error but with "with_fileglob is not a valid attribute...."
    – James Grow
    Nov 14 '18 at 16:51
















1














I am trying to make a playbook that loops over the number of files in a directory and then use those files in another playbook.
My playbook as it is now:



---

- name: Run playbooks for Raji's testing
register: scripts
roles:
- prepare_edge.yml
- prepare_iq.yml
- scriptor.yml
with_fileglob: ~/ansible/test_scripts/*
~


When I run this it doesn't work, I've tried "register: scripts" to make a variable to reference inside scriptor.yml but again the playbook fails. Any advice or help you can provide would be much appreciated.
Thanks!



P.S. I am super new to ansible



here is the scriptor.yml



---

- hosts: all
tasks:

- name: Create directory
command: mkdir /some/path/

- name: If file is a playbook
copy:
src: "{{ scripts }}"
dest: /some/path/
when: "{{ scripts }}" == "*.yml"

- name: if file is a script
shell: . ${{ scripts }}
when: "{{ scripts }}" == "*.sh"


P.S.S prepare_edge.yml and prepare_iq.yml don't reference anything and just need to be called in the loop before scriptor.yml



here is the error:



ERROR! 'register' is not a valid attribute for a Play

The error appears to have been in '/Users/JGrow33/ansible/raji_magic_playbook.yml': line 3, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name: Run playbooks for Raji's testing
^ here









share|improve this question
























  • I don't see where you're trying to use register or where you're trying to access the reigstered variable. If your playbook is failing with an error, please include that error in your question.
    – larsks
    Nov 14 '18 at 16:38










  • I've updated it to the original playbook and added the error i've been getting. If i take register: scripts out, I get the same error but with "with_fileglob is not a valid attribute...."
    – James Grow
    Nov 14 '18 at 16:51














1












1








1







I am trying to make a playbook that loops over the number of files in a directory and then use those files in another playbook.
My playbook as it is now:



---

- name: Run playbooks for Raji's testing
register: scripts
roles:
- prepare_edge.yml
- prepare_iq.yml
- scriptor.yml
with_fileglob: ~/ansible/test_scripts/*
~


When I run this it doesn't work, I've tried "register: scripts" to make a variable to reference inside scriptor.yml but again the playbook fails. Any advice or help you can provide would be much appreciated.
Thanks!



P.S. I am super new to ansible



here is the scriptor.yml



---

- hosts: all
tasks:

- name: Create directory
command: mkdir /some/path/

- name: If file is a playbook
copy:
src: "{{ scripts }}"
dest: /some/path/
when: "{{ scripts }}" == "*.yml"

- name: if file is a script
shell: . ${{ scripts }}
when: "{{ scripts }}" == "*.sh"


P.S.S prepare_edge.yml and prepare_iq.yml don't reference anything and just need to be called in the loop before scriptor.yml



here is the error:



ERROR! 'register' is not a valid attribute for a Play

The error appears to have been in '/Users/JGrow33/ansible/raji_magic_playbook.yml': line 3, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name: Run playbooks for Raji's testing
^ here









share|improve this question















I am trying to make a playbook that loops over the number of files in a directory and then use those files in another playbook.
My playbook as it is now:



---

- name: Run playbooks for Raji's testing
register: scripts
roles:
- prepare_edge.yml
- prepare_iq.yml
- scriptor.yml
with_fileglob: ~/ansible/test_scripts/*
~


When I run this it doesn't work, I've tried "register: scripts" to make a variable to reference inside scriptor.yml but again the playbook fails. Any advice or help you can provide would be much appreciated.
Thanks!



P.S. I am super new to ansible



here is the scriptor.yml



---

- hosts: all
tasks:

- name: Create directory
command: mkdir /some/path/

- name: If file is a playbook
copy:
src: "{{ scripts }}"
dest: /some/path/
when: "{{ scripts }}" == "*.yml"

- name: if file is a script
shell: . ${{ scripts }}
when: "{{ scripts }}" == "*.sh"


P.S.S prepare_edge.yml and prepare_iq.yml don't reference anything and just need to be called in the loop before scriptor.yml



here is the error:



ERROR! 'register' is not a valid attribute for a Play

The error appears to have been in '/Users/JGrow33/ansible/raji_magic_playbook.yml': line 3, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


- name: Run playbooks for Raji's testing
^ here






ansible






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 14 '18 at 16:50

























asked Nov 14 '18 at 16:33









James Grow

63




63












  • I don't see where you're trying to use register or where you're trying to access the reigstered variable. If your playbook is failing with an error, please include that error in your question.
    – larsks
    Nov 14 '18 at 16:38










  • I've updated it to the original playbook and added the error i've been getting. If i take register: scripts out, I get the same error but with "with_fileglob is not a valid attribute...."
    – James Grow
    Nov 14 '18 at 16:51


















  • I don't see where you're trying to use register or where you're trying to access the reigstered variable. If your playbook is failing with an error, please include that error in your question.
    – larsks
    Nov 14 '18 at 16:38










  • I've updated it to the original playbook and added the error i've been getting. If i take register: scripts out, I get the same error but with "with_fileglob is not a valid attribute...."
    – James Grow
    Nov 14 '18 at 16:51
















I don't see where you're trying to use register or where you're trying to access the reigstered variable. If your playbook is failing with an error, please include that error in your question.
– larsks
Nov 14 '18 at 16:38




I don't see where you're trying to use register or where you're trying to access the reigstered variable. If your playbook is failing with an error, please include that error in your question.
– larsks
Nov 14 '18 at 16:38












I've updated it to the original playbook and added the error i've been getting. If i take register: scripts out, I get the same error but with "with_fileglob is not a valid attribute...."
– James Grow
Nov 14 '18 at 16:51




I've updated it to the original playbook and added the error i've been getting. If i take register: scripts out, I get the same error but with "with_fileglob is not a valid attribute...."
– James Grow
Nov 14 '18 at 16:51












1 Answer
1






active

oldest

votes


















0














There error message you're getting is telling you that you can't run register in a Playbook.



You can accomplish what you're looking for by doing something like the following in your scriptor.yml file:



- hosts: all
tasks:

- name: Create directory
command: mkdir /some/path/

- name: If file is a playbook
copy:
src: "{{ item }}"
dest: /some/path/
with_fileglob: ~/ansible/test_scripts/*.yml

- name: if file is a script
shell: . ${{ item }}
with_fileglob: copy:
src: "{{ item }}"
dest: /some/path/
with_fileglobe: ~/ansible/test_scripts/*.sh


References



How can Ansible "register" in a variable the result of including a playbook?






share|improve this answer





















  • If I do it this way, wouldn't the main playbook not loop?
    – James Grow
    Nov 14 '18 at 17:59










  • you didn't include your other roles, do they need to be called before every file?
    – kenlukas
    Nov 14 '18 at 18:06










  • yeah, prepare_edge.yml and prepare_iq.yml need to be called before scriptor.yml every time scriptor.yml either runs a script or copies a playbook. That was why i was trying to make the loop in the main playbook so everything got called at every step of the loop
    – James Grow
    Nov 14 '18 at 18:16










  • Is there a reason they need to be in separate roles? You could consolidate the three.
    – kenlukas
    Nov 14 '18 at 18:26










  • I was asked to make it so that there were 3 different playbooks. I am an intern and I was asked to automate some scripts used for testing as a project. The different playbooks makes it easier to edit later on if more stuff needs to be added.
    – James Grow
    Nov 14 '18 at 19:02











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53304836%2fansible-looping-over-directory-and-referencing-that-file-in-another-playbook%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














There error message you're getting is telling you that you can't run register in a Playbook.



You can accomplish what you're looking for by doing something like the following in your scriptor.yml file:



- hosts: all
tasks:

- name: Create directory
command: mkdir /some/path/

- name: If file is a playbook
copy:
src: "{{ item }}"
dest: /some/path/
with_fileglob: ~/ansible/test_scripts/*.yml

- name: if file is a script
shell: . ${{ item }}
with_fileglob: copy:
src: "{{ item }}"
dest: /some/path/
with_fileglobe: ~/ansible/test_scripts/*.sh


References



How can Ansible "register" in a variable the result of including a playbook?






share|improve this answer





















  • If I do it this way, wouldn't the main playbook not loop?
    – James Grow
    Nov 14 '18 at 17:59










  • you didn't include your other roles, do they need to be called before every file?
    – kenlukas
    Nov 14 '18 at 18:06










  • yeah, prepare_edge.yml and prepare_iq.yml need to be called before scriptor.yml every time scriptor.yml either runs a script or copies a playbook. That was why i was trying to make the loop in the main playbook so everything got called at every step of the loop
    – James Grow
    Nov 14 '18 at 18:16










  • Is there a reason they need to be in separate roles? You could consolidate the three.
    – kenlukas
    Nov 14 '18 at 18:26










  • I was asked to make it so that there were 3 different playbooks. I am an intern and I was asked to automate some scripts used for testing as a project. The different playbooks makes it easier to edit later on if more stuff needs to be added.
    – James Grow
    Nov 14 '18 at 19:02
















0














There error message you're getting is telling you that you can't run register in a Playbook.



You can accomplish what you're looking for by doing something like the following in your scriptor.yml file:



- hosts: all
tasks:

- name: Create directory
command: mkdir /some/path/

- name: If file is a playbook
copy:
src: "{{ item }}"
dest: /some/path/
with_fileglob: ~/ansible/test_scripts/*.yml

- name: if file is a script
shell: . ${{ item }}
with_fileglob: copy:
src: "{{ item }}"
dest: /some/path/
with_fileglobe: ~/ansible/test_scripts/*.sh


References



How can Ansible "register" in a variable the result of including a playbook?






share|improve this answer





















  • If I do it this way, wouldn't the main playbook not loop?
    – James Grow
    Nov 14 '18 at 17:59










  • you didn't include your other roles, do they need to be called before every file?
    – kenlukas
    Nov 14 '18 at 18:06










  • yeah, prepare_edge.yml and prepare_iq.yml need to be called before scriptor.yml every time scriptor.yml either runs a script or copies a playbook. That was why i was trying to make the loop in the main playbook so everything got called at every step of the loop
    – James Grow
    Nov 14 '18 at 18:16










  • Is there a reason they need to be in separate roles? You could consolidate the three.
    – kenlukas
    Nov 14 '18 at 18:26










  • I was asked to make it so that there were 3 different playbooks. I am an intern and I was asked to automate some scripts used for testing as a project. The different playbooks makes it easier to edit later on if more stuff needs to be added.
    – James Grow
    Nov 14 '18 at 19:02














0












0








0






There error message you're getting is telling you that you can't run register in a Playbook.



You can accomplish what you're looking for by doing something like the following in your scriptor.yml file:



- hosts: all
tasks:

- name: Create directory
command: mkdir /some/path/

- name: If file is a playbook
copy:
src: "{{ item }}"
dest: /some/path/
with_fileglob: ~/ansible/test_scripts/*.yml

- name: if file is a script
shell: . ${{ item }}
with_fileglob: copy:
src: "{{ item }}"
dest: /some/path/
with_fileglobe: ~/ansible/test_scripts/*.sh


References



How can Ansible "register" in a variable the result of including a playbook?






share|improve this answer












There error message you're getting is telling you that you can't run register in a Playbook.



You can accomplish what you're looking for by doing something like the following in your scriptor.yml file:



- hosts: all
tasks:

- name: Create directory
command: mkdir /some/path/

- name: If file is a playbook
copy:
src: "{{ item }}"
dest: /some/path/
with_fileglob: ~/ansible/test_scripts/*.yml

- name: if file is a script
shell: . ${{ item }}
with_fileglob: copy:
src: "{{ item }}"
dest: /some/path/
with_fileglobe: ~/ansible/test_scripts/*.sh


References



How can Ansible "register" in a variable the result of including a playbook?







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 14 '18 at 17:54









kenlukas

1,27231317




1,27231317












  • If I do it this way, wouldn't the main playbook not loop?
    – James Grow
    Nov 14 '18 at 17:59










  • you didn't include your other roles, do they need to be called before every file?
    – kenlukas
    Nov 14 '18 at 18:06










  • yeah, prepare_edge.yml and prepare_iq.yml need to be called before scriptor.yml every time scriptor.yml either runs a script or copies a playbook. That was why i was trying to make the loop in the main playbook so everything got called at every step of the loop
    – James Grow
    Nov 14 '18 at 18:16










  • Is there a reason they need to be in separate roles? You could consolidate the three.
    – kenlukas
    Nov 14 '18 at 18:26










  • I was asked to make it so that there were 3 different playbooks. I am an intern and I was asked to automate some scripts used for testing as a project. The different playbooks makes it easier to edit later on if more stuff needs to be added.
    – James Grow
    Nov 14 '18 at 19:02


















  • If I do it this way, wouldn't the main playbook not loop?
    – James Grow
    Nov 14 '18 at 17:59










  • you didn't include your other roles, do they need to be called before every file?
    – kenlukas
    Nov 14 '18 at 18:06










  • yeah, prepare_edge.yml and prepare_iq.yml need to be called before scriptor.yml every time scriptor.yml either runs a script or copies a playbook. That was why i was trying to make the loop in the main playbook so everything got called at every step of the loop
    – James Grow
    Nov 14 '18 at 18:16










  • Is there a reason they need to be in separate roles? You could consolidate the three.
    – kenlukas
    Nov 14 '18 at 18:26










  • I was asked to make it so that there were 3 different playbooks. I am an intern and I was asked to automate some scripts used for testing as a project. The different playbooks makes it easier to edit later on if more stuff needs to be added.
    – James Grow
    Nov 14 '18 at 19:02
















If I do it this way, wouldn't the main playbook not loop?
– James Grow
Nov 14 '18 at 17:59




If I do it this way, wouldn't the main playbook not loop?
– James Grow
Nov 14 '18 at 17:59












you didn't include your other roles, do they need to be called before every file?
– kenlukas
Nov 14 '18 at 18:06




you didn't include your other roles, do they need to be called before every file?
– kenlukas
Nov 14 '18 at 18:06












yeah, prepare_edge.yml and prepare_iq.yml need to be called before scriptor.yml every time scriptor.yml either runs a script or copies a playbook. That was why i was trying to make the loop in the main playbook so everything got called at every step of the loop
– James Grow
Nov 14 '18 at 18:16




yeah, prepare_edge.yml and prepare_iq.yml need to be called before scriptor.yml every time scriptor.yml either runs a script or copies a playbook. That was why i was trying to make the loop in the main playbook so everything got called at every step of the loop
– James Grow
Nov 14 '18 at 18:16












Is there a reason they need to be in separate roles? You could consolidate the three.
– kenlukas
Nov 14 '18 at 18:26




Is there a reason they need to be in separate roles? You could consolidate the three.
– kenlukas
Nov 14 '18 at 18:26












I was asked to make it so that there were 3 different playbooks. I am an intern and I was asked to automate some scripts used for testing as a project. The different playbooks makes it easier to edit later on if more stuff needs to be added.
– James Grow
Nov 14 '18 at 19:02




I was asked to make it so that there were 3 different playbooks. I am an intern and I was asked to automate some scripts used for testing as a project. The different playbooks makes it easier to edit later on if more stuff needs to be added.
– James Grow
Nov 14 '18 at 19:02


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53304836%2fansible-looping-over-directory-and-referencing-that-file-in-another-playbook%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Guess what letter conforming each word

Port of Spain

Run scheduled task as local user group (not BUILTIN)