{"id":42646,"date":"2022-09-24T07:03:44","date_gmt":"2023-05-08T00:44:38","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/"},"modified":"2024-01-15T11:29:41","modified_gmt":"2024-01-15T03:29:41","slug":"%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/","title":{"rendered":"\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible"},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<p>\u7531\u4e8eCentOS\u7684yum\u4ed3\u5e93\u4e2d\u7684\u7248\u672c\u7a0d\u65e7\uff0c\u6211\u51b3\u5b9a\u4ece\u6e90\u4ee3\u7801\u7f16\u8bd1\u5e76\u5b89\u88c5\u3002\u4e0b\u9762\u662f\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible 2.8.0\u7684\u6b65\u9aa4\u3002<\/p>\n<p>\u6211\u5c06\u6309\u7167Ansible\u516c\u5f0f\u5b89\u88c5\u6307\u5357\u8fdb\u884c\u64cd\u4f5c\u3002<\/p>\n<h1>\u73af\u5883<\/h1>\n<p>CentOS 7: \u4e2d\u6587\uff1aCentOS 7\uff1b<\/p>\n<pre class=\"post-pre\"><code>$ uname -a\r\nLinux manager 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU\/Linux\r\n$ cat \/etc\/redhat-release \r\nCentOS Linux release 7.6.1810 (Core) \r\n<\/code><\/pre>\n<h1>\u6b65\u9aa4<\/h1>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>git clone <span class=\"nt\">-b<\/span> stable-2.8 https:\/\/github.com\/ansible\/ansible.git\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cd <\/span>ansible\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">source<\/span> .\/hacking\/env-setup\r\n<span class=\"nv\">$ <\/span>curl https:\/\/bootstrap.pypa.io\/get-pip.py <span class=\"nt\">-o<\/span> get-pip.py\r\n<span class=\"nv\">$ <\/span>python get-pip.py <span class=\"nt\">--user<\/span>\r\n<span class=\"nv\">$ <\/span>pip <span class=\"nb\">install<\/span> <span class=\"nt\">--user<\/span> <span class=\"nt\">-r<\/span> .\/requirements.txt \r\n<span class=\"nv\">$ <\/span>git pull <span class=\"nt\">--rebase<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ LANG<\/span><span class=\"o\">=<\/span>en_US git submodule update <span class=\"nt\">--init<\/span> <span class=\"nt\">--recursive<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">echo<\/span> <span class=\"o\">{<\/span>host<span class=\"o\">}<\/span> <span class=\"o\">&gt;<\/span> ~\/ansible_hosts\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">export <\/span><span class=\"nv\">ANSIBLE_INVENTORY<\/span><span class=\"o\">=<\/span>~\/ansible_hosts\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>ansible all <span class=\"nt\">-m<\/span> <span class=\"s1\">'ping'<\/span> <span class=\"nt\">--ask-pass<\/span>\r\n<\/code><\/pre>\n<p>\u203b\u5982\u679c\u4e3b\u673a\u6307\u5b9a\u4e3alocalhost\uff0c\u5219\u65e0\u6cd5\u901a\u8fc7ssh\u8fde\u63a5\u3002<\/p>\n<h2>\u8bf7\u53c2\u8003<\/h2>\n<p>\u8fd9\u53ea\u662f\u4e00\u5c0f\u90e8\u5206\uff0c\u7ed3\u679c\u5374\u8ba9\u6211\u4e0d\u5f97\u4e0d\u8fdb\u884c\u5404\u79cd\u5404\u6837\u7684\u8c03\u67e5\u3002<br \/>\n\u6211\u4e86\u89e3\u5230\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a\u5206\u652f\u6216\u6807\u7b7e\u6765\u4f7f\u7528git clone\u3002<\/p>\n<h3>\u9644\u8d60<\/h3>\n<p>\u6211\u5728Vagrantfile\u4e2d\u6dfb\u52a0\u4e86\u672c\u6b21\u7684\u6b65\u9aa4\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"s\">Vagrant.configure(\"2\") do |config|<\/span>\r\n  <span class=\"s\"># manager-VM<\/span>\r\n  <span class=\"s\">config.vm.define \"manager\" do |manager|<\/span>\r\n    <span class=\"s\">manager.vm.box = \"centos\/7\"<\/span>\r\n    <span class=\"s\">manager.vm.hostname = \"manager\"<\/span>\r\n    <span class=\"s\">manager.vm.network \"private_network\", ip<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">192.168.96.5\"<\/span>\r\n    <span class=\"s\">manager.vm.synced_folder '.\/server', '\/vagrant', :mount_options =&gt; ['dmode=775', 'fmode=664']<\/span>\r\n\r\n    <span class=\"s\">manager.vm.provider \"virtualbox\" do |vb|<\/span>\r\n      <span class=\"s\">vb.memory = <\/span><span class=\"m\">1024<\/span>\r\n      <span class=\"s\">vb.cpus = <\/span><span class=\"m\">2<\/span>\r\n    <span class=\"s\">end<\/span>\r\n\r\n    <span class=\"s\">manager.vm.provision \"shell\", inline<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;&lt;-SHELL<\/span>\r\n      <span class=\"s\"># IPv6 disable<\/span>\r\n      <span class=\"s\">cp \/vagrant\/disable_ipv6.conf \/etc\/sysctl.d\/disable_ipv6.conf<\/span>\r\n      <span class=\"s\">sysctl -p \/etc\/sysctl.d\/disable_ipv6.conf<\/span>\r\n\r\n      <span class=\"s\"># update package<\/span>\r\n      <span class=\"s\"># yum update -y<\/span>\r\n      <span class=\"s\"># yum install -y ansible<\/span>\r\n      <span class=\"s\">yum install -y PyYAML libyaml \\<\/span>\r\n                     <span class=\"s\">python-babel python-backports \\<\/span>\r\n                     <span class=\"s\">python-backports-ssl_match_hostname \\<\/span>\r\n                     <span class=\"s\">python-cffi       python-enum34 \\<\/span>\r\n                     <span class=\"s\">python-httplib2   python-idna   \\<\/span>\r\n                     <span class=\"s\">python-ipaddress  python-jinja2 \\<\/span>\r\n                     <span class=\"s\">python-markupsafe python-paramiko \\<\/span>\r\n                     <span class=\"s\">python-passlib    python-ply      \\<\/span>\r\n                     <span class=\"s\">python-pycparser  python-setuptools \\<\/span>\r\n                     <span class=\"s\">python-six        python2-cryptography \\<\/span>\r\n                     <span class=\"s\">python2-jmespath  python2-pyasn1       \\<\/span>\r\n                     <span class=\"s\">sshpass           \\<\/span>\r\n                     <span class=\"s\">git<\/span>\r\n\r\n    <span class=\"s\">SHELL<\/span>\r\n\r\n    <span class=\"s\">manager.vm.provision \"shell\", name<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">Registory<\/span> <span class=\"s\">ssh-key\"<\/span><span class=\"err\">,<\/span> <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span><span class=\"s\">, inline<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;&lt;-SHELL<\/span>\r\n      <span class=\"s\"># registry ssh-key<\/span>\r\n      <span class=\"s\">ssh-keygen -N \"\" -t ed25519 -f ~\/.ssh\/id_ed25519<\/span>\r\n\r\n      <span class=\"s\"># registry known_hosts<\/span>\r\n      <span class=\"s\">ssh-keyscan -H manager &gt;&gt; ~\/.ssh\/known_hosts<\/span>\r\n\r\n      <span class=\"s\"># registry authorized_keys<\/span>\r\n      <span class=\"s\">cat ~\/.ssh\/id_ed25519.pub &gt;&gt; ~\/.ssh\/authorized_keys<\/span>\r\n      <span class=\"s\"># ssh-copy-id vagrant@manager<\/span>\r\n\r\n    <span class=\"s\">SHELL<\/span>\r\n\r\n    <span class=\"s\">manager.vm.provision \"shell\", name<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">Install<\/span> <span class=\"s\">Ansible\"<\/span><span class=\"err\">,<\/span> <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span><span class=\"s\">, inline<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;&lt;-SHELL<\/span>\r\n      <span class=\"s\"># install Ansible stable-2.8<\/span>\r\n      <span class=\"s\">git clone -b stable-2.8 https:\/\/github.com\/ansible\/ansible.git ~\/ansible<\/span>\r\n      <span class=\"s\">cd ~\/ansible<\/span>\r\n      <span class=\"s\">source .\/hacking\/env-setup<\/span>\r\n      <span class=\"s\">curl https:\/\/bootstrap.pypa.io\/get-pip.py -o get-pip.py<\/span>\r\n      <span class=\"s\">python ~\/ansible\/get-pip.py --user<\/span>\r\n      <span class=\"s\">pip install --user -r ~\/ansible\/requirements.txt<\/span>\r\n      <span class=\"s\">git pull --rebase<\/span>\r\n\r\n      <span class=\"s\">echo manager &gt; ~\/ansible_hosts<\/span>\r\n      <span class=\"s\">echo \"export ANSIBLE_INVENTORY=~\/ansible_hosts\" &gt;&gt; ~\/.bashrc<\/span>\r\n      <span class=\"s\">echo \"LANG=en_US . ~\/ansible\/hacking\/env-setup\" &gt;&gt; ~\/.bashrc<\/span>\r\n\r\n      <span class=\"s\"># copy playbook<\/span>\r\n      <span class=\"s\">cp -pR \/vagrant\/playbook ~\/<\/span>\r\n    <span class=\"s\">SHELL<\/span>\r\n  <span class=\"s\">end<\/span>\r\n<span class=\"s\">end<\/span>\r\n\r\n<\/code><\/pre>\n<p>\u203b\u4f7f\u7528libvirt\u7684\u865a\u62df\u673a\u3002\u4f7f\u7528VirtualBox\u7684\u7528\u6237\u8bf7\u66ff\u6362\u3002<br \/>\n\u203b\u5ba2\u6237\u64cd\u4f5c\u7cfb\u7edf\u4e3aCentOS7\u3002<br \/>\n\u203b\u9664\u4e86\u5b89\u88c5Ansible\u4e4b\u5916\uff0c\u8fd8\u8fdb\u884c\u4e86\u7981\u7528IPv6\u3001\u751f\u6210ssh-key\uff08ed25519\uff09\u7684\u64cd\u4f5c\u3002<br \/>\n\u203b\u5173\u4e8eAnsible\uff0c\u4f3c\u4e4e\u4e0d\u652f\u6301\u65e5\u8bed\u3002<br \/>\n\uff08\u5f53LANG=ja_JP.UTF-8\u65f6\uff0c\u51fa\u73b0\u9519\u8bef\u3002<br \/>\nmanpath: can&#8217;t set the locale; make sure $LC_* and $LANG are correct<br \/>\n\uff09<br \/>\n\u203b\u5b89\u88c5ansible\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u8b66\u544a\uff08manager: warning: no files found matching &#8216;SYMLINK_CACHE.json&#8217;\uff09\uff0c\u770b\u8d77\u6765\u50cf\u662f\u7528\u4e8e\u6d4b\u8bd5\u7684\u6587\u4ef6\uff0c\u6240\u4ee5\u5ffd\u7565\u5b83\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u7531\u4e8eCentOS\u7684yum\u4ed3\u5e93\u4e2d\u7684\u7248\u672c\u7a0d\u65e7\uff0c\u6211\u51b3\u5b9a\u4ece\u6e90\u4ee3\u7801\u7f16\u8bd1\u5e76\u5b89\u88c5\u3002\u4e0b\u9762\u662f\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible 2 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-42646","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5ansible\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u7531\u4e8eCentOS\u7684yum\u4ed3\u5e93\u4e2d\u7684\u7248\u672c\u7a0d\u65e7\uff0c\u6211\u51b3\u5b9a\u4ece\u6e90\u4ee3\u7801\u7f16\u8bd1\u5e76\u5b89\u88c5\u3002\u4e0b\u9762\u662f\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible 2 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5ansible\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-08T00:44:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-15T03:29:41+00:00\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/\",\"name\":\"\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-05-08T00:44:38+00:00\",\"dateModified\":\"2024-01-15T03:29:41+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5ansible\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible","og_description":"\u9996\u5148 \u7531\u4e8eCentOS\u7684yum\u4ed3\u5e93\u4e2d\u7684\u7248\u672c\u7a0d\u65e7\uff0c\u6211\u51b3\u5b9a\u4ece\u6e90\u4ee3\u7801\u7f16\u8bd1\u5e76\u5b89\u88c5\u3002\u4e0b\u9762\u662f\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible 2 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5ansible\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-05-08T00:44:38+00:00","article_modified_time":"2024-01-15T03:29:41+00:00","author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/","name":"\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-05-08T00:44:38+00:00","dateModified":"2024-01-15T03:29:41+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4ece\u6e90\u4ee3\u7801\u5b89\u88c5Ansible"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8e%e6%ba%90%e4%bb%a3%e7%a0%81%e5%ae%89%e8%a3%85ansible%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42646","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=42646"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42646\/revisions"}],"predecessor-version":[{"id":59061,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42646\/revisions\/59061"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=42646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=42646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=42646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}