{"id":463,"date":"2016-01-11T21:48:00","date_gmt":"2016-01-11T13:48:00","guid":{"rendered":"http:\/\/www.ipcpu.com\/?p=463"},"modified":"2016-01-11T21:48:00","modified_gmt":"2016-01-11T13:48:00","slug":"ansible-setup-when","status":"publish","type":"post","link":"https:\/\/c.ipcpu.com\/2016\/01\/ansible-setup-when\/","title":{"rendered":"Ansible\u5165\u95e8setup\u6a21\u5757\u548c\u6761\u4ef6\u5224\u65ad"},"content":{"rendered":"

Ansible\u5165\u95e8setup\u6a21\u5757\u548c\u6761\u4ef6\u5224\u65ad.md<\/p>\n

\u4e00\u3001setup\u6a21\u5757<\/h2>\n

setup\u6a21\u5757\u7528\u4e8e\u6536\u96c6\u8fdc\u7a0b\u4e3b\u673a\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\u3002
\u800c\u5728playbook\u4e2d\uff0c\u9ed8\u8ba4\u53c2\u6570\"gather_facts: True\"\u7684\u542b\u4e49\u5c31\u662f\u5728\u8fdc\u7a0b\u4e3b\u673a\u8fd0\u884csetup\u6a21\u5757\uff0c\u5e76\u5c06\u6536\u96c6\u7684\u4fe1\u606f\u8bb0\u5f55\u8d77\u6765\u3002<\/p>\n

\u8fd9\u6837\u5728\u540e\u9762\u7684playbook\u91cc\u9762\u53ef\u4ee5\u8c03\u7528\u5e76\u8fdb\u884c\u4e00\u4e9b\u5224\u65ad\u548c\u5bf9\u7167\u3002<\/p>\n

\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a<\/p>\n

  1. [<\/span>root@ansible test<\/span>]<\/span>$ansible all <\/span>-<\/span>m setup <\/span>|<\/span>more<\/span><\/code><\/li>
  2. 211.127<\/span>.<\/span>129.182<\/span> <\/span>|<\/span> success <\/span>>><\/span> <\/span>{<\/span><\/code><\/li>
  3. <\/span>\"ansible_facts\"<\/span>:<\/span> <\/span>{<\/span><\/code><\/li>
  4. <\/span>\"ansible_all_ipv4_addresses\"<\/span>:<\/span> <\/span>[<\/span><\/code><\/li>
  5. <\/span>\"211.127.129.182\"<\/span><\/code><\/li>
  6. <\/span>],<\/span> <\/span><\/code><\/li>
  7. <\/span>\"ansible_all_ipv6_addresses\"<\/span>:<\/span> <\/span>[],<\/span> <\/span><\/code><\/li>
  8. <\/span>\"ansible_architecture\"<\/span>:<\/span> <\/span>\"x86_64\"<\/span>,<\/span> <\/span><\/code><\/li>
  9. <\/span>\"ansible_bios_date\"<\/span>:<\/span> <\/span>\"09\/21\/2014\"<\/span>,<\/span> <\/span><\/code><\/li>
  10. <\/span>\"ansible_bios_version\"<\/span>:<\/span> <\/span>\"6.00\"<\/span>,<\/span> <\/span><\/code><\/li>
  11. <\/span>\"ansible_cmdline\"<\/span>:<\/span> <\/span>{<\/span><\/code><\/li>
  12. <\/span>\"KEYBOARDTYPE\"<\/span>:<\/span> <\/span>\"pc\"<\/span>,<\/span> <\/span><\/code><\/li>
  13. <\/span>\"KEYTABLE\"<\/span>:<\/span> <\/span>\"us\"<\/span>,<\/span> <\/span><\/code><\/li>
  14. <\/span>\"LANG\"<\/span>:<\/span> <\/span>\"en_US.UTF-8\"<\/span>,<\/span> <\/span><\/code><\/li>
  15. <\/code><\/li>
  16. OUTPUT OMITTED<\/span>.<\/span><\/code><\/li><\/ol><\/pre>\n

    \u56e0\u663e\u793a\u7bc7\u5e45\u8fc7\u957f\uff0c\u8fd9\u5217\u53ea\u5217\u4e3e\u4e00\u4e9b\u5e38\u7528\u9879\u76ee<\/p>\n

    1. \"ansible_all_ipv4_addresses\"<\/span>:<\/span> <\/span>[<\/span><\/code><\/li>
    2. <\/span>\"211.97.148.137\"<\/span>,<\/span> <\/span><\/code><\/li>
    3. <\/span>\"10.6.7.24\"<\/span><\/code><\/li>
    4. <\/span>],<\/span> <\/span><\/code><\/li>
    5. #@\u8fd9\u91cc\u5217\u51fa\u4e86\u6240\u6709IPv4\u5730\u5740<\/span><\/code><\/li>
    6. \"ansible_architecture\"<\/span>:<\/span> <\/span>\"x86_64\"<\/span>,<\/span><\/code><\/li>
    7. #@\u64cd\u4f5c\u7cfb\u7edf\u67b6\u6784<\/span><\/code><\/li>
    8. \"ansible_distribution\"<\/span>:<\/span> <\/span>\"RedHat\"<\/span>,<\/span> <\/span><\/code><\/li>
    9. \"ansible_distribution_major_version\"<\/span>:<\/span> <\/span>\"5\"<\/span>,<\/span> <\/span><\/code><\/li>
    10. \"ansible_distribution_release\"<\/span>:<\/span> <\/span>\"Tikanga\"<\/span>,<\/span> <\/span><\/code><\/li>
    11. \"ansible_distribution_version\"<\/span>:<\/span> <\/span>\"5.8\"<\/span>,<\/span> <\/span><\/code><\/li>
    12. #@\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c\u4fe1\u606f<\/span><\/code><\/li>
    13. \"ansible_eth0\"<\/span>:<\/span> <\/span>{<\/span><\/code><\/li>
    14. <\/span>\"active\"<\/span>:<\/span> <\/span>true<\/span>,<\/span> <\/span><\/code><\/li>
    15. <\/span>\"device\"<\/span>:<\/span> <\/span>\"eth0\"<\/span>,<\/span> <\/span><\/code><\/li>
    16. <\/span>\"ipv4\"<\/span>:<\/span> <\/span>{<\/span><\/code><\/li>
    17. <\/span>\"address\"<\/span>:<\/span> <\/span>\"10.6.7.24\"<\/span>,<\/span> <\/span><\/code><\/li>
    18. <\/span>\"netmask\"<\/span>:<\/span> <\/span>\"255.255.255.0\"<\/span>,<\/span> <\/span><\/code><\/li>
    19. <\/span>\"network\"<\/span>:<\/span> <\/span>\"10.6.7.0\"<\/span><\/code><\/li>
    20. <\/span>},<\/span> <\/span><\/code><\/li>
    21. <\/span>\"macaddress\"<\/span>:<\/span> <\/span>\"52:54:00:89:ba:15\"<\/span>,<\/span><\/code><\/li>
    22. #@\u7f51\u5361eth0\u7684\u4fe1\u606f<\/span><\/code><\/li>
    23. \"ansible_kernel\"<\/span>:<\/span> <\/span>\"2.6.18-308.el5\"<\/span>,<\/span><\/code><\/li>
    24. #@\u5185\u6838\u7248\u672c<\/span><\/code><\/li><\/ol><\/pre>\n

      \u5982\u679c\u4f7f\u7528ansible\u64cd\u4f5c\u4e0d\u540c\u7684\u64cd\u4f5c\u7cfb\u7edf\u4f8b\u5982Redhat\u548cDebian\uff0c\u4f7f\u7528\u524d\u9700\u8981\u5bf9\u7167\u597d\u76f8\u5173\u7684\u8f93\u51fa\u9879\uff0c\u627e\u51fa\u4e0d\u540c\u7684\u5730\u65b9\u548c\u76f8\u540c\u7684\u5730\u65b9\u624d\u80fd\u51c6\u786e\u4f7f\u7528\u3002<\/p>\n

      \u4e8c\u3001\u6761\u4ef6\u5224\u65ad<\/h2>\n

      \u73b0\u5728\u6709\u8fd9\u6837\u4e00\u4e2a\u9700\u6c42\uff0c\u751f\u4ea7\u73af\u5883\u73b0\u5728\u6709Redhat 5 \u548cCentOS 6 \u4e24\u79cd\u64cd\u4f5c\u7cfb\u7edf\u73af\u5883\uff0c\u90fd\u9700\u8981\u5728syslog\u914d\u7f6e\u6587\u4ef6\u6dfb\u52a0\u4e00\u4e2a\u8fdc\u7a0bsyslog\u670d\u52a1\u5668\uff0c\u5e76\u4e14\u6dfb\u52a0\u5b8c\u6210\u540e\u91cd\u542f\u670d\u52a1\u5668\u3002<\/p>\n

      \u6240\u4ee5\u6211\u4eec\u6536\u96c6\u4e86\u4e24\u4e2a\u64cd\u4f5c\u7cfb\u7edf\u76f8\u5173\u7684\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n

      1. \"ansible_distribution\"<\/span>:<\/span> <\/span>\"RedHat\"<\/span>,<\/span> <\/span><\/code><\/li>
      2. \"ansible_distribution_major_version\"<\/span>:<\/span> <\/span>\"5\"<\/span>,<\/span> <\/span><\/code><\/li>
      3. \"ansible_distribution_release\"<\/span>:<\/span> <\/span>\"Tikanga\"<\/span>,<\/span> <\/span><\/code><\/li>
      4. \"ansible_distribution_version\"<\/span>:<\/span> <\/span>\"5.8\"<\/span>,<\/span><\/code><\/li>
      5. \"ansible_os_family\"<\/span>:<\/span> <\/span>\"RedHat\"<\/span>,<\/span> <\/span><\/code><\/li>
      6. <\/code><\/li>
      7. \"ansible_distribution\"<\/span>:<\/span> <\/span>\"CentOS\"<\/span>,<\/span> <\/span><\/code><\/li>
      8. \"ansible_distribution_major_version\"<\/span>:<\/span> <\/span>\"6\"<\/span>,<\/span> <\/span><\/code><\/li>
      9. \"ansible_distribution_release\"<\/span>:<\/span> <\/span>\"Final\"<\/span>,<\/span> <\/span><\/code><\/li>
      10. \"ansible_distribution_version\"<\/span>:<\/span> <\/span>\"6.4\"<\/span>,<\/span> <\/span><\/code><\/li>
      11. \"ansible_os_family\"<\/span>:<\/span> <\/span>\"RedHat\"<\/span>,<\/span><\/code><\/li><\/ol><\/pre>\n

        \u63a5\u4e0b\u6765\u6211\u4eec\u5c31\u53ef\u4ee5\u7f16\u5199playbook<\/p>\n

        1. ---<\/span><\/code><\/li>
        2. -<\/span> hosts<\/span>:<\/span> webserver<\/span><\/code><\/li>
        3. vars<\/span>:<\/span> <\/span><\/code><\/li>
        4. logserver<\/span>:<\/span> <\/span>10.127<\/span>.<\/span>2.170<\/span><\/code><\/li>
        5. gather_facts<\/span>:<\/span> <\/span>True<\/span> <\/span><\/code><\/li>
        6. <\/code><\/li>
        7. tasks<\/span>:<\/span><\/code><\/li>
        8. <\/code><\/li>
        9. <\/span>-<\/span> name<\/span>:<\/span> add conf to config files to <\/span>CentOS6<\/span><\/code><\/li>
        10. lineinfile<\/span>:<\/span> dest<\/span>=<\/span>\/etc\/<\/span>rsyslog<\/span>.<\/span>conf line<\/span>=<\/span>\"*.* @{{ logserver }}\"<\/span><\/code><\/li>
        11. <\/span>when<\/span>:<\/span> ansible_distribution <\/span>==<\/span> <\/span>'CentOS'<\/span> <\/span>and<\/span> ansible_distribution_major_version <\/span>==<\/span> <\/span>\"6\"<\/span><\/code><\/li>
        12. <\/code><\/li>
        13. <\/span>-<\/span> name<\/span>:<\/span> restart syslog <\/span>@CentOS6<\/span><\/code><\/li>
        14. <\/span>when<\/span>:<\/span> ansible_distribution <\/span>==<\/span> <\/span>'CentOS'<\/span> <\/span>and<\/span> ansible_distribution_major_version <\/span>==<\/span> <\/span>\"6\"<\/span><\/code><\/li>
        15. service<\/span>:<\/span> name<\/span>=<\/span>rsyslog state<\/span>=<\/span>restarted<\/span><\/code><\/li>
        16. <\/code><\/li>
        17. <\/span>-<\/span> name<\/span>:<\/span> add conf to config files to <\/span>RedHat<\/span> <\/span>5<\/span><\/code><\/li>
        18. lineinfile<\/span>:<\/span> dest<\/span>=<\/span>\/etc\/<\/span>syslog<\/span>.<\/span>conf line<\/span>=<\/span>\"*.* @{{ logserver }}\"<\/span><\/code><\/li>
        19. <\/span>when<\/span>:<\/span> ansible_distribution <\/span>==<\/span> <\/span>'RedHat'<\/span> <\/span>and<\/span> ansible_distribution_major_version <\/span>==<\/span> <\/span>\"5\"<\/span><\/code><\/li>
        20. <\/code><\/li>
        21. <\/span>-<\/span> name<\/span>:<\/span> restart syslog <\/span>@RedHat<\/span> <\/span>5<\/span><\/code><\/li>
        22. <\/span>when<\/span>:<\/span> ansible_distribution <\/span>==<\/span> <\/span>'RedHat'<\/span> <\/span>and<\/span> ansible_distribution_major_version <\/span>==<\/span> <\/span>\"5\"<\/span><\/code><\/li>
        23. service<\/span>:<\/span> name<\/span>=<\/span>syslog state<\/span>=<\/span>restarted<\/span><\/code><\/li><\/ol><\/pre>\n

          \u5728\u8fd9\u91cc\u6211\u4eec\u8fdb\u884c\u4e86\u64cd\u4f5c\u7cfb\u7edf\u7684\u5224\u65ad\uff0c\u5982\u679c\u662fCentOS 6 \u5219\u4fee\u6539rsyslog.conf\u5e76\u91cd\u542frsyslog\u670d\u52a1\u3002
          \u5982\u679c\u662fRedHat 5 \u5219\u4fee\u6539syslog.conf\uff0c\u5e76\u91cd\u542fsyslog\u670d\u52a1\u3002<\/p>\n

          \u5728\u4fee\u6539\u6587\u4ef6\u65f6\u91c7\u7528\u4e86lineinfile\u6a21\u5757\uff0c\u53ea\u8981\u6587\u4ef6\u4e2d\u6709\u8bed\u53e5\u5b58\u5728\uff0c\u4e0b\u6b21\u8fd0\u884c\u5c31\u4e0d\u4f1a\u6539\u53d8\uff0c\u6240\u4ee5playbook\u53ef\u4ee5\u591a\u6b21\u8fd0\u884c\u3002<\/p>\n

          \u4e00\u70b9\u7591\u60d1<\/strong>
          \u6709\u540c\u5b66\u8981\u95ee\uff0c\u4e3a\u4ec0\u4e48\u8981\u8fdb\u884c\u56db\u6b21when\u5224\u65ad\uff0c\u4e24\u6b21\u4e0d\u5c31\u591f\u4e86\uff0c\u5199\u6210\u8fd9\u6837<\/p>\n

          1. <\/span>-<\/span> name<\/span>:<\/span> restart syslog <\/span>@CentOS6<\/span><\/code><\/li>
          2. <\/span>when<\/span>:<\/span> ansible_distribution <\/span>==<\/span> <\/span>'CentOS'<\/span> <\/span>and<\/span> ansible_distribution_major_version <\/span>==<\/span> <\/span>\"6\"<\/span><\/code><\/li>
          3. lineinfile<\/span>:<\/span> dest<\/span>=<\/span>\/etc\/<\/span>rsyslog<\/span>.<\/span>conf line<\/span>=<\/span>\"*.* @{{ logserver }}\"<\/span><\/code><\/li>
          4. service<\/span>:<\/span> name<\/span>=<\/span>rsyslog state<\/span>=<\/span>restarted<\/span><\/code><\/li><\/ol><\/pre>\n

            \u8fd9\u662f\u4e0d\u884c\u7684\uff0cansible\u8981\u6c42\u6bcf\u4e00\u4e2aplay\u91cc\u9762\u667a\u80fd\u4f7f\u7528\u4e00\u4e2a\u6a21\u5757\uff0c\u4f7f\u7528\u591a\u4e2a\u4f1a\u62a5\u9519
            ERROR: multiple actions specified in task<\/p>\n

            \u53c2\u8003\u8d44\u6599<\/h2>\n

            http:\/\/sapser.github.io\/ansible\/2014\/07\/21\/ansible-conditionals\/<\/a><\/p>\n

            \u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1aIPCPU-\u7f51\u7edc\u4e4b\u8def<\/a> » Ansible\u5165\u95e8setup\u6a21\u5757\u548c\u6761\u4ef6\u5224\u65ad<\/a><\/p>","protected":false},"excerpt":{"rendered":"

            Ansible\u5165\u95e8setup\u6a21\u5757\u548c\u6761\u4ef6\u5224\u65ad.md \u4e00\u3001setup\u6a21\u5757 setup\u6a21\u5757\u7528\u4e8e\u6536\u96c6\u8fdc\u7a0b\u4e3b\u673a\u7684\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\u3002\u800c\u5728playbook\u4e2d\uff0c\u9ed8\u8ba4\u53c2\u6570”gather_facts: True”\u7684\u542b\u4e49\u5c31\u662f\u5728\u8fdc\u7a0b\u4e3b\u673a\u8fd0\u884csetup\u6a21\u5757\uff0c\u5e76\u5c06\u6536\u96c6\u7684\u4fe1\u606f\u8bb0\u5f55\u8d77\u6765\u3002 \u8fd9\u6837\u5728\u540e\u9762\u7684playbook\u91cc\u9762\u53ef\u4ee5\u8c03\u7528\u5e76\u8fdb\u884c\u4e00\u4e9b\u5224\u65ad\u548c\u5bf9\u7167\u3002 \u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a [root@ansible test]$ansible all -m setup |more211.127.129.182 | success >> { “ansible_facts”: { “ansible_all_ipv4_addresses”: [ “211.127.129.182” ], “ansible_all_ipv6_addresses”: [], “ansible_architecture”: “x86_64”, “ansible_bios_date”: “09\/21\/2014”, “ansible_bios_version”: “6.00”, “ansible_cmdline”: { “KEYBOARDTYPE”: “pc”, “KEYTABLE”: “us”, “LANG”: “en_US.UTF-8”, OUTPUT OMITTED. \u56e0\u663e\u793a\u7bc7\u5e45\u8fc7\u957f\uff0c\u8fd9\u5217\u53ea\u5217\u4e3e\u4e00\u4e9b\u5e38\u7528\u9879\u76ee “ansible_all_ipv4_addresses”: [ “211.97.148.137”, “10.6.7.24” ], #@\u8fd9\u91cc\u5217\u51fa\u4e86\u6240\u6709IPv4\u5730\u5740”ansible_architecture”: “x86_64″,#@\u64cd\u4f5c\u7cfb\u7edf\u67b6\u6784”ansible_distribution”: “RedHat”, “ansible_distribution_major_version”: “5”, “ansible_distribution_release”: “Tikanga”, “ansible_distribution_version”: “5.8”, […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[13],"tags":[45],"_links":{"self":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/463"}],"collection":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/comments?post=463"}],"version-history":[{"count":0,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/463\/revisions"}],"wp:attachment":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/media?parent=463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/categories?post=463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/tags?post=463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}