{"id":34913,"date":"2024-08-23T10:18:06","date_gmt":"2024-08-23T03:18:06","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/08\/23\/getting-started-with-ansible-basic-installation-and-setup\/"},"modified":"2024-08-23T10:18:06","modified_gmt":"2024-08-23T03:18:06","slug":"getting-started-with-ansible-basic-installation-and-setup","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/08\/23\/getting-started-with-ansible-basic-installation-and-setup\/","title":{"rendered":"B\u1eaft \u0111\u1ea7u v\u1edbi Ansible: C\u00e0i \u0111\u1eb7t v\u00e0 thi\u1ebft l\u1eadp c\u01a1 b\u1ea3n"},"content":{"rendered":"<h2 id=\"what-is-ansible\">Ansible l\u00e0 g\u00ec?<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#what-is-ansible\"><\/a><\/h2>\n<p><a href=\"http:\/\/www.ansible.com\/home\" target=\"_blank\" rel=\"noreferrer noopener\">Ansible<\/a>&nbsp;l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 t\u1ef1 \u0111\u1ed9ng h\u00f3a \u0111\u1ec3 cung c\u1ea5p, c\u1ea5u h\u00ecnh v\u00e0 qu\u1ea3n l\u00fd m\u00e1y ch\u1ee7. N\u00f3 cho ph\u00e9p b\u1ea1n s\u1eafp x\u1ebfp c\u00e1c m\u00e1y ch\u1ee7 c\u1ee7a m\u00ecnh th\u00e0nh c\u00e1c nh\u00f3m, m\u00f4 t\u1ea3 c\u00e1ch c\u00e1c nh\u00f3m \u0111\u00f3 n\u00ean \u0111\u01b0\u1ee3c c\u1ea5u h\u00ecnh v\u00e0 nh\u1eefng h\u00e0nh \u0111\u1ed9ng n\u00e0o n\u00ean \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n tr\u00ean ch\u00fang, t\u1ea5t c\u1ea3 t\u1eeb m\u1ed9t v\u1ecb tr\u00ed trung t\u00e2m.<\/p>\n<p>\u0110\u1ec3 b\u1eaft \u0111\u1ea7u s\u1eed d\u1ee5ng Ansible, b\u1ea1n n\u00ean l\u00e0m quen v\u1edbi m\u1ed9t s\u1ed1 thu\u1eadt ng\u1eef v\u00e0 kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 m\u00f4 t\u1ea3 c\u00e1c th\u00e0nh ph\u1ea7n ch\u00ednh c\u1ee7a Ansible.<\/p>\n<ul>\n<li><strong>N\u00fat \u0111i\u1ec1u khi\u1ec3n<\/strong>&nbsp;: C\u00e1c n\u00fat c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng c\u1ee7a b\u1ea1n \u0111\u01b0\u1ee3c Ansible qu\u1ea3n l\u00fd t\u1eeb m\u1ed9t&nbsp;<strong>n\u00fat \u0111i\u1ec1u khi\u1ec3n<\/strong>&nbsp;c\u00f3 th\u1ec3 l\u00e0 m\u00e1y t\u00ednh c\u00e1 nh\u00e2n ho\u1eb7c m\u00e1y ch\u1ee7 c\u1ee7a b\u1ea1n. \u0110\u1ec3 t\u0103ng t\u1ed1c \u0111\u1ed9 qu\u1ea3n l\u00fd, b\u1ea1n n\u00ean l\u01b0u tr\u1eef n\u00fat \u0111i\u1ec1u khi\u1ec3n tr\u00ean m\u00e1y ch\u1ee7 c\u00e0ng g\u1ea7n c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a b\u1ea1n c\u00e0ng t\u1ed1t.<\/li>\n<li><strong>Managed Nodes<\/strong>&nbsp;: C\u00e1c m\u00e1y ch\u1ee7 t\u1ea1o n\u00ean c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng c\u1ee7a b\u1ea1n v\u00e0 \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd b\u1edfi Ansible control node. Managed node kh\u00f4ng y\u00eau c\u1ea7u ph\u1ea3i c\u00e0i \u0111\u1eb7t Ansible tr\u00ean ch\u00fang.<\/li>\n<li><strong>Inventory<\/strong>&nbsp;: Ansible theo d\u00f5i c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a m\u00ecnh b\u1eb1ng&nbsp;<a href=\"http:\/\/docs.ansible.com\/ansible\/intro_inventory.html\" target=\"_blank\" rel=\"noreferrer noopener\">t\u1ec7p inventory<\/a>&nbsp;th\u01b0\u1eddng n\u1eb1m trong&nbsp;<code>\/etc\/ansible\/hosts<\/code>. Trong t\u1ec7p inventory, b\u1ea1n c\u00f3 th\u1ec3 nh\u00f3m c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a m\u00ecnh v\u00e0 s\u1eed d\u1ee5ng c\u00e1c nh\u00f3m n\u00e0y \u0111\u1ec3 nh\u1eafm m\u1ee5c ti\u00eau \u0111\u1ebfn c\u00e1c m\u00e1y ch\u1ee7 c\u1ee5 th\u1ec3 t\u1ea1o n\u00ean c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng c\u1ee7a b\u1ea1n. Ansible c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng nhi\u1ec1u ngu\u1ed3n inventory, nh\u01b0 c\u00e1c t\u1ec7p inventory kh\u00e1c v\u00e0 inventory \u0111\u1ed9ng \u0111\u01b0\u1ee3c k\u00e9o b\u1eb1ng plugin inventory ho\u1eb7c t\u1eadp l\u1ec7nh inventory.N\u1ebfu c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd Ansible c\u1ee7a b\u1ea1n s\u1ebd thay \u0111\u1ed5i theo th\u1eddi gian, b\u1ea1n n\u00ean s\u1eed d\u1ee5ng&nbsp;<a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/plugins\/inventory\/linode.html\" target=\"_blank\" rel=\"noreferrer noopener\">plugin ki\u1ec3m k\u00ea \u0111\u1ed9ng cho Linode<\/a>&nbsp;. B\u1ea1n c\u00f3 th\u1ec3 \u0111\u1ecdc&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/deploy-linodes-using-ansible\/\">C\u00e1ch s\u1eed d\u1ee5ng M\u00f4-\u0111un Linode Ansible \u0111\u1ec3 Tri\u1ec3n khai Linode<\/a>&nbsp;\u0111\u1ec3 t\u00ecm hi\u1ec3u c\u00e1ch s\u1eed d\u1ee5ng plugin n\u00e0y.<\/li>\n<li><strong>Module<\/strong>&nbsp;: Module b\u1ed5 sung th\u00eam ch\u1ee9c n\u0103ng cho Ansible. B\u1ea1n c\u00f3 th\u1ec3 g\u1ecdi module Ansible tr\u1ef1c ti\u1ebfp t\u1eeb d\u00f2ng l\u1ec7nh \u0111\u1ec3 th\u1ef1c thi tr\u00ean c\u00e1c node \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a m\u00ecnh ho\u1eb7c s\u1eed d\u1ee5ng ch\u00fang trong Playbook c\u1ee7a b\u1ea1n. Xem&nbsp;<a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/modules\/modules_by_category.html\" target=\"_blank\" rel=\"noreferrer noopener\">ch\u1ec9 m\u1ee5c module c\u1ee7a Ansible<\/a>&nbsp;\u0111\u1ec3 bi\u1ebft danh s\u00e1ch c\u00e1c module kh\u1ea3 d\u1ee5ng theo t\u1eebng danh m\u1ee5c.<\/li>\n<li><strong>Nhi\u1ec7m v\u1ee5<\/strong>&nbsp;: \u0110\u01a1n v\u1ecb th\u1ef1c thi \u0111\u01a1n gi\u1ea3n nh\u1ea5t trong Ansible l\u00e0 m\u1ed9t nhi\u1ec7m v\u1ee5. Nhi\u1ec7m v\u1ee5 s\u1eed d\u1ee5ng c\u00e1c m\u00f4-\u0111un Ansible \u0111\u1ec3 qu\u1ea3n l\u00fd c\u00e1c d\u1ecbch v\u1ee5, g\u00f3i, t\u1ec7p c\u1ee7a m\u00e1y ch\u1ee7 v\u00e0 th\u1ef1c hi\u1ec7n nhi\u1ec1u c\u1ea5u h\u00ecnh h\u1ec7 th\u1ed1ng kh\u00e1c nhau. Nhi\u1ec7m v\u1ee5 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c th\u1ef1c thi t\u1eeb d\u00f2ng l\u1ec7nh ho\u1eb7c trong Playbooks.<\/li>\n<li><strong>Playbooks<\/strong>&nbsp;: Playbooks l\u00e0 c\u00e1c t\u1ec7p YAML ch\u1ee9a danh s\u00e1ch c\u00e1c t\u00e1c v\u1ee5 theo th\u1ee9 t\u1ef1 th\u1ef1c hi\u1ec7n mong mu\u1ed1n. B\u1ea1n c\u00f3 th\u1ec3 ch\u1ea1y Playbooks tr\u00ean c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a m\u00ecnh v\u00e0 s\u1eed d\u1ee5ng l\u1ea1i c\u0169ng nh\u01b0 chia s\u1ebb ch\u00fang.&nbsp;<a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/user_guide\/playbooks_variables.html\" target=\"_blank\" rel=\"noreferrer noopener\">Bi\u1ebfn<\/a>&nbsp;v\u00e0&nbsp;<a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/user_guide\/playbooks_templating.html\" target=\"_blank\" rel=\"noreferrer noopener\">m\u1eabu Jinja<\/a>&nbsp;cung c\u1ea5p m\u1ed9t c\u00e1ch m\u1ea1nh m\u1ebd \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 ph\u1ee9c t\u1ea1p tr\u00ean c\u00e1c m\u00e1y ch\u1ee7 \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a b\u1ea1n.<\/li>\n<\/ul>\n<h2 id=\"scope-of-this-guide\">Ph\u1ea1m vi c\u1ee7a H\u01b0\u1edbng d\u1eabn n\u00e0y<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#scope-of-this-guide\"><\/a><\/h2>\n<p>H\u01b0\u1edbng d\u1eabn n\u00e0y gi\u1edbi thi\u1ec7u nh\u1eefng \u0111i\u1ec1u c\u01a1 b\u1ea3n v\u1ec1 c\u00e0i \u0111\u1eb7t Ansible v\u00e0 chu\u1ea9n b\u1ecb m\u00f4i tr\u01b0\u1eddng c\u1ee7a b\u1ea1n \u0111\u1ec3 s\u1eed d\u1ee5ng&nbsp;<a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/user_guide\/playbooks.html\" target=\"_blank\" rel=\"noreferrer noopener\">Playbooks<\/a>&nbsp;. B\u1ea1n s\u1ebd ho\u00e0n th\u00e0nh c\u00e1c b\u01b0\u1edbc sau trong h\u01b0\u1edbng d\u1eabn n\u00e0y:<\/p>\n<ul>\n<li>C\u00e0i \u0111\u1eb7t v\u00e0 c\u1ea5u h\u00ecnh Ansible tr\u00ean m\u00e1y t\u00ednh ho\u1eb7c Linode \u0111\u1ec3 l\u00e0m n\u00fat \u0111i\u1ec1u khi\u1ec3n qu\u1ea3n l\u00fd c\u00e1c n\u00fat c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng c\u1ee7a b\u1ea1n.<\/li>\n<li>T\u1ea1o hai Linode \u0111\u1ec3 qu\u1ea3n l\u00fd b\u1eb1ng Ansible v\u00e0 thi\u1ebft l\u1eadp k\u1ebft n\u1ed1i c\u01a1 b\u1ea3n gi\u1eefa n\u00fat \u0111i\u1ec1u khi\u1ec3n v\u00e0 c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a b\u1ea1n. C\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd s\u1ebd \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0&nbsp;<code>node-1<\/code>, v\u00e0&nbsp;<code>node-2<\/code>trong su\u1ed1t h\u01b0\u1edbng d\u1eabn.<\/li>\n<\/ul>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: C\u00e1c v\u00ed d\u1ee5 trong h\u01b0\u1edbng d\u1eabn n\u00e0y cung c\u1ea5p ph\u01b0\u01a1ng ph\u00e1p th\u1ee7 c\u00f4ng \u0111\u1ec3 thi\u1ebft l\u1eadp k\u1ebft n\u1ed1i c\u01a1 b\u1ea3n gi\u1eefa n\u00fat \u0111i\u1ec1u khi\u1ec3n v\u00e0 n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a b\u1ea1n nh\u01b0 m\u1ed9t c\u00e1ch \u0111\u1ec3 gi\u1edbi thi\u1ec7u nh\u1eefng \u0111i\u1ec1u c\u01a1 b\u1ea3n v\u1ec1 Ansible. N\u1ebfu b\u1ea1n mu\u1ed1n t\u00ecm hi\u1ec3u c\u00e1ch s\u1eed d\u1ee5ng&nbsp;<a href=\"https:\/\/docs.ansible.com\/ansible\/latest\/modules\/linode_v4_module.html\" target=\"_blank\" rel=\"noreferrer noopener\">m\u00f4-\u0111un Linode<\/a>&nbsp;c\u1ee7a Ansible \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng tri\u1ec3n khai v\u00e0 qu\u1ea3n l\u00fd Linode, h\u00e3y xem&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/deploy-linodes-using-ansible\/\">C\u00e1ch s\u1eed d\u1ee5ng M\u00f4-\u0111un Linode Ansible \u0111\u1ec3 Tri\u1ec3n khai Linode<\/a>&nbsp;. H\u01b0\u1edbng d\u1eabn n\u00e0y gi\u1ea3 \u0111\u1ecbnh r\u1eb1ng b\u1ea1n \u0111\u00e3 quen thu\u1ed9c v\u1edbi c\u00e1c m\u00f4-\u0111un Ansible, Playbook v\u00e0 kho l\u01b0u tr\u1eef \u0111\u1ed9ng.<\/p>\n<h2 id=\"before-you-begin\">Tr\u01b0\u1edbc khi b\u1ea1n b\u1eaft \u0111\u1ea7u<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#before-you-begin\"><\/a><\/h2>\n<p class=\"has-background\" style=\"background-color:#f32a2a33\">Quan tr\u1ecdng:C\u00e1c h\u01b0\u1edbng d\u1eabn m\u1eabu trong h\u01b0\u1edbng d\u1eabn n\u00e0y s\u1ebd t\u1ea1o t\u1ed1i \u0111a ba Linode c\u00f3 th\u1ec3 thanh to\u00e1n tr\u00ean t\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n. N\u1ebfu b\u1ea1n kh\u00f4ng mu\u1ed1n ti\u1ebfp t\u1ee5c s\u1eed d\u1ee5ng c\u00e1c Linode m\u1eabu m\u00e0 b\u1ea1n t\u1ea1o, h\u00e3y \u0111\u1ea3m b\u1ea3o x\u00f3a&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#delete-a-cluster\">ch\u00fang<\/a>&nbsp;khi b\u1ea1n ho\u00e0n th\u00e0nh h\u01b0\u1edbng d\u1eabn.<\/p>\n<p class=\"has-background\" style=\"background-color:#f32a2a33\">N\u1ebfu b\u1ea1n x\u00f3a t\u00e0i nguy\u00ean sau \u0111\u00f3, b\u1ea1n s\u1ebd ch\u1ec9 b\u1ecb t\u00ednh ph\u00ed cho gi\u1edd m\u00e0 t\u00e0i nguy\u00ean c\u00f3 trong t\u00e0i kho\u1ea3n c\u1ee7a b\u1ea1n. Tham kh\u1ea3o h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/products\/platform\/billing\/\">Thanh to\u00e1n v\u00e0 l\u1eadp h\u00f3a \u0111\u01a1n<\/a>&nbsp;\u0111\u1ec3 bi\u1ebft th\u00f4ng tin chi ti\u1ebft v\u1ec1 c\u00e1ch th\u1ee9c ho\u1ea1t \u0111\u1ed9ng c\u1ee7a t\u00ednh n\u0103ng l\u1eadp h\u00f3a \u0111\u01a1n theo gi\u1edd.<\/p>\n<p>1.<a href=\"https:\/\/www.linode.com\/docs\/products\/compute\/compute-instances\/guides\/create\/\">T\u1ea1o hai Linode<\/a>&nbsp;ch\u1ea1y Ubuntu 22.04 LTS l\u00e0m&nbsp;<strong>c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd<\/strong>&nbsp;c\u1ee7a b\u1ea1n . C\u00e1c v\u00ed d\u1ee5 trong h\u01b0\u1edbng d\u1eabn n\u00e0y c\u0169ng c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng m\u1ed9t n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd duy nh\u1ea5t, n\u1ebfu mu\u1ed1n.<\/p>\n<p>2.Ansible s\u1eed d\u1ee5ng giao th\u1ee9c SSH \u0111\u1ec3 \u0111\u0103ng nh\u1eadp an to\u00e0n v\u00e0o c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd v\u00e0 \u00e1p d\u1ee5ng c\u1ea5u h\u00ecnh Playbook c\u1ee7a b\u1ea1n. T\u1ea1o c\u1eb7p kh\u00f3a SSH tr\u00ean n\u00fat \u0111i\u1ec1u khi\u1ec3n \u0111\u1ec3 s\u1eed d\u1ee5ng cho x\u00e1c th\u1ef1c. H\u01b0\u1edbng d\u1eabn n\u00e0y gi\u1ea3 \u0111\u1ecbnh c\u1eb7p kh\u00f3a SSH c\u00f4ng khai v\u00e0 ri\u00eang t\u01b0 c\u1ee7a b\u1ea1n \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong&nbsp;<code>~\/.ssh\/id_rsa.pub<\/code>v\u00e0&nbsp;<code>~\/.ssh\/id_rsa<\/code>.<\/p>\n<pre class=\"wp-block-code\"><code><code>ssh-keygen -t rsa -b 4096<\/code><\/code><\/pre>\n<p>3.Sao ch\u00e9p kh\u00f3a v\u00e0o&nbsp;<code>node-1<\/code>. Thay th\u1ebf&nbsp;<code>203.0.113.0<\/code>b\u1eb1ng \u0111\u1ecba ch\u1ec9 IP c\u1ee7a Linode \u0111\u01b0\u1ee3c b\u1ea1n qu\u1ea3n l\u00fd.<\/p>\n<pre class=\"wp-block-code\"><code><code>ssh-copy-id root@203.0.113.0<\/code><\/code><\/pre>\n<p>L\u1eb7p l\u1ea1i quy tr\u00ecnh n\u00e0y cho m\u1ed7i n\u00fat c\u00f2n l\u1ea1i.<\/p>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa:B\u01b0\u1edbc n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c t\u1ef1 \u0111\u1ed9ng h\u00f3a b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng m\u00f4-\u0111un Linode c\u1ee7a Ansible. Xem&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/deploy-linodes-using-ansible\/\">C\u00e1ch s\u1eed d\u1ee5ng M\u00f4-\u0111un Linode Ansible \u0111\u1ec3 Tri\u1ec3n khai Linode<\/a>&nbsp;\u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin.<\/p>\n<h2 id=\"set-up-the-control-node\">Thi\u1ebft l\u1eadp n\u00fat \u0111i\u1ec1u khi\u1ec3n<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#set-up-the-control-node\"><\/a><\/h2>\n<h3 id=\"install-and-set-up-miniconda\">C\u00e0i \u0111\u1eb7t v\u00e0 thi\u1ebft l\u1eadp Miniconda<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#install-and-set-up-miniconda\"><\/a><\/h3>\n<p>V\u1edbi Miniconda, b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o m\u00f4i tr\u01b0\u1eddng \u1ea3o h\u00f3a cho Ansible, gi\u00fap \u0111\u01a1n gi\u1ea3n h\u00f3a quy tr\u00ecnh c\u00e0i \u0111\u1eb7t cho h\u1ea7u h\u1ebft c\u00e1c Distro v\u00e0 m\u00f4i tr\u01b0\u1eddng y\u00eau c\u1ea7u nhi\u1ec1u phi\u00ean b\u1ea3n Python. N\u00fat \u0111i\u1ec1u khi\u1ec3n c\u1ee7a b\u1ea1n s\u1ebd y\u00eau c\u1ea7u Python phi\u00ean b\u1ea3n 2.7 tr\u1edf l\u00ean \u0111\u1ec3 ch\u1ea1y Ansible.<\/p>\n<p>1.T\u1ea3i xu\u1ed1ng v\u00e0 c\u00e0i \u0111\u1eb7t Miniconda:<\/p>\n<pre class=\"wp-block-code\"><code>curl -OL https:\/\/repo.continuum.io\/miniconda\/Miniconda3-latest-Linux-x86_64.sh\nbash Miniconda3-latest-Linux-x86_64.sh<\/code><\/pre>\n<p>2.B\u1ea1n s\u1ebd \u0111\u01b0\u1ee3c nh\u1eafc nhi\u1ec1u l\u1ea7n trong qu\u00e1 tr\u00ecnh c\u00e0i \u0111\u1eb7t. Xem l\u1ea1i c\u00e1c \u0111i\u1ec1u kho\u1ea3n v\u00e0 \u0111i\u1ec1u ki\u1ec7n v\u00e0 ch\u1ecdn &#8220;c\u00f3&#8221; cho m\u1ed7i l\u1eddi nh\u1eafc.<\/p>\n<p>3.Kh\u1edfi \u0111\u1ed9ng l\u1ea1i phi\u00ean shell \u0111\u1ec3 nh\u1eefng thay \u0111\u1ed5i trong PATH c\u00f3 hi\u1ec7u l\u1ef1c.<\/p>\n<pre class=\"wp-block-code\"><code>exec bash -l<\/code><\/pre>\n<p>4.T\u1ea1o m\u00f4i tr\u01b0\u1eddng \u1ea3o m\u1edbi cho Ansible:<\/p>\n<pre class=\"wp-block-code\"><code>conda create -n ansible-dev python=3<\/code><\/pre>\n<p>5.K\u00edch ho\u1ea1t m\u00f4i tr\u01b0\u1eddng m\u1edbi:<code>conda <\/code><\/p>\n<pre class=\"wp-block-code\"><code>conda activate ansible-dev<\/code><\/pre>\n<p>6.Ki\u1ec3m tra phi\u00ean b\u1ea3n Python c\u1ee7a b\u1ea1n:<\/p>\n<pre class=\"wp-block-code\"><code>python --version<\/code><\/pre>\n<h3 id=\"install-ansible\">C\u00e0i \u0111\u1eb7t Ansible<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#install-ansible\"><\/a><\/h3>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c t\u1ea1o b\u1eb1ng Ansible 2.8.<\/p>\n<p>1.Th\u1ef1c hi\u1ec7n theo c\u00e1c b\u01b0\u1edbc c\u00e0i \u0111\u1eb7t Ansible li\u00ean quan \u0111\u1ebfn b\u1ea3n ph\u00e2n ph\u1ed1i c\u1ee7a n\u00fat \u0111i\u1ec1u khi\u1ec3n c\u1ee7a b\u1ea1n.<\/p>\n<p>H\u1ec7 \u0111i\u1ec1u h\u00e0nh MacOS<\/p>\n<pre class=\"wp-block-code\"><code>sudo easy_install pip\nsudo pip install ansible<\/code><\/pre>\n<p>Linux<\/p>\n<pre class=\"wp-block-code\"><code>pip install ansible<\/code><\/pre>\n<p class=\"has-background\" style=\"background-color:#74f78c33\">Ghi ch\u00fa: Kho l\u01b0u tr\u1eef EPEL-Release c\u00f3 th\u1ec3 c\u1ea7n \u0111\u01b0\u1ee3c th\u00eam v\u00e0o m\u1ed9t s\u1ed1 phi\u00ean b\u1ea3n CentOS, RHEL v\u00e0 Scientific Linux.<\/p>\n<p>2.X\u00e1c minh r\u1eb1ng Ansible \u0111\u00e3 \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t:<\/p>\n<pre class=\"wp-block-code\"><code>ansible --version<\/code><\/pre>\n<h2 id=\"configure-ansible\">C\u1ea5u h\u00ecnh Ansible<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#configure-ansible\"><\/a><\/h2>\n<p>1.\u0110\u1ec3 xem danh s\u00e1ch t\u1ea5t c\u1ea3 c\u00e1c c\u1ea5u h\u00ecnh hi\u1ec7n t\u1ea1i c\u00f3 s\u1eb5n cho n\u00fat \u0111i\u1ec1u khi\u1ec3n c\u1ee7a b\u1ea1n, h\u00e3y s\u1eed d\u1ee5ng&nbsp;<code>ansible-config<\/code>ti\u1ec7n \u00edch d\u00f2ng l\u1ec7nh.<\/p>\n<pre class=\"wp-block-code\"><code>ansible-config list<\/code><\/pre>\n<p>B\u1ea1n s\u1ebd th\u1ea5y k\u1ebft qu\u1ea3 t\u01b0\u01a1ng t\u1ef1:<\/p>\n<pre class=\"wp-block-code\"><code> ACTION_WARNINGS:\n  default: true\n  description: &#91;By default Ansible will issue a warning when received from a task\n      action (module or action plugin), These warnings can be silenced by adjusting\n      this setting to False.]\n  env:\n  - {name: ANSIBLE_ACTION_WARNINGS}\n  ini:\n  - {key: action_warnings, section: defaults}\n  name: Toggle action warnings\n  type: boolean\n  version_added: '2.5'\nAGNOSTIC_BECOME_PROMPT:\n  default: false\n  ...<\/code><\/pre>\n<p>Ghi ch\u00fa: \u0110\u1ec3 th\u1ef1c hi\u1ec7n c\u1ea5u h\u00ecnh n\u00e2ng cao, b\u1ea1n s\u1ebd c\u1ea7n ch\u1ec9nh s\u1eeda t\u1ec7p&nbsp;<code>ansible.cfg<\/code>c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c t\u1ea1o b\u1eb1ng l\u1ec7nh sau:<\/p>\n<pre class=\"wp-block-code\"><code>ansible-config init --disabled &gt; ansible.cfg<\/code><\/pre>\n<p>Trong m\u1ed9t s\u1ed1 c\u00e0i \u0111\u1eb7t, t\u1eadp tin n\u00e0y s\u1ebd c\u00f3 s\u1eb5n trong&nbsp;<code>\/etc\/ansible\/<\/code>th\u01b0 m\u1ee5c.<\/p>\n<h3 id=\"create-an-ansible-inventory\">T\u1ea1o m\u1ed9t Ansible Inventory<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#create-an-ansible-inventory\"><\/a><\/h3>\n<p>Ansible theo d\u00f5i c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a m\u00ecnh b\u1eb1ng&nbsp;<a href=\"http:\/\/docs.ansible.com\/ansible\/intro_inventory.html\" target=\"_blank\" rel=\"noreferrer noopener\">t\u1ec7p ki\u1ec3m k\u00ea<\/a>&nbsp;n\u1eb1m trong&nbsp;<code>\/etc\/ansible\/hosts<\/code>. Trong t\u1ec7p ki\u1ec3m k\u00ea, b\u1ea1n c\u00f3 th\u1ec3 nh\u00f3m c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a m\u00ecnh v\u00e0 s\u1eed d\u1ee5ng c\u00e1c nh\u00f3m n\u00e0y \u0111\u1ec3 nh\u1eafm m\u1ee5c ti\u00eau \u0111\u1ebfn c\u00e1c m\u00e1y ch\u1ee7 c\u1ee5 th\u1ec3 t\u1ea1o n\u00ean c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng c\u1ee7a b\u1ea1n. Ansible c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng nhi\u1ec1u ngu\u1ed3n ki\u1ec3m k\u00ea, nh\u01b0 c\u00e1c t\u1ec7p ki\u1ec3m k\u00ea kh\u00e1c v\u00e0 ki\u1ec3m k\u00ea \u0111\u1ed9ng \u0111\u01b0\u1ee3c k\u00e9o b\u1eb1ng plugin ho\u1eb7c t\u1eadp l\u1ec7nh ki\u1ec3m k\u00ea. N\u1ebfu c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd Ansible c\u1ee7a b\u1ea1n s\u1ebd thay \u0111\u1ed5i theo th\u1eddi gian, b\u1ea1n n\u00ean s\u1eed d\u1ee5ng plugin ki\u1ec3m k\u00ea \u0111\u1ed9ng cho Linode. B\u1ea1n c\u00f3 th\u1ec3 \u0111\u1ecdc C\u00e1ch&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/deploy-linodes-using-ansible\/\">s\u1eed d\u1ee5ng M\u00f4-\u0111un Linode Ansible \u0111\u1ec3 Tri\u1ec3n khai Linode<\/a>&nbsp;\u0111\u1ec3 t\u00ecm hi\u1ec3u c\u00e1ch qu\u1ea3n l\u00fd Linode.<\/p>\n<p>Theo v\u00ed d\u1ee5 b\u00ean d\u01b0\u1edbi, b\u1ea1n s\u1ebd th\u00eam&nbsp;<strong>c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd<\/strong>&nbsp;c\u1ee7a m\u00ecnh v\u00e0o&nbsp;<code>\/etc\/ansible\/hosts<\/code>t\u1ec7p h\u00e0ng t\u1ed3n kho trong hai nh\u00f3m ri\u00eang bi\u1ec7t. C\u00e1c n\u00fat c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea b\u1eb1ng t\u00ean c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c ph\u00e2n gi\u1ea3i b\u1eb1ng DNS ho\u1eb7c \u0111\u1ecba ch\u1ec9 IP.<\/p>\n<p>1.Th\u00eam c\u00e1c n\u00fat c\u1ee7a b\u1ea1n v\u00e0o t\u1ec7p h\u00e0ng t\u1ed3n kho m\u1eb7c \u0111\u1ecbnh. Thay th\u1ebf&nbsp;<code>203.0.113.0<\/code>v\u00e0&nbsp;<code>203.0.113.1<\/code>b\u1eb1ng \u0111\u1ecba ch\u1ec9 IP c\u00f4ng khai ho\u1eb7c t\u00ean mi\u1ec1n c\u1ee7a m\u1ed7i n\u00fat c\u1ee7a b\u1ea1n.<\/p>\n<pre class=\"wp-block-code\"><code>&#91;nginx]\n203.0.113.0\n\n&#91;wordpress]\n203.0.113.1<\/code><\/pre>\n<p>M\u1ed7i nh\u00e3n trong ngo\u1eb7c bi\u1ec3u th\u1ecb m\u1ed9t&nbsp;<a href=\"http:\/\/docs.ansible.com\/ansible\/latest\/intro_inventory.html#hosts-and-groups\" target=\"_blank\" rel=\"noreferrer noopener\">nh\u00f3m<\/a>&nbsp;Ansible . Vi\u1ec7c nh\u00f3m c\u00e1c n\u00fat theo ch\u1ee9c n\u0103ng s\u1ebd gi\u00fap b\u1ea1n ch\u1ea1y l\u1ec7nh d\u1ec5 d\u00e0ng h\u01a1n tr\u00ean t\u1eadp h\u1ee3p c\u00e1c n\u00fat ch\u00ednh x\u00e1c.<\/p>\n<p>Ghi ch\u00fa: Theo m\u1eb7c \u0111\u1ecbnh, th\u01b0&nbsp;<code>\/etc\/ansible<\/code>m\u1ee5c s\u1ebd kh\u00f4ng t\u1ed3n t\u1ea1i trong m\u1ed9t s\u1ed1 m\u00f4i tr\u01b0\u1eddng. N\u1ebfu b\u1ea1n th\u1ea5y tr\u01b0\u1eddng h\u1ee3p n\u00e0y x\u1ea3y ra, h\u00e3y t\u1ea1o th\u1ee7 c\u00f4ng b\u1eb1ng l\u1ec7nh sau:<\/p>\n<pre class=\"wp-block-code\"><code>mkdir \/etc\/ansible\/<\/code><\/pre>\n<p>N\u1ebfu b\u1ea1n \u0111ang s\u1eed d\u1ee5ng c\u1ed5ng SSH kh\u00f4ng chu\u1ea9n tr\u00ean c\u00e1c n\u00fat c\u1ee7a m\u00ecnh, h\u00e3y th\u00eam c\u1ed5ng sau d\u1ea5u hai ch\u1ea5m tr\u00ean c\u00f9ng m\u1ed9t d\u00f2ng trong t\u1ec7p m\u00e1y ch\u1ee7 (&nbsp;<code>203.0.113.1:2222<\/code>).<\/p>\n<h2 id=\"connect-to-your-managed-nodes\">K\u1ebft n\u1ed1i v\u1edbi c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd c\u1ee7a b\u1ea1n<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#connect-to-your-managed-nodes\"><\/a><\/h2>\n<p>Sau khi c\u1ea5u h\u00ecnh n\u00fat \u0111i\u1ec1u khi\u1ec3n, b\u1ea1n c\u00f3 th\u1ec3 giao ti\u1ebfp v\u1edbi c\u00e1c n\u00fat \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd v\u00e0 b\u1eaft \u0111\u1ea7u c\u1ea5u h\u00ecnh ch\u00fang khi c\u1ea7n. Trong ph\u1ea7n n\u00e0y, b\u1ea1n s\u1ebd ki\u1ec3m tra k\u1ebft n\u1ed1i v\u1edbi c\u00e1c m\u00e1y ch\u1ee7 \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd Ansible c\u1ee7a m\u00ecnh b\u1eb1ng m\u00f4-\u0111un ping. M\u00f4-\u0111un ping tr\u1ea3 v\u1ec1 ph\u1ea3n h\u1ed3i \u201cpong\u201d khi m\u1ed9t n\u00fat \u0111i\u1ec1u khi\u1ec3n th\u00e0nh c\u00f4ng khi \u0111\u1ebfn \u0111\u01b0\u1ee3c m\u1ed9t n\u00fat. Vi\u1ec7c ping c\u00e1c m\u00e1y ch\u1ee7 c\u1ee7a b\u1ea1n s\u1ebd x\u00e1c minh k\u1ebft n\u1ed1i c\u1ee7a b\u1ea1n v\u00e0 n\u00fat \u0111i\u1ec1u khi\u1ec3n c\u00f3 th\u1ec3 th\u1ef1c thi Python tr\u00ean c\u00e1c m\u00e1y ch\u1ee7.<\/p>\n<p>1.S\u1eed d\u1ee5ng&nbsp;<code>all<\/code>l\u1ec7nh \u0111\u1ec3 ping t\u1ea5t c\u1ea3 c\u00e1c m\u00e1y ch\u1ee7 trong kho c\u1ee7a b\u1ea1n. Theo m\u1eb7c \u0111\u1ecbnh, Ansible s\u1ebd s\u1eed d\u1ee5ng t\u00ean t\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng c\u1ee5c b\u1ed9 c\u1ee7a b\u1ea1n \u0111\u1ec3 k\u1ebft n\u1ed1i v\u1edbi c\u00e1c n\u00fat c\u1ee7a b\u1ea1n qua SSH. B\u1ea1n c\u00f3 th\u1ec3 ghi \u0111\u00e8 h\u00e0nh vi m\u1eb7c \u0111\u1ecbnh b\u1eb1ng c\u00e1ch truy\u1ec1n t\u00f9y&nbsp;<code>-u<\/code>ch\u1ecdn, c\u1ed9ng v\u1edbi t\u00ean ng\u01b0\u1eddi d\u00f9ng mong mu\u1ed1n. V\u00ec kh\u00f4ng c\u00f3 t\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng chu\u1ea9n n\u00e0o tr\u00ean c\u00e1c n\u00fat, trong v\u00ed d\u1ee5, b\u1ea1n ch\u1ea1y l\u1ec7nh v\u1edbi t\u01b0 c\u00e1ch l\u00e0 ng\u01b0\u1eddi d\u00f9ng root.<\/p>\n<pre class=\"wp-block-code\"><code>ansible all -u root -m ping<\/code><\/pre>\n<p>B\u1ea1n s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c k\u1ebft qu\u1ea3 t\u01b0\u01a1ng t\u1ef1:<\/p>\n<pre class=\"wp-block-code\"><code>192.0.2.0 | SUCCESS =&gt; {\n    \"changed\": false,\n    \"ping\": \"pong\"\n}\n192.0.2.1 | SUCCESS =&gt; {\n    \"changed\": false,\n    \"ping\": \"pong\"\n}<\/code><\/pre>\n<p>2.L\u1eb7p l\u1ea1i l\u1ec7nh, ch\u1ec9 nh\u1eafm m\u1ee5c ti\u00eau v\u00e0o c\u00e1c n\u00fat trong&nbsp;<code>[nginx]<\/code>nh\u00f3m m\u00e0 b\u1ea1n \u0111\u00e3 x\u00e1c \u0111\u1ecbnh trong&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#create-an-ansible-inventory\">t\u1ec7p ki\u1ec3m k\u00ea<\/a>&nbsp;c\u1ee7a m\u00ecnh .<\/p>\n<pre class=\"wp-block-code\"><code>ansible nginx -u root -m ping<\/code><\/pre>\n<p>L\u1ea7n n\u00e0y ch\u1ec9&nbsp;<code>node-1<\/code>n\u00ean ph\u1ea3n h\u1ed3i th\u00f4i.<\/p>\n<h2 id=\"next-steps\">C\u00e1c b\u01b0\u1edbc ti\u1ebfp theo<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#next-steps\"><\/a><\/h2>\n<ol>\n<li>B\u00e2y gi\u1edd b\u1ea1n \u0111\u00e3 c\u00e0i \u0111\u1eb7t v\u00e0 c\u1ea5u h\u00ecnh Ansible, b\u1ea1n c\u00f3 th\u1ec3 b\u1eaft \u0111\u1ea7u s\u1eed d\u1ee5ng Playbooks \u0111\u1ec3 qu\u1ea3n l\u00fd c\u1ea5u h\u00ecnh Linodes c\u1ee7a m\u00ecnh. H\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/running-ansible-playbooks\/\">T\u1ef1 \u0111\u1ed9ng c\u1ea5u h\u00ecnh m\u00e1y ch\u1ee7 v\u1edbi Ansible Playbooks<\/a>&nbsp;c\u1ee7a ch\u00fang t\u00f4i s\u1ebd tr\u00ecnh b\u00e0y m\u1ed9t m\u00e1y ch\u1ee7 web c\u01a1 b\u1ea3n \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp b\u1eb1ng Ansible Playbook.<\/li>\n<li>B\u1ea1n c\u0169ng c\u00f3 th\u1ec3 tham kh\u1ea3o m\u1ed9t s\u1ed1&nbsp;<a href=\"https:\/\/github.com\/ansible\/ansible-examples\" target=\"_blank\" rel=\"noreferrer noopener\">h\u01b0\u1edbng d\u1eabn m\u1eabu<\/a>&nbsp;tr\u00ean t\u00e0i kho\u1ea3n GitHub c\u1ee7a Ansible \u0111\u1ec3 xem nhi\u1ec1u c\u00e1ch tri\u1ec3n khai kh\u00e1c nhau.<\/li>\n<li>Tham kh\u1ea3o c\u00e1c li\u00ean k\u1ebft b\u00ean d\u01b0\u1edbi \u0111\u1ec3 t\u00ecm hi\u1ec3u th\u00eam m\u1ed9t s\u1ed1 kh\u00e1i ni\u1ec7m n\u00e2ng cao li\u00ean quan \u0111\u1ebfn vi\u1ec7c vi\u1ebft Playbook:\n<ul>\n<li><a href=\"http:\/\/docs.ansible.com\/ansible\/playbooks_intro.html#hosts-and-users\" target=\"_blank\" rel=\"noreferrer noopener\">Ng\u01b0\u1eddi d\u00f9ng, v\u00e0 Chuy\u1ec3n \u0111\u1ed5i Ng\u01b0\u1eddi d\u00f9ng<\/a>&nbsp;v\u00e0&nbsp;<a href=\"http:\/\/docs.ansible.com\/ansible\/become.html\" target=\"_blank\" rel=\"noreferrer noopener\">T\u0103ng quy\u1ec1n<\/a><\/li>\n<li><a href=\"http:\/\/docs.ansible.com\/ansible\/playbooks_intro.html#handlers-running-operations-on-change\" target=\"_blank\" rel=\"noreferrer noopener\">Ng\u01b0\u1eddi x\u1eed l\u00fd: Ch\u1ea1y c\u00e1c ho\u1ea1t \u0111\u1ed9ng khi thay \u0111\u1ed5i<\/a><\/li>\n<li><a href=\"http:\/\/docs.ansible.com\/ansible\/playbooks_roles.html\" target=\"_blank\" rel=\"noreferrer noopener\">Vai tr\u00f2<\/a><\/li>\n<li><a href=\"http:\/\/docs.ansible.com\/ansible\/playbooks_variables.html\" target=\"_blank\" rel=\"noreferrer noopener\">Bi\u1ebfn s\u1ed1<\/a><\/li>\n<li><a href=\"http:\/\/docs.ansible.com\/ansible\/playbooks_best_practices.html\" target=\"_blank\" rel=\"noreferrer noopener\">Th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t c\u1ee7a Playbook<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"delete-your-linodes\">X\u00f3a Linode c\u1ee7a b\u1ea1n<a href=\"https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/#delete-your-linodes\"><\/a><\/h3>\n<p>N\u1ebfu b\u1ea1n kh\u00f4ng mu\u1ed1n s\u1eed d\u1ee5ng Linodes \u0111\u01b0\u1ee3c t\u1ea1o trong h\u01b0\u1edbng d\u1eabn n\u00e0y n\u1eefa, b\u1ea1n c\u00f3 th\u1ec3 x\u00f3a ch\u00fang b\u1eb1ng&nbsp;<a href=\"https:\/\/cloud.linode.com\/linodes\" target=\"_blank\" rel=\"noreferrer noopener\">Linode Cloud Manager<\/a>&nbsp;. \u0110\u1ec3 t\u00ecm hi\u1ec3u c\u00e1ch x\u00f3a t\u00e0i nguy\u00ean Linode b\u1eb1ng m\u00f4-\u0111un Linode c\u1ee7a Ansible, h\u00e3y xem ph\u1ea7n&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/deploy-linodes-using-ansible\/#delete-your-resources\">X\u00f3a t\u00e0i nguy\u00ean c\u1ee7a b\u1ea1n<\/a>&nbsp;trong h\u01b0\u1edbng d\u1eabn&nbsp;<a href=\"https:\/\/www.linode.com\/docs\/guides\/deploy-linodes-using-ansible\/\">C\u00e1ch s\u1eed d\u1ee5ng M\u00f4-\u0111un Linode Ansible \u0111\u1ec3 tri\u1ec3n khai Linodes<\/a>&nbsp;.<\/p>\n<h2 id=\"more-information\">Th\u00f4ng tin th\u00eam<\/h2>\n<p>B\u1ea1n c\u00f3 th\u1ec3 mu\u1ed1n tham kh\u1ea3o c\u00e1c ngu\u1ed3n sau \u0111\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin v\u1ec1 ch\u1ee7 \u0111\u1ec1 n\u00e0y. M\u1eb7c d\u00f9 ch\u00fang t\u00f4i cung c\u1ea5p v\u1edbi hy v\u1ecdng r\u1eb1ng ch\u00fang s\u1ebd h\u1eefu \u00edch, nh\u01b0ng xin l\u01b0u \u00fd r\u1eb1ng ch\u00fang t\u00f4i kh\u00f4ng th\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh ch\u00ednh x\u00e1c ho\u1eb7c t\u00ednh k\u1ecbp th\u1eddi c\u1ee7a c\u00e1c t\u00e0i li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef b\u00ean ngo\u00e0i.<\/p>\n<ul>\n<li><a href=\"http:\/\/www.ansible.com\/home\" target=\"_blank\" rel=\"noreferrer noopener\">Trang ch\u1ee7 Ansible<\/a><\/li>\n<li><a href=\"http:\/\/docs.ansible.com\/ansible\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">T\u00e0i li\u1ec7u Ansible<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/ansible\/ansible-examples\" target=\"_blank\" rel=\"noreferrer noopener\">V\u00ed d\u1ee5 v\u1ec1 Playbook (GitHub)<\/a><\/li>\n<\/ul>\n<p>Ngu\u1ed3n: https:\/\/www.linode.com\/docs\/guides\/getting-started-with-ansible\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ansible l\u00e0 g\u00ec? Ansible&nbsp;l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 t\u1ef1 \u0111\u1ed9ng h\u00f3a \u0111\u1ec3 cung c\u1ea5p, c\u1ea5u h\u00ecnh v\u00e0 qu\u1ea3n l\u00fd m\u00e1y ch\u1ee7. N\u00f3 cho ph\u00e9p b\u1ea1n s\u1eafp x\u1ebfp c\u00e1c m\u00e1y ch\u1ee7 c\u1ee7a m\u00ecnh th\u00e0nh c\u00e1c nh\u00f3m, m\u00f4 t\u1ea3 c\u00e1ch c\u00e1c nh\u00f3m \u0111\u00f3 n\u00ean \u0111\u01b0\u1ee3c c\u1ea5u h\u00ecnh v\u00e0 nh\u1eefng h\u00e0nh \u0111\u1ed9ng n\u00e0o n\u00ean \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n tr\u00ean ch\u00fang,<\/p>\n","protected":false},"author":1,"featured_media":35675,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129],"tags":[],"class_list":["post-34913","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ansible"],"_links":{"self":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/comments?post=34913"}],"version-history":[{"count":0,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34913\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/35675"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=34913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=34913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=34913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}