{"id":6628,"date":"2014-12-24T11:29:42","date_gmt":"2014-12-24T02:29:42","guid":{"rendered":"http:\/\/www.creationline.com\/?p=6628"},"modified":"2026-05-27T22:14:42","modified_gmt":"2026-05-27T13:14:42","slug":"ansible%e3%82%92%e8%a9%a6%e3%81%99-ansible","status":"publish","type":"post","link":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628","title":{"rendered":"Ansible\u3092\u8a66\u3059 #ansible"},"content":{"rendered":"<h2>\u25a0Ansible\u3068\u306f<\/h2>\n<p><a href=\"http:\/\/www.ansible.com\/\">Ansible<\/a>\u306f\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30c7\u30d7\u30ed\u30a4\u3092\u7c21\u5358\u306b\u3057\u3066\u697d\u3092\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u6982\u5ff5\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002<a href=\"http:\/\/www.ansible.com\/about\">About Ansible<\/a>\u3067\u306f\u6b21\u306e\u3088\u3046\u306b\u8ff0\u3079\u3089\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<blockquote>\n<p>Ansible is a powerful automation engine that makes systems and applications simple to deploy.  No custom scripting or custom code. No agents. All using an automation language that\u2019s easy for anyone to understand and learn. Just get in, get it done, and make some time for other strategic projects.<\/p>\n<\/blockquote>\n<blockquote><\/blockquote>\n<p>\u3053\u306e\u3088\u3046\u306b\u3001\u624b\u9593\u3068\u6642\u9593\u3092\u306a\u308b\u3079\u304f\u6e1b\u3089\u3059\u3053\u3068\u3092\u7406\u60f3\u3068\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u306a\u304a\u3001Ansible\u3068\u306f\u3001\u6700\u8fd1\u5b9f\u5199\u6620\u753b\u5316\u3082\u3055\u308c\u305f\u30aa\u30fc\u30b9\u30f3\u30fb\u30b9\u30b3\u30c3\u30c8\u30fb\u30ab\u30fc\u30c9\u306b\u3088\u308bSF\u5c0f\u8aac\u300c\u30a8\u30f3\u30c0\u30fc\u306e\u30b2\u30fc\u30e0\u300d(1985)\u306b\u767b\u5834\u3059\u308b\u6052\u661f\u9593\u8d85\u9ad8\u901f\u901a\u4fe1\u30b7\u30b9\u30c6\u30e0\u306b\u7531\u6765\u3057\u3001\u3055\u3089\u306b\u51fa\u81ea\u3092\u305f\u3069\u308b\u3068\u300c\u30b2\u30c9\u6226\u8a18\u300d\u306a\u3069\u3067\u8457\u540d\u306a\u30a2\u30fc\u30b7\u30e5\u30e9\u30fbK\u30fb\u30eb\uff1d\u30b0\u30a6\u30a3\u30f3\u304cSF\u5c0f\u8aac\u300c\u30ed\u30ab\u30ce\u30f3\u306e\u4e16\u754c\u300d(1966)\u3067\u300canswerable\u300d\u304b\u3089\u5275\u308a\u51fa\u3057\u305f\u8a00\u8449\u3067\u3059\u3002<\/p>\n<h2>\u25a0Ansible\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p><a href=\"http:\/\/docs.ansible.com\/intro_installation.html#latest-releases-via-apt-ubuntu\">Installation | Ansible Documentation<\/a>\u3092\u53c2\u8003\u306b\u3001Ubuntu 14.04 LTS\u306bAnsible\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n<p>Ubuntu 14.04 LTS\u306b\u542b\u307e\u308c\u3066\u3044\u308bAnsible\u306f2014\/04\u5f53\u6642\u6700\u65b0\u306e1.5.4\u306a\u306e\u3067\u3001Ansible\u306ePPA\u304b\u3089\u6700\u65b0\u7248\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~$ sudo apt-get install software-properties-common\n\u30d1\u30c3\u30b1\u30fc\u30b8\u30ea\u30b9\u30c8\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059... \u5b8c\u4e86\n\u4f9d\u5b58\u95a2\u4fc2\u30c4\u30ea\u30fc\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\n\u72b6\u614b\u60c5\u5831\u3092\u8aad\u307f\u53d6\u3063\u3066\u3044\u307e\u3059... \u5b8c\u4e86\nsoftware-properties-common \u306f\u65e2\u306b\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u3059\u3002\n\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9: 0 \u500b\u3001\u65b0\u898f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb: 0 \u500b\u3001\u524a\u9664: 0 \u500b\u3001\u4fdd\u7559: 0 \u500b\u3002\nubuntu@ws:~$<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~$ sudo apt-add-repository ppa:ansible\/ansible\nAnsible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications\u2014 automate in a language that approaches plain English, using SSH, with no agents to install on remote systems.\nhttp:\/\/ansible.com\/\n\u8a73\u3057\u3044\u60c5\u5831: https:\/\/launchpad.net\/~ansible\/+archive\/ubuntu\/ansible\n[ENTER] \u3092\u62bc\u3059\u3068\u7d9a\u884c\u3057\u307e\u3059\u3002ctrl-c \u3067\u8ffd\u52a0\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3067\u304d\u307e\u3059<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">gpg: \u9375\u8f2a\u300c\/tmp\/tmpsi6wdi4t\/secring.gpg\u300d\u304c\u3067\u304d\u307e\u3057\u305f\ngpg: \u9375\u8f2a\u300c\/tmp\/tmpsi6wdi4t\/pubring.gpg\u300d\u304c\u3067\u304d\u307e\u3057\u305f\ngpg: \u93757BB9C367\u3092hkp\u304b\u3089\u30b5\u30fc\u30d0\u30fckeyserver.ubuntu.com\u306b\u8981\u6c42\ngpg: \/tmp\/tmpsi6wdi4t\/trustdb.gpg: \u4fe1\u7528\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u3067\u304d\u307e\u3057\u305f\ngpg: \u93757BB9C367: \u516c\u958b\u9375\u201cLaunchpad PPA for Ansible, Inc.\u201d\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3057\u305f\ngpg: \u51e6\u7406\u6570\u306e\u5408\u8a08: 1\ngpg:               \u8aad\u8fbc\u307f: 1  (RSA: 1)\nOK\nubuntu@ws:~$<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~$ sudo apt-get update\n:\nubuntu@ws:~$<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~$ sudo apt-get install ansible\n\u30d1\u30c3\u30b1\u30fc\u30b8\u30ea\u30b9\u30c8\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059... \u5b8c\u4e86\n\u4f9d\u5b58\u95a2\u4fc2\u30c4\u30ea\u30fc\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\n\u72b6\u614b\u60c5\u5831\u3092\u8aad\u307f\u53d6\u3063\u3066\u3044\u307e\u3059... \u5b8c\u4e86\n\u4ee5\u4e0b\u306e\u7279\u5225\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059:\nlibgmp10 libyaml-0-2 python-crypto python-httplib2 python-jinja2\npython-markupsafe python-paramiko python-support python-yaml sshpass\n\u63d0\u6848\u30d1\u30c3\u30b1\u30fc\u30b8:\npython-crypto-dbg python-crypto-doc python-jinja2-doc\n\u4ee5\u4e0b\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u65b0\u305f\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059:\nansible libgmp10 libyaml-0-2 python-crypto python-httplib2 python-jinja2\npython-markupsafe python-paramiko python-support python-yaml sshpass\n\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9: 0 \u500b\u3001\u65b0\u898f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb: 11 \u500b\u3001\u524a\u9664: 0 \u500b\u3001\u4fdd\u7559: 0 \u500b\u3002\n1,480 kB \u4e2d 661 kB \u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u3092\u53d6\u5f97\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n\u3053\u306e\u64cd\u4f5c\u5f8c\u306b\u8ffd\u52a0\u3067 8,041 kB \u306e\u30c7\u30a3\u30b9\u30af\u5bb9\u91cf\u304c\u6d88\u8cbb\u3055\u308c\u307e\u3059\u3002\n\u7d9a\u884c\u3057\u307e\u3059\u304b? [Y\/n] y\n:\n:\n:\npython-support (1.0.15) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\npython-markupsafe (0.18-1build2) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\npython-jinja2 (2.7.2-2) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\npython-yaml (3.10-4build4) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\npython-crypto (2.6.1-4build1) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\npython-paramiko (1.10.1-1git1build1) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\npython-httplib2 (0.8-2build1) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\nsshpass (1.05-1) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\nansible (1.7.2-1ppa~trusty) \u3092\u8a2d\u5b9a\u3057\u3066\u3044\u307e\u3059 ...\nProcessing triggers for libc-bin (2.19-0ubuntu6.3) ...\nProcessing triggers for python-support (1.0.15) ...\nubuntu@ws:~$<\/pre>\n<p>Ansible\u306fSSH\u3092\u5229\u7528\u3057\u3066\u5bfe\u8c61\u306e\u30ea\u30e2\u30fc\u30c8\u30ce\u30fc\u30c9\u306e\u64cd\u4f5c\u3092\u884c\u3046\u306e\u3067\u3001SSH\u79d8\u5bc6\u9375\u30fb\u516c\u958b\u9375\u306e\u30da\u30a2\u3092\u4f5c\u6210\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u3053\u3053\u3067\u306f\u30d1\u30b9\u30d5\u30ec\u30fc\u30ba\u306a\u3057\u306e\u9375\u30da\u30a2\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~$ ssh-keygen -N ''\nGenerating public\/private rsa key pair.\nEnter file in which to save the key (\/home\/ubuntu\/.ssh\/id_rsa):\nCreated directory '\/home\/ubuntu\/.ssh'.\nYour identification has been saved in \/home\/ubuntu\/.ssh\/id_rsa.\nYour public key has been saved in \/home\/ubuntu\/.ssh\/id_rsa.pub.\nThe key fingerprint is:\n23:91:e6:d5:03:e3:cd:4f:b2:26:38:3b:10:2c:b7:32 ubuntu@ws.example.jp\nThe key's randomart image is:\n+--[ RSA 2048]----+\n|        o        |\n|   .   o *       |\n|  . + + o * .    |\n|   o = +   *     |\n|  E o = S o .    |\n|   o . + +       |\n|      o          |\n|       .         |\n|                 |\n+-----------------+\nubuntu@ws:~$<\/pre>\n<p>\u5f53\u7136\u306a\u304c\u3089\u3001\u5bfe\u8c61\u306e\u30ea\u30e2\u30fc\u30c8\u30ce\u30fc\u30c9\u306fSSH\u30c7\u30fc\u30e2\u30f3\u304c\u52d5\u4f5c\u3057\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308b\u306e\u3067\u8d77\u52d5\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u307e\u305f\u3001\u5148\u306b\u4f5c\u6210\u3057\u305f\u516c\u958b\u9375\u3092\u30ea\u30e2\u30fc\u30c8\u30ce\u30fc\u30c9\u306b\u3042\u3089\u304b\u3058\u3081\u914d\u7f6e\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@node:~$ mkdir .ssh\nubuntu@node:~$ cat &gt; .ssh\/authorized_keys\nssh-rsa (\u7701\u7565) ubuntu@ws.example.jp\nubuntu@node:~$<\/pre>\n<p>\u52a0\u3048\u3066\u7c21\u4fbf\u306e\u305f\u3081\u306b\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u306a\u3057\u3067sudo\u3092\u5b9f\u884c\u3057\u3066root\u6a29\u9650\u3092\u5f97\u3089\u308c\u308b\u3088\u3046\u306b\u3001\u30ed\u30b0\u30a4\u30f3\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u8a2d\u5b9a\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<h2>\u25a0\u4f5c\u696d\u74b0\u5883\u3092\u4f5c\u308b<\/h2>\n<p>Ansible\u3092\u5b9f\u884c\u3059\u308b\u74b0\u5883\u3068\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u308a\u3001git\u306e\u7ba1\u7406\u4e0b\u306b\u7f6e\u3044\u3066\u304a\u304d\u307e\u3059\u3002\u3053\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u306b\u3064\u3044\u3066\u306f<a href=\"http:\/\/docs.ansible.com\/playbooks_best_practices.html\">Best Practices<\/a>\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u3053\u3053\u3067\u306f\u6df1\u304f\u8ffd\u5f93\u3057\u307e\u305b\u3093\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~$ mkdir ansible-repo\nubuntu@ws:~$ cd ansible-repo\nubuntu@ws:~\/ansible-repo$ git init\nInitialized empty Git repository in \/home\/ubuntu\/ansible-repo\/.git\/\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>Ansible\u3067\u306f<a href=\"http:\/\/docs.ansible.com\/intro_inventory.html\">\u30a4\u30f3\u30d9\u30f3\u30c8\u30ea<\/a>\u3068\u3044\u3046\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306b\u5bfe\u8c61\u306e\u30ce\u30fc\u30c9\u3092\u5217\u6319\u3057\u307e\u3059\u3002\u30a4\u30f3\u30d9\u30f3\u30c8\u30ea\u30d5\u30a1\u30a4\u30eb\u306f<a href=\"https:\/\/ja.wikipedia.org\/wiki\/INI%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB\">INI\u30d5\u30a1\u30a4\u30eb<\/a>\u5f62\u5f0f\u3067\u3059\u3002<\/p>\n<p>\u3053\u3053\u3067\u306f<strong>ws<\/strong>\u30b0\u30eb\u30fc\u30d7\u306b<strong>192.168.122.209<\/strong>\u3001<strong>node<\/strong>\u30b0\u30eb\u30fc\u30d7\u306b<strong>192.168.122.210<\/strong>\u3092\u6240\u5c5e\u3055\u305b\u308b\u30a4\u30f3\u30d9\u30f3\u30c8\u30ea\u30d5\u30a1\u30a4\u30eb\u3092<strong>hosts<\/strong>\u3068\u3044\u3046\u540d\u524d\u3067\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"ini\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ vi hosts\n[ws]\n192.168.122.209\n[node]\n192.168.122.210\nubuntu@ws:~\/ansible-repo$<\/pre>\n<h2>\u25a0\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u307f\u308b<\/h2>\n<p>Ansible\u306f<a href=\"http:\/\/docs.ansible.com\/modules.html\">\u591a\u6570\u306e\u30e2\u30b8\u30e5\u30fc\u30eb<\/a>\u3092\u3042\u3089\u304b\u3058\u3081\u7d44\u307f\u8fbc\u3093\u3067\u304a\u308a\u3001\u5f8c\u8ff0\u3059\u308bPlaybook\u3092\u4f5c\u3089\u305a\u3068\u3082\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u4f5c\u696d\u3055\u305b\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<h3>\u25cfping\u30e2\u30b8\u30e5\u30fc\u30eb<\/h3>\n<p>\u307e\u305a<a href=\"http:\/\/docs.ansible.com\/ping_module.html\">ping<\/a>\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u5bfe\u8c61\u306e\u30ce\u30fc\u30c9\u304c\u5fdc\u7b54\u3059\u308b\u304b\u3092\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3059\u3002<strong>ansible<\/strong>\u30b3\u30de\u30f3\u30c9\u306b\u3066<strong>all -i hosts<\/strong>\u3067\u5bfe\u8c61\u306e\u30a4\u30d9\u30f3\u30c8\u30ea\u30d5\u30a1\u30a4\u30eb\u8a18\u8f09\u306e\u30db\u30b9\u30c8\u3059\u3079\u3066\u306b**-m ping**\u3067ping\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"javascript\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible all -i hosts -m ping\n192.168.122.210 | success &gt;&gt; {\n&quot;changed&quot;: false,\n&quot;ping&quot;: &quot;pong&quot;\n}\n\n192.168.122.209 | success &gt;&gt; {\n&quot;changed&quot;: false,\n&quot;ping&quot;: &quot;pong&quot;\n}\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p><strong>success<\/strong>\u3067\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u5b9f\u884c\u304c\u6210\u529f\u3057\u305f\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u30a4\u30f3\u30d9\u30f3\u30c8\u30ea\u30d5\u30a1\u30a4\u30eb\u306f**\/etc\/ansible\/hosts<strong>\u3092\u8aad\u3093\u3067\u3044\u308b\u306e\u3067<\/strong>-i<strong>\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6307\u5b9a\u3057\u3066\u307e\u3059\u304c\u3001\u74b0\u5883\u5909\u6570<\/strong>ANSIBLE_HOSTS<strong>\u3067\u6307\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u306a\u304a\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30a4\u30f3\u30d9\u30f3\u30c8\u30ea\u30d5\u30a1\u30a4\u30eb\u6307\u5b9a\u306f<\/strong>\/etc\/ansible\/ansible.cfg**\u3067\u884c\u308f\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u74b0\u5883\u5909\u6570<strong>ANSIBLE_HOSTS<\/strong>\u3092\u8a2d\u5b9a\u3057\u3066\u3001\u4ee5\u964d\u306e\u5165\u529b\u3092\u7c21\u7565\u5316\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ export ANSIBLE_HOSTS=~\/ansible-repo\/hosts\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p><strong>all<\/strong>\u3067\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u3067\u306f\u306a\u304f\u3001\u30a4\u30f3\u30d9\u30f3\u30c8\u30ea\u306e\u30b0\u30eb\u30fc\u30d7\u540d\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u305d\u306e\u30b0\u30eb\u30fc\u30d7\u306b\u6240\u5c5e\u3059\u308b\u30ce\u30fc\u30c9\u306b\u5bfe\u3057\u3066\u306e\u307f\u5b9f\u884c\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"javascript\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible ws -m ping\n192.168.122.209 | success &gt;&gt; {\n&quot;changed&quot;: false,\n&quot;ping&quot;: &quot;pong&quot;\n}\n\nubuntu@ws:~\/ansible-repo$ ansible node -m ping\n192.168.122.210 | success &gt;&gt; {\n&quot;changed&quot;: false,\n&quot;ping&quot;: &quot;pong&quot;\n}\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<h3>\u25cfcommand\u30e2\u30b8\u30e5\u30fc\u30eb<\/h3>\n<p><a href=\"http:\/\/docs.ansible.com\/command_module.html\">command<\/a>\u30e2\u30b8\u30e5\u30fc\u30eb\u306f\u3001\u30ce\u30fc\u30c9\u3067\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002\u3053\u3053\u3067\u306f<strong>uname -a<\/strong>\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible all -m command -a 'uname -a'\n192.168.122.209 | success | rc=0 &gt;&gt;\nLinux ws.example.jp 3.13.0-39-generic #66-Ubuntu SMP Tue Oct 28 13:30:27 UTC 2014 x86_64 x86_64 x86_64 GNU\/Linux\n\n192.168.122.210 | success | rc=0 &gt;&gt;\nLinux node.example.jp 3.13.0-39-generic #66-Ubuntu SMP Tue Oct 28 13:30:27 UTC 2014 x86_64 x86_64 x86_64 GNU\/Linux\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u5b9f\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306f<strong>command<\/strong>\u306a\u306e\u3067\u3001<strong>-m command<\/strong>\u306f\u7701\u7565\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible all -a 'uname -a'\n192.168.122.209 | success | rc=0 &gt;&gt;\nLinux ws.example.jp 3.13.0-39-generic #66-Ubuntu SMP Tue Oct 28 13:30:27 UTC 2014 x86_64 x86_64 x86_64 GNU\/Linux\n\n192.168.122.210 | success | rc=0 &gt;&gt;\nLinux node.example.jp 3.13.0-39-generic #66-Ubuntu SMP Tue Oct 28 13:30:27 UTC 2014 x86_64 x86_64 x86_64 GNU\/Linux\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<h3>\u25cfsetup\u30e2\u30b8\u30e5\u30fc\u30eb<\/h3>\n<p><a href=\"http:\/\/docs.ansible.com\/setup_module.html\">setup<\/a>\u30e2\u30b8\u30e5\u30fc\u30eb\u306f\u3001\u30ce\u30fc\u30c9\u306e<a href=\"http:\/\/docs.ansible.com\/glossary.html#facts\">facts<\/a>\u3092\u53ce\u96c6\u3057\u307e\u3059\u3002facts\u3068\u306f\u3001\u30ce\u30fc\u30c9\u306b\u95a2\u3059\u308b\u3055\u307e\u3056\u307e\u306a\u60c5\u5831\u3067\u3059\u3002<\/p>\n<p>\u4f8b\u3048\u3070\u3001\u6b21\u306e\u3088\u3046\u306a\u60c5\u5831\u304c\u53ce\u96c6\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"javascript\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible node -m setup\n192.168.122.210 | success &gt;&gt; {\n&quot;ansible_facts&quot;: {\n&quot;ansible_all_ipv4_addresses&quot;: [\n&quot;192.168.122.210&quot;\n],\n&quot;ansible_all_ipv6_addresses&quot;: [\n&quot;fe80::5054:ff:fe8a:1832&quot;\n],\n&quot;ansible_architecture&quot;: &quot;x86_64&quot;,\n&quot;ansible_bios_date&quot;: &quot;04\/01\/2014&quot;,\n&quot;ansible_bios_version&quot;: &quot;1.7.5-20140531_083030-gandalf&quot;,\n&quot;ansible_cmdline&quot;: {\n&quot;BOOT_IMAGE&quot;: &quot;\/boot\/vmlinuz-3.13.0-39-generic&quot;,\n&quot;ro&quot;: true,\n&quot;root&quot;: &quot;UUID=b93f22cb-54e4-4332-bf41-b05b33cf2374&quot;\n},\n&quot;ansible_date_time&quot;: {\n&quot;date&quot;: &quot;2014-11-14&quot;,\n&quot;day&quot;: &quot;14&quot;,\n&quot;epoch&quot;: &quot;1415937170&quot;,\n&quot;hour&quot;: &quot;12&quot;,\n&quot;iso8601&quot;: &quot;2014-11-14T03:52:50Z&quot;,\n&quot;iso8601_micro&quot;: &quot;2014-11-14T03:52:50.004783Z&quot;,\n&quot;minute&quot;: &quot;52&quot;,\n&quot;month&quot;: &quot;11&quot;,\n&quot;second&quot;: &quot;50&quot;,\n&quot;time&quot;: &quot;12:52:50&quot;,\n&quot;tz&quot;: &quot;JST&quot;,\n&quot;tz_offset&quot;: &quot;+0900&quot;,\n&quot;weekday&quot;: &quot;\u91d1\u66dc\u65e5&quot;,\n&quot;year&quot;: &quot;2014&quot;\n},\n&quot;ansible_default_ipv4&quot;: {\n&quot;address&quot;: &quot;192.168.122.210&quot;,\n&quot;alias&quot;: &quot;eth0&quot;,\n&quot;gateway&quot;: &quot;192.168.122.1&quot;,\n&quot;interface&quot;: &quot;eth0&quot;,\n&quot;macaddress&quot;: &quot;52:54:00:8a:18:32&quot;,\n&quot;mtu&quot;: 1500,\n&quot;netmask&quot;: &quot;255.255.255.0&quot;,\n&quot;network&quot;: &quot;192.168.122.0&quot;,\n&quot;type&quot;: &quot;ether&quot;\n},\n&quot;ansible_default_ipv6&quot;: {},\n&quot;ansible_devices&quot;: {\n&quot;vda&quot;: {\n&quot;holders&quot;: [],\n&quot;host&quot;: &quot;SCSI storage controller: Red Hat, Inc Virtio block device&quot;,\n&quot;model&quot;: null,\n&quot;partitions&quot;: {\n&quot;vda1&quot;: {\n&quot;sectors&quot;: &quot;20967424&quot;,\n&quot;sectorsize&quot;: 512,\n&quot;size&quot;: &quot;10.00 GB&quot;,\n&quot;start&quot;: &quot;2048&quot;\n}\n},\n&quot;removable&quot;: &quot;0&quot;,\n&quot;rotational&quot;: &quot;1&quot;,\n&quot;scheduler_mode&quot;: &quot;&quot;,\n&quot;sectors&quot;: &quot;20971520&quot;,\n&quot;sectorsize&quot;: &quot;512&quot;,\n&quot;size&quot;: &quot;10.00 GB&quot;,\n&quot;support_discard&quot;: &quot;0&quot;,\n&quot;vendor&quot;: &quot;0x1af4&quot;\n}\n},\n&quot;ansible_distribution&quot;: &quot;Ubuntu&quot;,\n&quot;ansible_distribution_major_version&quot;: &quot;14&quot;,\n&quot;ansible_distribution_release&quot;: &quot;trusty&quot;,\n&quot;ansible_distribution_version&quot;: &quot;14.04&quot;,\n&quot;ansible_domain&quot;: &quot;example.jp&quot;,\n&quot;ansible_env&quot;: {\n&quot;HOME&quot;: &quot;\/home\/ubuntu&quot;,\n&quot;LANG&quot;: &quot;C&quot;,\n&quot;LC_ALL&quot;: &quot;ja_JP.UTF-8&quot;,\n&quot;LC_CTYPE&quot;: &quot;C&quot;,\n&quot;LOGNAME&quot;: &quot;ubuntu&quot;,\n&quot;MAIL&quot;: &quot;\/var\/mail\/ubuntu&quot;,\n&quot;PATH&quot;: &quot;\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin:\/usr\/games:\/usr\/local\/games&quot;,\n&quot;PWD&quot;: &quot;\/home\/ubuntu&quot;,\n&quot;SHELL&quot;: &quot;\/bin\/bash&quot;,\n&quot;SHLVL&quot;: &quot;1&quot;,\n&quot;SSH_CLIENT&quot;: &quot;192.168.122.209 49909 22&quot;,\n&quot;SSH_CONNECTION&quot;: &quot;192.168.122.209 49909 192.168.122.210 22&quot;,\n&quot;SSH_TTY&quot;: &quot;\/dev\/pts\/2&quot;,\n&quot;TERM&quot;: &quot;xterm-color&quot;,\n&quot;USER&quot;: &quot;ubuntu&quot;,\n&quot;XDG_RUNTIME_DIR&quot;: &quot;\/run\/user\/1000&quot;,\n&quot;XDG_SESSION_ID&quot;: &quot;5&quot;,\n&quot;_&quot;: &quot;\/bin\/sh&quot;\n},\n&quot;ansible_eth0&quot;: {\n&quot;active&quot;: true,\n&quot;device&quot;: &quot;eth0&quot;,\n&quot;ipv4&quot;: {\n&quot;address&quot;: &quot;192.168.122.210&quot;,\n&quot;netmask&quot;: &quot;255.255.255.0&quot;,\n&quot;network&quot;: &quot;192.168.122.0&quot;\n},\n&quot;ipv6&quot;: [\n{\n&quot;address&quot;: &quot;fe80::5054:ff:fe8a:1832&quot;,\n&quot;prefix&quot;: &quot;64&quot;,\n&quot;scope&quot;: &quot;link&quot;\n}\n],\n&quot;macaddress&quot;: &quot;52:54:00:8a:18:32&quot;,\n&quot;mtu&quot;: 1500,\n&quot;promisc&quot;: false,\n&quot;type&quot;: &quot;ether&quot;\n},\n&quot;ansible_form_factor&quot;: &quot;Other&quot;,\n&quot;ansible_fqdn&quot;: &quot;node.example.jp&quot;,\n&quot;ansible_hostname&quot;: &quot;node&quot;,\n&quot;ansible_interfaces&quot;: [\n&quot;lo&quot;,\n&quot;eth0&quot;\n],\n&quot;ansible_kernel&quot;: &quot;3.13.0-39-generic&quot;,\n&quot;ansible_lo&quot;: {\n&quot;active&quot;: true,\n&quot;device&quot;: &quot;lo&quot;,\n&quot;ipv4&quot;: {\n&quot;address&quot;: &quot;127.0.0.1&quot;,\n&quot;netmask&quot;: &quot;255.0.0.0&quot;,\n&quot;network&quot;: &quot;127.0.0.0&quot;\n},\n&quot;ipv6&quot;: [\n{\n&quot;address&quot;: &quot;::1&quot;,\n&quot;prefix&quot;: &quot;128&quot;,\n&quot;scope&quot;: &quot;host&quot;\n}\n],\n&quot;mtu&quot;: 65536,\n&quot;promisc&quot;: false,\n&quot;type&quot;: &quot;loopback&quot;\n},\n&quot;ansible_lsb&quot;: {\n&quot;codename&quot;: &quot;trusty&quot;,\n&quot;description&quot;: &quot;Ubuntu 14.04.1 LTS&quot;,\n&quot;id&quot;: &quot;Ubuntu&quot;,\n&quot;major_release&quot;: &quot;14&quot;,\n&quot;release&quot;: &quot;14.04&quot;\n},\n&quot;ansible_machine&quot;: &quot;x86_64&quot;,\n&quot;ansible_memfree_mb&quot;: 7660,\n&quot;ansible_memtotal_mb&quot;: 7985,\n&quot;ansible_mounts&quot;: [\n{\n&quot;device&quot;: &quot;\/dev\/vda1&quot;,\n&quot;fstype&quot;: &quot;ext4&quot;,\n&quot;mount&quot;: &quot;\/&quot;,\n&quot;options&quot;: &quot;rw,errors=remount-ro&quot;,\n&quot;size_available&quot;: 9119244288,\n&quot;size_total&quot;: 10432602112\n}\n],\n&quot;ansible_nodename&quot;: &quot;node.example.jp&quot;,\n&quot;ansible_os_family&quot;: &quot;Debian&quot;,\n&quot;ansible_pkg_mgr&quot;: &quot;apt&quot;,\n&quot;ansible_processor&quot;: [\n&quot;Intel Xeon E312xx (Sandy Bridge)&quot;\n],\n&quot;ansible_processor_cores&quot;: 1,\n&quot;ansible_processor_count&quot;: 1,\n&quot;ansible_processor_threads_per_core&quot;: 1,\n&quot;ansible_processor_vcpus&quot;: 1,\n&quot;ansible_product_name&quot;: &quot;Standard PC (i440FX + PIIX, 1996)&quot;,\n&quot;ansible_product_serial&quot;: &quot;NA&quot;,\n&quot;ansible_product_uuid&quot;: &quot;NA&quot;,\n&quot;ansible_product_version&quot;: &quot;pc-i440fx-2.1&quot;,\n&quot;ansible_python_version&quot;: &quot;2.7.6&quot;,\n&quot;ansible_selinux&quot;: false,\n&quot;ansible_ssh_host_key_dsa_public&quot;: &quot;(\u7701\u7565)&quot;,\n&quot;ansible_ssh_host_key_ecdsa_public&quot;: &quot;(\u7701\u7565)&quot;,\n&quot;ansible_ssh_host_key_rsa_public&quot;: &quot;(\u7701\u7565)&quot;,\n&quot;ansible_swapfree_mb&quot;: 0,\n&quot;ansible_swaptotal_mb&quot;: 0,\n&quot;ansible_system&quot;: &quot;Linux&quot;,\n&quot;ansible_system_vendor&quot;: &quot;QEMU&quot;,\n&quot;ansible_user_id&quot;: &quot;ubuntu&quot;,\n&quot;ansible_userspace_architecture&quot;: &quot;x86_64&quot;,\n&quot;ansible_userspace_bits&quot;: &quot;64&quot;,\n&quot;ansible_virtualization_role&quot;: &quot;NA&quot;,\n&quot;ansible_virtualization_type&quot;: &quot;NA&quot;,\n&quot;module_setup&quot;: true\n},\n&quot;changed&quot;: false\n}\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<h2>\u25a0Playbook\u3092\u4f5c\u308b<\/h2>\n<p>Ansible\u306e\u624b\u7d9a\u304d\u3092\u8a18\u8f09\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092<a href=\"http:\/\/docs.ansible.com\/playbooks_intro.html\">Playbook<\/a>\u3068\u547c\u3073\u307e\u3059\u3002Playbook\u306f<a href=\"http:\/\/docs.ansible.com\/YAMLSyntax.html\">YAML<\/a>\u5f62\u5f0f\u3067\u3001Ansible\u72ec\u81ea\u306e\u624b\u7d9a\u304d\u8a00\u8a9e\u3092\u8a18\u8ff0\u3057\u307e\u3059\u3002<\/p>\n<h3>\u25cf\u30d1\u30c3\u30b1\u30fc\u30b8\u30921\u3064\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/h3>\n<p>\u6b21\u306f\u30a4\u30f3\u30d9\u30f3\u30c8\u30ea\u30d5\u30a1\u30a4\u30eb\u306e\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u306b\u5bfe\u3057\u3066\u3001sudo\u30b3\u30de\u30f3\u30c9\u3067root\u6a29\u9650\u3092\u5f97\u3066\u3001\u6700\u65b0\u306e<strong>ntp<\/strong>\u30d1\u30c3\u30b1\u30fc\u30b8\u3092<strong>apt<\/strong>\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068\u3044\u3046Playbook\u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ vi ntp.yml\n---\n- hosts: all\nsudo: yes\n  tasks:\n- name: install latest ntp package\napt: pkg=ntp state=latest\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>Playbook\u306e\u9069\u7528\u306b\u306f<strong>ansible-playbook<\/strong>\u30b3\u30de\u30f3\u30c9\u3092\u7528\u3044\u307e\u3059\u3002\u9069\u7528\u524d\u306b**-C**\u30aa\u30d7\u30b7\u30e7\u30f3\u3067dry-run\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook -C ntp.yml\n\nPLAY [all] ********************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.209]\nok: [192.168.122.210]\n\nTASK: [install latest ntp package] ********************************************\nchanged: [192.168.122.209]\nchanged: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.209 : ok=2 changed=1 unreachable=0 failed=0\n192.168.122.210 : ok=2 changed=1 unreachable=0 failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u3059\u3079\u3066\u306e\u30ce\u30fc\u30c9\u3067\u554f\u984c\u306a\u3055\u305d\u3046\u306a\u3053\u3068\u304c\u308f\u304b\u3063\u305f\u306e\u3067\u3001-C\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9664\u3044\u3066\u5b9f\u969b\u306b\u9069\u7528\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook ntp.yml\n\nPLAY [all] ********************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.209]\nok: [192.168.122.210]\n\nTASK: [install latest ntp package] ********************************************\nchanged: [192.168.122.209]\nchanged: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.209 : ok=2 changed=1 unreachable=0 failed=0\n192.168.122.210 : ok=2 changed=1 unreachable=0 failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p><strong>changed<\/strong>\u306fPlaybook\u306e\u9069\u7528\u304c\u6210\u529f\u3057\u3066\u5909\u66f4\u304c\u3042\u3063\u305f\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u3079\u304d\u7b49\u6027\u306e\u78ba\u8a8d\u306e\u305f\u3081\u3082\u30461\u56de\u9069\u7528\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook ntp.yml\n\nPLAY [all] ********************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.209]\nok: [192.168.122.210]\n\nTASK: [install latest ntp package] ********************************************\nok: [192.168.122.209]\nok: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.209 : ok=2 changed=0 unreachable=0 failed=0\n192.168.122.210 : ok=2 changed=0 unreachable=0 failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u5909\u66f4\u304c\u306a\u304b\u3063\u305f\u305f\u3081<strong>changed<\/strong>\u304c\u5897\u3048\u3066\u3044\u307e\u305b\u3093\u3002<\/p>\n<p>\u3055\u3089\u306b\u3079\u304d\u7b49\u6027\u306e\u78ba\u8a8d\u306e\u305f\u3081\u3001\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3082\u30461\u56de\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059\u3002<br \/>\n\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306fcommand\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u7528\u3044\u3066\u884c\u3044\u307e\u3059\u3002<strong>--sudo<\/strong>\u306fsudo\u30b3\u30de\u30f3\u30c9\u3067root\u6a29\u9650\u3092\u5f97\u3066\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068\u3044\u3046\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible all -a 'apt-get purge -y ntp' --sudo\n192.168.122.210 | success | rc=0 &gt;&gt;\n:\n:\n:\nRemoving ntp (1:4.2.6.p5+dfsg-3ubuntu2) ...\n* Stopping NTP server ntpd\n...done.\nPurging configuration files for ntp (1:4.2.6.p5+dfsg-3ubuntu2) ...\nProcessing triggers for man-db (2.6.7.1-1ubuntu1) ...\n\n192.168.122.209 | success | rc=0 &gt;&gt;\n:\n:\n:\nRemoving ntp (1:4.2.6.p5+dfsg-3ubuntu2) ...\n* Stopping NTP server ntpd\n...done.\nPurging configuration files for ntp (1:4.2.6.p5+dfsg-3ubuntu2) ...\nProcessing triggers for man-db (2.6.7.1-1ubuntu1) ...\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook ntp.yml\n\nPLAY [all] ********************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.209]\nok: [192.168.122.210]\n\nTASK: [install latest ntp package] ********************************************\nchanged: [192.168.122.209]\nchanged: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.209 : ok=2 changed=1 unreachable=0 failed=0\n192.168.122.210 : ok=2 changed=1 unreachable=0 failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u518d\u3073<strong>changed<\/strong>\u304c\u30ab\u30a6\u30f3\u30c8\u3055\u308c\u3066Playbook\u306e\u9069\u7528\u304c\u6210\u529f\u3057\u307e\u3057\u305f\u3002<\/p>\n<h3>\u25cf\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u8907\u6570\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/h3>\n<p>\u6700\u65b0\u306e<strong>nginx<\/strong>\u30d1\u30c3\u30b1\u30fc\u30b8\u3068<strong>redis-server<\/strong>\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u305d\u308c\u305e\u308c<strong>apt<\/strong>\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308bPlaybook\u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ vi multi_pkgs.yml\n---\n- hosts: node\nsudo: yes\n  tasks:\n- name: install latest nginx package\napt: pkg=nginx state=latest\n- name: install latest redis-server package\napt: pkg=redis-server state=latest\nubuntu@ws:~\/ansible-repo$<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook multi_pkgs.yml\n\nPLAY [node] *******************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.210]\n\nTASK: [install latest nginx package] ******************************************\nchanged: [192.168.122.210]\n\nTASK: [install latest redis-server package] ***********************************\nchanged: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.210 : ok=3 changed=2 unreachable=0 failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u3057\u305f\u3002\u3053\u3053\u3067\u3001\u4e00\u65e6\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible node -a 'apt-get purge -y nginx redis-server' --sudo\n:<\/pre>\n<p><a href=\"http:\/\/docs.ansible.com\/playbooks_loops.html\">\u30eb\u30fc\u30d7<\/a>\u3092\u7528\u3044\u3066\u66f8\u304d\u76f4\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"diff\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ vi multi_pkgs.yml\n---\n- hosts: node\nsudo: yes\n  tasks:\napt: pkg={{ item }} state=latest\nwith_items:\n- nginx\n- redis-server\nubuntu@ws:~\/ansible-repo$<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook multi_pkgs.yml\n\nPLAY [node] *******************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.210]\n\nTASK: [install latest packages] ***********************************************\nchanged: [192.168.122.210] =&gt; (item=nginx,redis-server)\n\nPLAY RECAP ********************************************************************\n192.168.122.210 : ok=2 changed=1 unreachable=0 failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u3057\u305f\u3002\u30eb\u30fc\u30d7\u3092\u7528\u3044\u306a\u304b\u3063\u305f\u5834\u5408\u3067\u306e<strong>changed<\/strong>\u306e\u6570\u306e\u9055\u3044\u306b\u6ce8\u76ee\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<h3>\u25cf\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u7528\u3044\u308b<\/h3>\n<p>Ansible\u306f\u30a8\u30f3\u30b8\u30f3\u306b<a href=\"http:\/\/jinja.pocoo.org\/\">Jinja2<\/a>\u3092\u7528\u3044\u305f<a href=\"http:\/\/docs.ansible.com\/playbooks_variables.html#using-variables-about-jinja2\">\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/a>\u304c\u5229\u7528\u3067\u304d\u307e\u3059\u3002Jinja\u3068\u306f\u305d\u306e\u307e\u307e\u300c\u795e\u793e\u300d\u306e\u3053\u3068\u3067\u3001template\u3068temple\u306e\u767a\u97f3\u304c\u4f3c\u3066\u3044\u308b\u3053\u3068\u306b\u7531\u6765\u3057\u3066\u3044\u308b\u305d\u3046\u3067\u3059\u3002\u300c\u795e\u793e\u300d\u306f\u672c\u5f53\u306ftemple\u3067\u306f\u306a\u304fshrine\u306a\u306e\u3067\u3059\u304c\u3053\u3053\u3067\u306f\u76ee\u3092\u3064\u3076\u308a\u307e\u3059\u3002<\/p>\n<p>\u5909\u6570\u304b\u3089\u5f97\u305f\u5024(<strong>Hello, World!<\/strong>)\u3092\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8(<strong>tmpl.hello.j2<\/strong>)\u4e2d\u306b\u57cb\u3081\u8fbc\u307f\u3001\u30d5\u30a1\u30a4\u30eb(<strong>\/tmp\/hello.txt<\/strong>)\u3068\u3057\u3066\u51fa\u529b\u3059\u308bPlaybook\u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ vi tmpl.yml\n---\n- hosts: all\nsudo: yes\nvars:\nmessage: Hello, World!\n  tasks:\n- name: put hello file\ntemplate: src=tmpl.hello.j2 dest=\/tmp\/hello.txt\nubuntu@ws:~\/ansible-repo$<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ vi tmpl.hello.j2\n&quot;{{ message }}&quot;\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u30ce\u30fc\u30c9\u306b\u9069\u7528\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook tmpl.yml\n\nPLAY [all] ********************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.210]\nok: [192.168.122.209]\n\nTASK: [put hello file] ********************************************************\nchanged: [192.168.122.209]\nchanged: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.209 : ok=2 changed=1 unreachable=0 failed=0\n192.168.122.210 : ok=2 changed=1 unreachable=0 failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3067\u304d\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible all -a 'cat \/tmp\/hello.txt'\n192.168.122.210 | success | rc=0 &gt;&gt;\n&quot;Hello, World!&quot;\n\n192.168.122.209 | success | rc=0 &gt;&gt;\n&quot;Hello, World!&quot;\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u306ffacts\u3067\u53ce\u96c6\u3057\u305f\u5024\u3092\u57cb\u3081\u8fbc\u3080\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u3053\u3053\u3067\u306f<strong>ansible_fqdn<\/strong>\u3092\u57cb\u3081\u8fbc\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"diff\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ git diff\ndiff --git a\/tmpl.hello.j2 b\/tmpl.hello.j2\nindex 763a6c7..c27197f 100644\n--- a\/tmpl.hello.j2\n+++ b\/tmpl.hello.j2\n@@ -1 +1 @@\n-&quot;{{ message }}&quot;\n+{{ ansible_fqdn }} says &quot;{{ message }}&quot;\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u30ce\u30fc\u30c9\u306b\u9069\u7528\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook tmpl.yml\n\nPLAY [all] ********************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.209]\nok: [192.168.122.210]\n\nTASK: [put hello file] ********************************************************\nchanged: [192.168.122.209]\nchanged: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.209 : ok=2 changed=1 unreachable=0 failed=0\n192.168.122.210 : ok=2 changed=1 unreachable=0 failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3067\u304d\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible all -a 'cat \/tmp\/hello.txt'\n192.168.122.209 | success | rc=0 &gt;&gt;\nws.example.jp says &quot;Hello, World!&quot;\n\n192.168.122.210 | success | rc=0 &gt;&gt;\nnode.example.jp says &quot;Hello, World!&quot;\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<h3>\u25cf\u30b5\u30fc\u30d3\u30b9\u9593\u306e\u901a\u4fe1<\/h3>\n<p><strong>notify<\/strong>\u3068<strong>handlers<\/strong>\u3092\u7528\u3044\u308b\u3053\u3068\u3067\u3001<a href=\"http:\/\/docs.ansible.com\/playbooks_intro.html#handlers-running-operations-on-change\">\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306b\u5909\u66f4\u304c\u3042\u3063\u305f\u3089\u30b5\u30fc\u30d3\u30b9\u3092\u518d\u8d77\u52d5\u3059\u308b<\/a>\u3068\u3044\u3063\u305f\u624b\u7d9a\u304d\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><strong>nginx<\/strong>\u306e\u6700\u65b0\u30d1\u30c3\u30b1\u30fc\u30b8\u3092<strong>apt<\/strong>\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3001\u5f85\u3061\u53d7\u3051\u30dd\u30fc\u30c8\u756a\u53f7(<strong>listen_port<\/strong>\u306e\u307f\u304c\u5909\u66f4\u3067\u304d\u308b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb(<strong>\/etc\/nginx\/sites-available\/default<\/strong>)\u3092\u8a2d\u7f6e\u3059\u308bPlaybook\u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ vi nginx.yml\n---\n- hosts: node\nsudo: yes\nvars:\nlisten_port: 80\ntasks:\n- name: install nginx latest packages\napt: pkg=nginx state=latest\n- name: write default site file\ntemplate: src=nginx.default.j2 dest=\/etc\/nginx\/sites-available\/default\nnotify:\n- restart nginx\n- name: ensure nginx is running\nservice: name=nginx state=started\n  handlers:\n- name: restart nginx\nservice: name=nginx state=restarted\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ vi nginx.default.j2\n#\n# Generated by Ansible for {{ ansible_fqdn }}\n#\nserver {\nlisten {{ listen_port }} default_server;\nlisten [::]:{{ listen_port }} default_server ipv6only=on;\nroot \/usr\/share\/nginx\/html;\nindex index.html index.htm;\nserver_name localhost;\n\tlocation \/ {\ntry_files $uri $uri\/ =404;\n}\n}\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u30ce\u30fc\u30c9\u306b\u9069\u7528\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook nginx.yml\n\nPLAY [node] *******************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.210]\n\nTASK: [install nginx latest packages] *****************************************\nok: [192.168.122.210]\n\nTASK: [write default site file] ***********************************************\nchanged: [192.168.122.210]\n\nTASK: [ensure nginx is running] ***********************************************\nok: [192.168.122.210]\n\nNOTIFIED: [restart nginx] *****************************************************\nchanged: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.210 : ok=5 changed=2 unreachable=0 failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u30d1\u30c3\u30b1\u30fc\u30b8\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3001\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u5909\u66f4\u3001\u518d\u8d77\u52d5\u304c\u884c\u308f\u308c\u307e\u3057\u305f\u3002\u8a2d\u5b9a\u901a\u308a\u306e80\u756a\u30dd\u30fc\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ curl http:\/\/node 2&gt; \/dev\/null | head -5\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;Welcome to nginx!&lt;\/title&gt;\n&lt;style&gt;\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>Playbook\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"diff\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ git diff\ndiff --git a\/nginx.yml b\/nginx.yml\nindex 16cc803..f8474d4 100644\n--- a\/nginx.yml\n+++ b\/nginx.yml\n@@ -2,7 +2,7 @@\n - hosts: node\n   sudo: yes\n   vars:\n-    listen_port: 80\n+    listen_port: 8080\n\n   tasks:\n   - name: install nginx latest packages\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u5909\u66f4\u3057\u305fPlaybook\u3092\u30ce\u30fc\u30c9\u306b\u9069\u7528\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook nginx.yml\n\nPLAY [node] *******************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.210]\n\nTASK: [install nginx latest packages] *****************************************\nok: [192.168.122.210]\n\nTASK: [write default site file] ***********************************************\nchanged: [192.168.122.210]\n\nTASK: [ensure nginx is running] ***********************************************\nok: [192.168.122.210]\n\nNOTIFIED: [restart nginx] *****************************************************\nchanged: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.210            : ok=5    changed=2    unreachable=0    failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u5909\u66f4\u3068\u518d\u8d77\u52d5\u306e\u307f\u304c\u884c\u308f\u308c\u307e\u3057\u305f\u3002\u8a2d\u5b9a\u901a\u308a\u306e8080\u756a\u30dd\u30fc\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ curl http:\/\/node\ncurl: (7) Failed to connect to node port 80: \u63a5\u7d9a\u3092\u62d2\u5426\u3055\u308c\u307e\u3057\u305f\nubuntu@ws:~\/ansible-repo$\n\nubuntu@ws:~\/ansible-repo$ curl http:\/\/node:8080 2&gt; \/dev\/null | head -5\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;Welcome to nginx!&lt;\/title&gt;\n&lt;style&gt;\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u307e\u305f\u3001Playbook\u3067\u3088\u304f\u5909\u66f4\u3059\u308b\u3088\u3046\u306a\u90e8\u5206\u306f\u5225\u30d5\u30a1\u30a4\u30eb\u306b\u5207\u308a\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u3053\u3067\u306f<strong>listen_port.yml<\/strong>\u3068\u3057\u3066\u5f85\u3061\u53d7\u3051\u30dd\u30fc\u30c8\u8a2d\u5b9a\u90e8\u5206\u3092\u5225\u30d5\u30a1\u30a4\u30eb\u306b\u5207\u308a\u51fa\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"diff\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ git diff\ndiff --git a\/nginx.yml b\/nginx.yml\nindex f8474d4..c3b11fd 100644\n--- a\/nginx.yml\n+++ b\/nginx.yml\n@@ -1,8 +1,8 @@\n ---\n - hosts: node\n   sudo: yes\n-  vars:\n-    listen_port: 8080\n+  vars_files:\n+  - listen_port.yml\n\n   tasks:\n   - name: install nginx latest packages\nubuntu@ws:~\/ansible-repo$<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ cat listen_port.yml\nlisten_port: 8888\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u3053\u306e\u72b6\u614b\u3067\u30ce\u30fc\u30c9\u306b\u9069\u7528\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ ansible-playbook nginx.yml\n\nPLAY [node] *******************************************************************\n\nGATHERING FACTS ***************************************************************\nok: [192.168.122.210]\n\nTASK: [install nginx latest packages] *****************************************\nok: [192.168.122.210]\n\nTASK: [write default site file] ***********************************************\nchanged: [192.168.122.210]\n\nTASK: [ensure nginx is running] ***********************************************\nok: [192.168.122.210]\n\nNOTIFIED: [restart nginx] *****************************************************\nchanged: [192.168.122.210]\n\nPLAY RECAP ********************************************************************\n192.168.122.210            : ok=5    changed=2    unreachable=0    failed=0\n\nubuntu@ws:~\/ansible-repo$<\/pre>\n<p>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u5909\u66f4\u3068\u518d\u8d77\u52d5\u306e\u307f\u304c\u884c\u308f\u308c\u307e\u3057\u305f\u3002\u8a2d\u5b9a\u901a\u308a\u306e8888\u756a\u30dd\u30fc\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ubuntu@ws:~\/ansible-repo$ curl http:\/\/node:8888 2&gt; \/dev\/null | head -5\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;Welcome to nginx!&lt;\/title&gt;\n&lt;style&gt;\nubuntu@ws:~\/ansible-repo$<\/pre>\n<h2>\u25a0\u307e\u3068\u3081<\/h2>\n<p>Ansible\u306f\u305d\u306e\u601d\u60f3\u30fb\u7406\u60f3\u901a\u308a\u3001\u5c0e\u5165\u30b3\u30b9\u30c8\u30fb\u5b66\u7fd2\u30b3\u30b9\u30c8\u304c\u4f4e\u3044\u3053\u3068\u304c\u7279\u5fb4\u3068\u8a00\u3048\u308b\u3067\u3057\u3087\u3046\u3002Playbook\u3092\u66f8\u304b\u306a\u304f\u3068\u3082\u540c\u68b1\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u3088\u3063\u3066\u7d20\u65e9\u304f\u3061\u3087\u3063\u3068\u4f7f\u3048\u308b\u3053\u3068\u3082\u5229\u70b9\u3068\u8a00\u3048\u305d\u3046\u3067\u3059\u3002<\/p>\n<hr>\n<ul>\n<li><a href=\"\/lab\/6718\">Knife-Zero\u3067Infrastructure as Code\u3092\u59cb\u3081\u3088\u3046<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u25a0Ansible\u3068\u306f Ansible\u306f\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30c7\u30d7\u30ed\u30a4\u3092\u7c21\u5358\u306b\u3057\u3066\u697d\u3092\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u6982\u5ff5\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002About Ansible\u3067\u306f\u6b21\u306e\u3088\u3046\u306b\u8ff0\u3079\u3089\u308c\u3066\u3044\u307e\u3059\u3002 Ansible is a powerful aut [&#8230;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[31],"tags":[],"class_list":["post-6628","post","type-post","status-publish","format-standard","hentry","category-higuchi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ansible\u3092\u8a66\u3059 #ansible - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3<\/title>\n<meta name=\"description\" content=\"d-higuchi |\u25a0Ansible\u3068\u306f Ansible\u306f\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30c7\u30d7\u30ed\u30a4\u3092\u7c21\u5358\u306b\u3057\u3066\u697d\u3092\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u6982\u5ff5\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002About\" \/>\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.creationline.com\/tech-blog\/author\/higuchi\/6628\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ansible\u3092\u8a66\u3059 #ansible - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"og:description\" content=\"d-higuchi |\u25a0Ansible\u3068\u306f Ansible\u306f\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30c7\u30d7\u30ed\u30a4\u3092\u7c21\u5358\u306b\u3057\u3066\u697d\u3092\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u6982\u5ff5\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002About\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628\" \/>\n<meta property=\"og:site_name\" content=\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/creationline\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-24T02:29:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-27T13:14:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/01\/screenshot.png\" \/>\n\t<meta property=\"og:image:width\" content=\"470\" \/>\n\t<meta property=\"og:image:height\" content=\"394\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daisuke Higuchi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@creationline\" \/>\n<meta name=\"twitter:site\" content=\"@creationline\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daisuke Higuchi\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"14\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/6628#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/6628\"},\"author\":{\"name\":\"Daisuke Higuchi\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\"},\"headline\":\"Ansible\u3092\u8a66\u3059 #ansible\",\"datePublished\":\"2014-12-24T02:29:42+00:00\",\"dateModified\":\"2026-05-27T13:14:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/6628\"},\"wordCount\":196,\"articleSection\":[\"d-higuchi\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/6628\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/6628\",\"name\":\"Ansible\u3092\u8a66\u3059 #ansible - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\"},\"datePublished\":\"2014-12-24T02:29:42+00:00\",\"dateModified\":\"2026-05-27T13:14:42+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\"},\"description\":\"d-higuchi |\u25a0Ansible\u3068\u306f Ansible\u306f\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30c7\u30d7\u30ed\u30a4\u3092\u7c21\u5358\u306b\u3057\u3066\u697d\u3092\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u6982\u5ff5\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002About\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/6628#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/6628\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/6628#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"HOME\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u8457\u8005\uff08Author\uff09\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"d-higuchi\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Ansible\u3092\u8a66\u3059 #ansible\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/\",\"name\":\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"description\":\"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\",\"name\":\"Daisuke Higuchi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/pngout-25-230x230.png\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/pngout-25-230x230.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/pngout-25-230x230.png\",\"caption\":\"Daisuke Higuchi\"},\"description\":\"\u306f\u3084\u308a\u306e\u6280\u8853\u8981\u7d20\u306b\u52a0\u3048\u3066\u3001\u4f1a\u8b70\u306e\u9032\u3081\u65b9\u30fb\u6587\u7ae0\u306e\u66f8\u304d\u65b9\u306a\u3069\u306e\u696d\u52d9\u6539\u5584\u306b\u3082\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002\u300cChef\u6d3b\u7528\u30ac\u30a4\u30c9\u300d\u5171\u8457\u306e\u307b\u304b\u3001Debian Official Developer\u3082\u3084\u3063\u3066\u3044\u307e\u3059\u3002\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ansible\u3092\u8a66\u3059 #ansible - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"d-higuchi |\u25a0Ansible\u3068\u306f Ansible\u306f\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30c7\u30d7\u30ed\u30a4\u3092\u7c21\u5358\u306b\u3057\u3066\u697d\u3092\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u6982\u5ff5\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002About","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.creationline.com\/tech-blog\/author\/higuchi\/6628","og_locale":"ja_JP","og_type":"article","og_title":"Ansible\u3092\u8a66\u3059 #ansible - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","og_description":"d-higuchi |\u25a0Ansible\u3068\u306f Ansible\u306f\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30c7\u30d7\u30ed\u30a4\u3092\u7c21\u5358\u306b\u3057\u3066\u697d\u3092\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u6982\u5ff5\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002About","og_url":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628","og_site_name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","article_publisher":"https:\/\/www.facebook.com\/creationline","article_published_time":"2014-12-24T02:29:42+00:00","article_modified_time":"2026-05-27T13:14:42+00:00","og_image":[{"width":470,"height":394,"url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/01\/screenshot.png","type":"image\/png"}],"author":"Daisuke Higuchi","twitter_card":"summary_large_image","twitter_creator":"@creationline","twitter_site":"@creationline","twitter_misc":{"\u57f7\u7b46\u8005":"Daisuke Higuchi","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"14\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628#article","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628"},"author":{"name":"Daisuke Higuchi","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206"},"headline":"Ansible\u3092\u8a66\u3059 #ansible","datePublished":"2014-12-24T02:29:42+00:00","dateModified":"2026-05-27T13:14:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628"},"wordCount":196,"articleSection":["d-higuchi"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628","url":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628","name":"Ansible\u3092\u8a66\u3059 #ansible - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#website"},"datePublished":"2014-12-24T02:29:42+00:00","dateModified":"2026-05-27T13:14:42+00:00","author":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206"},"description":"d-higuchi |\u25a0Ansible\u3068\u306f Ansible\u306f\u3001\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30c7\u30d7\u30ed\u30a4\u3092\u7c21\u5358\u306b\u3057\u3066\u697d\u3092\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u6982\u5ff5\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002About","breadcrumb":{"@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/6628#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"HOME","item":"https:\/\/www.creationline.com\/tech-blog"},{"@type":"ListItem","position":2,"name":"\u8457\u8005\uff08Author\uff09","item":"https:\/\/www.creationline.com\/tech-blog\/author"},{"@type":"ListItem","position":3,"name":"d-higuchi","item":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi"},{"@type":"ListItem","position":4,"name":"Ansible\u3092\u8a66\u3059 #ansible"}]},{"@type":"WebSite","@id":"https:\/\/www.creationline.com\/tech-blog\/#website","url":"https:\/\/www.creationline.com\/tech-blog\/","name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206","name":"Daisuke Higuchi","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/05\/pngout-25-230x230.png","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/05\/pngout-25-230x230.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2026\/05\/pngout-25-230x230.png","caption":"Daisuke Higuchi"},"description":"\u306f\u3084\u308a\u306e\u6280\u8853\u8981\u7d20\u306b\u52a0\u3048\u3066\u3001\u4f1a\u8b70\u306e\u9032\u3081\u65b9\u30fb\u6587\u7ae0\u306e\u66f8\u304d\u65b9\u306a\u3069\u306e\u696d\u52d9\u6539\u5584\u306b\u3082\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002\u300cChef\u6d3b\u7528\u30ac\u30a4\u30c9\u300d\u5171\u8457\u306e\u307b\u304b\u3001Debian Official Developer\u3082\u3084\u3063\u3066\u3044\u307e\u3059\u3002","url":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi"}]}},"_links":{"self":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/6628","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=6628"}],"version-history":[{"count":3,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/6628\/revisions"}],"predecessor-version":[{"id":84002,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/6628\/revisions\/84002"}],"wp:attachment":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=6628"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=6628"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=6628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}