{"id":42976,"date":"2023-02-10T17:55:03","date_gmt":"2023-04-20T17:12:59","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/"},"modified":"2024-04-29T14:02:01","modified_gmt":"2024-04-29T06:02:01","slug":"%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/","title":{"rendered":"\u4f7f\u7528Vagrant\u548cAnsible\uff0c\u5728Ubuntu16.04\u4e0a\u521b\u5efaDocker\u73af\u5883"},"content":{"rendered":"<h1>\u7b80\u4ecb<\/h1>\n<p>\u6700\u8fd1\u975e\u5e38\u70ed\u95e8\u7684\u6784\u5efa\u7ba1\u7406\u5de5\u5177Ansible\uff0c\u53ef\u4ee5\u5728Amazon EC2\u4e0a\u642d\u5efaDocker\u73af\u5883\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d500737434c4406cc5105\/2-0.jpeg\" alt=\"future.jpg\" \/><\/div>\n<h1>\u4e3a\u4ec0\u4e48\u9009\u62e9Ansible+Docker\uff1f<\/h1>\n<p>\u56e0\u4e3a\u672c\u6765\u5c31\u60f3\u8bd5\u8bd5\u4e24\u8005\u540c\u65f6\u4f7f\u7528\u7684\u3002\u4e0d\u8fc7\u4e5f\u6709\u4e00\u4e9b\u50cf\u662f\u501f\u53e3\u822c\u7684\u7406\u7531\u4e0d\u53ea\u7528Ansible\u5355\u72ec\u8fdb\u884c\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u8272\u3093\u306a\u30b5\u30fc\u30d3\u30b9\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u30b5\u30fc\u30d0\u306b\u76f4\u63a5\u6df7\u305c\u3066\u914d\u7f6e\u3057\u305f\u304f\u306a\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b5\u30fc\u30d3\u30b9\u5358\u4f53\u3067\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3084\u74b0\u5883\u3092\u7834\u58ca\u3068\u304b\u3057\u305f\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u5404\u30b5\u30fc\u30d3\u30b9\u306b\u5408\u308f\u305b\u3066\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u306e\u6574\u5408\u6027\u5408\u308f\u305b\u3066\u3063\u3066\u4f5c\u696d\u304c\u9762\u5012\u304f\u3055\u3044<\/ul>\n<h1>\u5b9e\u65bd\u7684\u5185\u5bb9 (Sh\u00ed sh\u012b de<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">AmazonEC2 + Vagrant\u306e\u5c0e\u5165(\u5b9f\u65bd\u6e08\u307f)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ansible\u306ePlaybooks\u4f5c\u6210<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Vagrantfile\u306e\u4fee\u6b63<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Docker\u306e\u52d5\u4f5c\u78ba\u8a8d<\/ul>\n<h2>\u4f7f\u7528 AmazonEC2 + Vagrant \u8fdb\u884c\u5b89\u88c5<\/h2>\n<p>\u8bf7\u53c2\u8003\u8fd9\u8fb9\u7684\u5185\u5bb9<\/p>\n<h2>\u7f16\u5199Ansible Playbooks<\/h2>\n<pre class=\"post-pre\"><code>$ tree\r\n.\r\n\u251c\u2500\u2500 README.md\r\n\u251c\u2500\u2500 Vagrantfile\r\n\u251c\u2500\u2500 docs\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 ec2\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 setup.md\r\n\u2514\u2500\u2500 setup\r\n    \u2514\u2500\u2500 provision\r\n        \u2514\u2500\u2500 docker.yml\r\n\r\n4 directories, 4 files\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>- hosts: all\r\n  become: yes\r\n  tasks:\r\n    - name: apt-get install packages\r\n      apt: pkg={{ item }} state=present update_cache=yes\r\n      with_items:\r\n        - curl\r\n        - apt-transport-https\r\n        - ca-certificates\r\n\r\n    - name: set dockers official gpg key\r\n      apt_key:\r\n          url: \"https:\/\/download.docker.com\/linux\/ubuntu\/gpg\"\r\n          state: present\r\n      register: set_key\r\n\r\n    - name: set up the stable repository\r\n      apt_repository:\r\n        repo: deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu {{ ansible_distribution_release }} stable\r\n        state: present\r\n      when: set_key\r\n      register: set_repo\r\n\r\n    - name: install docker-ce\r\n      apt: pkg=docker-ce state=present update_cache=yes\r\n      when:  set_repo\r\n<\/code><\/pre>\n<h2>\u4fee\u6539Vagrantfile<\/h2>\n<p>\u8981\u70b9\u6709\u4e24\u4e2a<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b5\u30fc\u30d0\u5074\u306bAnsible\u306ePlaybook\u3092\u9001\u4fe1\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Provision\u306bansible_local\u3092\u8a2d\u5b9a\u3057\u3001\u30b5\u30fc\u30d0\u3067Ansible\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb+\u5b9f\u884c\u3092\u884c\u3046<\/ul>\n<pre class=\"post-pre\"><code>  Dotenv.load\r\n\r\n  Vagrant.configure(\"2\") do |config|\r\n    # Vagrant Box\r\n    config.vm.box = \"dummy\"\r\n\r\n+   # Rsync Directory\r\n+   config.vm.synced_folder \"setup\", \"\/vagrant\", type: \"rsync\"\r\n\r\n+   # Ansible\r\n+   config.vm.provision \"ansible_local\" do |ansible|\r\n+     ansible.playbook = \"provision\/docker.yml\"\r\n+   end\r\n\r\n    # AWS\r\n    config.vm.provider :aws do |aws, override|\r\n        ## \u7701\u7565...\r\n    end\r\n  end\r\n<\/code><\/pre>\n<h2>\u786e\u8ba4Docker\u7684\u64cd\u4f5c\uff1f<\/h2>\n<pre class=\"post-pre\"><code>$ vagrant up\r\nBringing machine 'default' up with 'aws' provider...\r\n==&gt; default: Warning! The AWS provider doesn't support any of the Vagrant\r\n==&gt; default: high-level network configurations (`config.vm.network`). They\r\n==&gt; default: will be silently ignored.\r\n==&gt; default: Launching an instance with the following settings...\r\n==&gt; default:  -- Type: t2.micro\r\n==&gt; default:  -- AMI: ami-c68fc7a1\r\n==&gt; default:  -- Region: ap-northeast-1\r\n==&gt; default:  -- Availability Zone: ap-northeast-1c\r\n==&gt; default:  -- Keypair: default\r\n==&gt; default:  -- Subnet ID: subnet-594ac601\r\n==&gt; default:  -- Elastic IP: true\r\n==&gt; default:  -- User Data: yes\r\n==&gt; default:  -- Security Groups: [\"sg-8897d1ef\"]\r\n==&gt; default:  -- User Data: sed -i -e 's\/^\\(Defaults.*requiretty\\)\/#\\1\/' \/etc\/sudoers\r\n==&gt; default:  -- Block Device Mapping: []\r\n==&gt; default:  -- Terminate On Shutdown: false\r\n==&gt; default:  -- Monitoring: false\r\n==&gt; default:  -- EBS optimized: false\r\n==&gt; default:  -- Source Destination check:\r\n==&gt; default:  -- Assigning a public IP address in a VPC: true\r\n==&gt; default:  -- VPC tenancy specification: default\r\n==&gt; default: Waiting for instance to become \"ready\"...\r\n==&gt; default: Waiting for SSH to become available...\r\n==&gt; default: Machine is booted and ready for use!\r\n==&gt; default: Rsyncing folder: \/mnt\/c\/Users\/kazuyoshi\/aws-training\/setup\/ =&gt; \/vagrant\r\n==&gt; default: Running provisioner: ansible_local...\r\n    default: Installing Ansible...\r\n    default: Running ansible-playbook...\r\n\r\nPLAY [all] *********************************************************************\r\n\r\nTASK [setup] *******************************************************************\r\nok: [default]\r\n\r\nTASK [apt-get install packages] ************************************************\r\nok: [default] =&gt; (item=[u'curl', u'apt-transport-https', u'ca-certificates'])\r\n\r\nTASK [set dockers official gpg key] ********************************************\r\nchanged: [default]\r\n\r\nTASK [set up the stable repository] ********************************************\r\nchanged: [default]\r\n\r\nTASK [install docker-ce] *******************************************************\r\nchanged: [default]\r\n\r\nPLAY RECAP *********************************************************************\r\ndefault                    : ok=5    changed=3    unreachable=0    failed=0\r\n$ vagrant ssh\r\nWelcome to Ubuntu 16.04.2 LTS (GNU\/Linux 4.4.0-64-generic x86_64)\r\n\r\n * Documentation:  https:\/\/help.ubuntu.com\r\n * Management:     https:\/\/landscape.canonical.com\r\n * Support:        https:\/\/ubuntu.com\/advantage\r\n\r\n  Get cloud support with Ubuntu Advantage Cloud Guest:\r\n    http:\/\/www.ubuntu.com\/business\/services\/cloud\r\n\r\n10 packages can be updated.\r\n0 updates are security updates.\r\n\r\n\r\n$ sudo docker run hello-world\r\nUnable to find image 'hello-world:latest' locally\r\nlatest: Pulling from library\/hello-world\r\n78445dd45222: Pull complete\r\nDigest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7\r\nStatus: Downloaded newer image for hello-world:latest\r\n\r\nHello from Docker!\r\nThis message shows that your installation appears to be working correctly.\r\n\r\nTo generate this message, Docker took the following steps:\r\n 1. The Docker client contacted the Docker daemon.\r\n 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\r\n 3. The Docker daemon created a new container from that image which runs the\r\n    executable that produces the output you are currently reading.\r\n 4. The Docker daemon streamed that output to the Docker client, which sent it\r\n    to your terminal.\r\n\r\nTo try something more ambitious, you can run an Ubuntu container with:\r\n $ docker run -it ubuntu bash\r\n\r\nShare images, automate workflows, and more with a free Docker ID:\r\n https:\/\/cloud.docker.com\/\r\n\r\nFor more examples and ideas, visit:\r\n https:\/\/docs.docker.com\/engine\/userguide\/\r\n\r\n$ exit\r\nlogout\r\n<\/code><\/pre>\n<h1>\u611f\u53d7<\/h1>\n<p>\u5982\u679c\u4f60\u60f3\u8981\u771f\u6b63\u5730\u5f00\u59cb\u4f7f\u7528Ansible\uff0c\u800c\u4e0d\u9605\u8bfbAnsible\u6587\u6863\uff0c\u53ef\u80fd\u5c31\u65e0\u6cd5\u7f16\u5199\u51fa\u597d\u7684Playbooks\u3002<br \/>\n\u7136\u800c\uff0c\u53ea\u8981\u4e0d\u8003\u8651\u5e42\u7b49\u6027\u7b49\u56e0\u7d20\uff0c\u4f60\u4e5f\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528command\u6216shell\u547d\u4ee4\u6765\u79fb\u690d\u4e4b\u524d\u4f7f\u7528shell\u811a\u672c\u7f16\u5199\u7684\u5185\u5bb9\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u7b80\u5355\u5730\u5904\u7406\u3002<\/p>\n<p>\u63a5\u4e0b\u6765\uff0c\u53ef\u80fd\u662f\u5148\u90e8\u7f72Docker\u670d\u52a1\uff0c\u7136\u540e\u518d\u8003\u8651\u5c06\u4e3b\u673a\u670d\u52a1\u5668\u8fdb\u884c\u591a\u5143\u5316\u5427\uff1f<br \/>\n\u4f5c\u4e3a\u57fa\u7840\u8bbe\u65bd\u670d\u52a1\uff0c\u5efa\u7acb\u5168\u9762\u7684\u9a8c\u8bc1\u73af\u5883\u8fd8\u9700\u8981\u4e00\u6bb5\u65f6\u95f4\u3002<\/p>\n<h1>\u8bf7\u53c2\u8003\u4ee5\u4e0b\u7f51\u7ad9<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Vagrant + Ansible \u3067\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b\u306a\u3089 ansible_local \u30d7\u30ed\u30d3\u30b8\u30e7\u30ca\u304c\u3044\u3044\uff01<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ansible\u3092\u306f\u3058\u3081\u308b\u4eba\u306b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ansible\u306b\u3088\u308bInfrastructure as code\u5165\u9580<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Ansible Documentation<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u7b80\u4ecb \u6700\u8fd1\u975e\u5e38\u70ed\u95e8\u7684\u6784\u5efa\u7ba1\u7406\u5de5\u5177Ansible\uff0c\u53ef\u4ee5\u5728Amazon EC2\u4e0a\u642d\u5efaDocker\u73af\u5883\u3002 \u4e3a\u4ec0\u4e48\u9009\u62e9 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-42976","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>\u4f7f\u7528Vagrant\u548cAnsible\uff0c\u5728Ubuntu16.04\u4e0a\u521b\u5efaDocker\u73af\u5883 - 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\/\u4f7f\u7528vagrant\u548cansible\uff0c\u5728ubuntu16-04\u4e0a\u521b\u5efadocker\u73af\u5883\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528Vagrant\u548cAnsible\uff0c\u5728Ubuntu16.04\u4e0a\u521b\u5efaDocker\u73af\u5883\" \/>\n<meta property=\"og:description\" content=\"\u7b80\u4ecb \u6700\u8fd1\u975e\u5e38\u70ed\u95e8\u7684\u6784\u5efa\u7ba1\u7406\u5de5\u5177Ansible\uff0c\u53ef\u4ee5\u5728Amazon EC2\u4e0a\u642d\u5efaDocker\u73af\u5883\u3002 \u4e3a\u4ec0\u4e48\u9009\u62e9 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528vagrant\u548cansible\uff0c\u5728ubuntu16-04\u4e0a\u521b\u5efadocker\u73af\u5883\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-20T17:12:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T06:02:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d500737434c4406cc5105\/2-0.jpeg\" \/>\n<meta name=\"author\" content=\"\u79d1, \u9896\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u9896\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \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%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/\",\"name\":\"\u4f7f\u7528Vagrant\u548cAnsible\uff0c\u5728Ubuntu16.04\u4e0a\u521b\u5efaDocker\u73af\u5883 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-04-20T17:12:59+00:00\",\"dateModified\":\"2024-04-29T06:02:01+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528Vagrant\u548cAnsible\uff0c\u5728Ubuntu16.04\u4e0a\u521b\u5efaDocker\u73af\u5883\"}]},{\"@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\/8ca01ba7f7362ad4edb7da206a12f29e\",\"name\":\"\u79d1, \u9896\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u9896\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528Vagrant\u548cAnsible\uff0c\u5728Ubuntu16.04\u4e0a\u521b\u5efaDocker\u73af\u5883 - 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\/\u4f7f\u7528vagrant\u548cansible\uff0c\u5728ubuntu16-04\u4e0a\u521b\u5efadocker\u73af\u5883\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528Vagrant\u548cAnsible\uff0c\u5728Ubuntu16.04\u4e0a\u521b\u5efaDocker\u73af\u5883","og_description":"\u7b80\u4ecb \u6700\u8fd1\u975e\u5e38\u70ed\u95e8\u7684\u6784\u5efa\u7ba1\u7406\u5de5\u5177Ansible\uff0c\u53ef\u4ee5\u5728Amazon EC2\u4e0a\u642d\u5efaDocker\u73af\u5883\u3002 \u4e3a\u4ec0\u4e48\u9009\u62e9 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528vagrant\u548cansible\uff0c\u5728ubuntu16-04\u4e0a\u521b\u5efadocker\u73af\u5883\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-04-20T17:12:59+00:00","article_modified_time":"2024-04-29T06:02:01+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d500737434c4406cc5105\/2-0.jpeg"}],"author":"\u79d1, \u9896","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u9896","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/","name":"\u4f7f\u7528Vagrant\u548cAnsible\uff0c\u5728Ubuntu16.04\u4e0a\u521b\u5efaDocker\u73af\u5883 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-04-20T17:12:59+00:00","dateModified":"2024-04-29T06:02:01+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528Vagrant\u548cAnsible\uff0c\u5728Ubuntu16.04\u4e0a\u521b\u5efaDocker\u73af\u5883"}]},{"@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\/8ca01ba7f7362ad4edb7da206a12f29e","name":"\u79d1, \u9896","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","caption":"\u79d1, \u9896"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8vagrant%e5%92%8cansible%ef%bc%8c%e5%9c%a8ubuntu16-04%e4%b8%8a%e5%88%9b%e5%bb%badocker%e7%8e%af%e5%a2%83%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\/42976","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\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=42976"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42976\/revisions"}],"predecessor-version":[{"id":85705,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/42976\/revisions\/85705"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=42976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=42976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=42976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}