أنسبل: كيفية حذف / إعادة إنشاء ملف أثناء تشغيل Ansible Playbook؟
نشرت: 2019-08-29Ansible بلا شك أفضل أداة لأتمتة البنية التحتية التي تستخدمها أفضل 500 شركة في جميع أنحاء العالم.
على Crunchify ، نشرنا عددًا كبيرًا من البرامج التعليمية على Ansible. يرجى إلقاء نظرة على Ansible Archive للاطلاع على كافة البرامج التعليمية التفصيلية. فيما يلي أهم 3 دروس.
- كيفية نسخ ملف أو دليل أو برنامج نصي من مضيف محلي إلى مضيف بعيد؟
- كيف تفرخ Amazon EC2 VMs باستخدام Ansible؟
- كيفية تنفيذ الأوامر على المضيفات البعيدة واستعادة نتيجة الأمر (السجل)؟
في هذا البرنامج التعليمي ، سوف نتناول 3 نصائح مختلفة أستخدمها يوميًا.
كيفية حذف وإعادة إنشاء ملف باستخدام Ansible؟
الخطوة 1
تأكد من إعداد Ansible بشكل صحيح على نظام التشغيل Mac أو Linux OS.
الخطوة 2
قم بإنشاء ملف crunchify-delete-recreate-ansible.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
--- - name : Delete and Re - Create crunchify . txt file from current directory . hosts : local connection : local gather_facts : True tasks : - name : delete file ignore_errors : yes file : state : absent path : crunchify . txt - name : Ansible create file if it doesn ' t exist example ignore_errors : yes file : path : "crunchify.txt" state : touch |
الخطوه 3
افتح ملف hosts
وضع المحتوى أدناه:
1 2 |
[ local ] localhost ansible_connection = local ansible_python_interpreter = python |
الخطوة 4
تشغيل Ansible playbook
.
1 |
ansible - playbook - vvv - i . / hosts crunchify - delete - recreate - ansible . yml |
هذه نتيجة:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
WARNING : Executing a script that is loading libcrypto in an unsafe way . This will fail in a future version of macOS . Set the LIBRESSL_REDIRECT_STUB_ABORT = 1 in the environment to force this into an error . ansible - playbook 2.7.8 config file = None configured module search path = [ u '/Users/crunchify/.ansible/plugins/modules' , u '/usr/share/ansible/plugins/modules' ] ansible python module location = / Library / Python / 2.7 / site - packages / ansible executable location = / usr / local / bin / ansible - playbook python version = 2.7.16 ( default , Jul 14 2019 , 03 : 47 : 49 ) [ GCC 4.2.1 Compatible Apple LLVM 11.0.0 ( clang - 1100.0.32.4 ) ( - macos10 . 15 - objc - s No config file found ; using defaults / Users / crunchify / Documents / ansible / hosts did not meet host_list requirements , check plugin documentation if this is unexpected / Users / crunchify / Documents / ansible / hosts did not meet script requirements , check plugin documentation if this is unexpected Parsed / Users / crunchify / Documents / ansible / hosts inventory source with ini plugin PLAYBOOK : crunchify - delete - recreate - ansible . yml * *************************************************************************************************************** 1 plays in crunchify - delete - recreate - ansible . yml PLAY [ Delete and Re - Create crunchify . txt file from current directory . ] ***************************************************************************************** TASK [ Gathering Facts ] ***************************************************************************************************************************************** task path : / Users / crunchify / Documents / ansible / crunchify - delete - recreate - ansible . yml : 2 < localhost > ESTABLISH LOCAL CONNECTION FOR USER : crunchify < localhost > EXEC / bin / sh - c 'echo ~crunchify && sleep 0' < localhost > EXEC / bin / sh - c '( umask 77 && mkdir -p "` echo /Users/crunchify/.ansible/tmp/ansible-tmp-1567010309.76-127517206399779 `" && echo ansible-tmp-1567010309.76-127517206399779="` echo /Users/crunchify/.ansible/tmp/ansible-tmp-1567010309.76-127517206399779 `" ) && sleep 0' Using module file / Library / Python / 2.7 / site - packages / ansible / modules / system / setup . py < localhost > PUT / Users / crunchify / . ansible / tmp / ansible - local - 36562FsxMwP / tmp5SGRSa TO / Users / crunchify / . ansible / tmp / ansible - tmp - 1567010309.76 - 127517206399779 / AnsiballZ_setup . py < localhost > EXEC / bin / sh - c 'chmod u+x /Users/crunchify/.ansible/tmp/ansible-tmp-1567010309.76-127517206399779/ /Users/crunchify/.ansible/tmp/ansible-tmp-1567010309.76-127517206399779/AnsiballZ_setup.py && sleep 0' < localhost > EXEC / bin / sh - c 'python /Users/crunchify/.ansible/tmp/ansible-tmp-1567010309.76-127517206399779/AnsiballZ_setup.py && sleep 0' < localhost > EXEC / bin / sh - c 'rm -f -r /Users/crunchify/.ansible/tmp/ansible-tmp-1567010309.76-127517206399779/ > /dev/null 2>&1 && sleep 0' ok : [ localhost ] META : ran handlers TASK [ delete file ] ********************************************************************************************************************************************* task path : / Users / crunchify / Documents / ansible / crunchify - delete - recreate - ansible . yml : 8 < localhost > ESTABLISH LOCAL CONNECTION FOR USER : crunchify < localhost > EXEC / bin / sh - c 'echo ~crunchify && sleep 0' < localhost > EXEC / bin / sh - c '( umask 77 && mkdir -p "` echo /Users/crunchify/.ansible/tmp/ansible-tmp-1567010310.35-144146434104750 `" && echo ansible-tmp-1567010310.35-144146434104750="` echo /Users/crunchify/.ansible/tmp/ansible-tmp-1567010310.35-144146434104750 `" ) && sleep 0' Using module file / Library / Python / 2.7 / site - packages / ansible / modules / files / file . py < localhost > PUT / Users / crunchify / . ansible / tmp / ansible - local - 36562FsxMwP / tmpvL0NpJ TO / Users / crunchify / . ansible / tmp / ansible - tmp - 1567010310.35 - 144146434104750 / AnsiballZ_file . py < localhost > EXEC / bin / sh - c 'chmod u+x /Users/crunchify/.ansible/tmp/ansible-tmp-1567010310.35-144146434104750/ /Users/crunchify/.ansible/tmp/ansible-tmp-1567010310.35-144146434104750/AnsiballZ_file.py && sleep 0' < localhost > EXEC / bin / sh - c 'python /Users/crunchify/.ansible/tmp/ansible-tmp-1567010310.35-144146434104750/AnsiballZ_file.py && sleep 0' < localhost > EXEC / bin / sh - c 'rm -f -r /Users/crunchify/.ansible/tmp/ansible-tmp-1567010310.35-144146434104750/ > /dev/null 2>&1 && sleep 0' changed : [ localhost ] = > { "changed" : true , "diff" : { "after" : { "path" : "crunchify.txt" , "state" : "absent" } , "before" : { "path" : "crunchify.txt" , "state" : "file" } } , "invocation" : { "module_args" : { "_diff_peek" : null , "_original_basename" : null , "access_time" : null , "access_time_format" : "%Y%m%d%H%M.%S" , "attributes" : null , "backup" : null , "content" : null , "delimiter" : null , "directory_mode" : null , "follow" : true , "force" : false , "group" : null , "mode" : null , "modification_time" : null , "modification_time_format" : "%Y%m%d%H%M.%S" , "owner" : null , "path" : "crunchify.txt" , "recurse" : false , "regexp" : null , "remote_src" : null , "selevel" : null , "serole" : null , "setype" : null , "seuser" : null , "src" : null , "state" : "absent" , "unsafe_writes" : null } } , "path" : "crunchify.txt" , "state" : "absent" } TASK [ Ansible create file if it doesn 't exist example] ********************************************************************************************************* task path: /Users/crunchify/Documents/ansible/crunchify-delete-recreate-ansible.yml:14 <localhost> ESTABLISH LOCAL CONNECTION FOR USER: crunchify <localhost> EXEC /bin/sh -c ' echo ~ crunchify && sleep 0 ' <localhost> EXEC /bin/sh -c ' ( umask 77 && mkdir - p "` echo /Users/crunchify/.ansible/tmp/ansible-tmp-1567010310.67-150889598387355 `" && echo ansible - tmp - 1567010310.67 - 150889598387355 = "` echo /Users/crunchify/.ansible/tmp/ansible-tmp-1567010310.67-150889598387355 `" ) && sleep 0 ' Using module file /Library/Python/2.7/site-packages/ansible/modules/files/file.py <localhost> PUT /Users/crunchify/.ansible/tmp/ansible-local-36562FsxMwP/tmpim0wPm TO /Users/crunchify/.ansible/tmp/ansible-tmp-1567010310.67-150889598387355/AnsiballZ_file.py <localhost> EXEC /bin/sh -c ' chmod u + x / Users / crunchify / . ansible / tmp / ansible - tmp - 1567010310.67 - 150889598387355 / / Users / crunchify / . ansible / tmp / ansible - tmp - 1567010310.67 - 150889598387355 / AnsiballZ_file . py && sleep 0 ' <localhost> EXEC /bin/sh -c ' python / Users / crunchify / . ansible / tmp / ansible - tmp - 1567010310.67 - 150889598387355 / AnsiballZ_file . py && sleep 0 ' <localhost> EXEC /bin/sh -c ' rm - f - r / Users / crunchify / . ansible / tmp / ansible - tmp - 1567010310.67 - 150889598387355 / > / dev / null 2 > &1 && sleep 0 ' changed : [ localhost ] = > { "changed" : true , "dest" : "crunchify.txt" , "diff" : { "after" : { "atime" : 1567010310.795358 , "mtime" : 1567010310.795358 , "path" : "crunchify.txt" , "state" : "touch" } , "before" : { "atime" : 1567010310.795286 , "mtime" : 1567010310.795286 , "path" : "crunchify.txt" , "state" : "absent" } } , "gid" : 20 , "group" : "staff" , "invocation" : { "module_args" : { "_diff_peek" : null , "_original_basename" : null , "access_time" : null , "access_time_format" : "%Y%m%d%H%M.%S" , "attributes" : null , "backup" : null , "content" : null , "delimiter" : null , "directory_mode" : null , "follow" : true , "force" : false , "group" : null , "mode" : null , "modification_time" : null , "modification_time_format" : "%Y%m%d%H%M.%S" , "owner" : null , "path" : "crunchify.txt" , "recurse" : false , "regexp" : null , "remote_src" : null , "selevel" : null , "serole" : null , "setype" : null , "seuser" : null , "src" : null , "state" : "touch" , "unsafe_writes" : null } } , "mode" : "0644" , "owner" : "crunchify" , "size" : 0 , "state" : "file" , "uid" : 502 } META : ran handlers META : ran handlers PLAY RECAP * **************************************************************************************************************************************************** localhost : ok = 3 changed = 2 unreachable = 0 failed = 0 |
وهذا كل شيء. سيؤدي دليل التشغيل أعلاه إلى حذف ملف موجود باسم crunchify.txt
وسيقوم بإنشاء ملف جديد بمحتوى فارغ.

كالعادة ، أخبرنا بأي استعلام أو أي مشكلة تعمل فوق Ansible Playbook.