[{"data":1,"prerenderedAt":2500},["ShallowReactive",2],{"searchBlogPosts":3,"content-\u002Fblog\u002Fansible-setup-configuration":28},[4,7,10,13,16,19,22,25],{"_path":5,"title":6},"\u002Fblog\u002F2026\u002F03\u002F14\u002Fposthog-observability-tongueflow","How I Used PostHog to Add Observability to My Web App as a Junior DevOps Engineer",{"_path":8,"title":9},"\u002Fblog\u002F2025\u002F10\u002F05\u002Faws-cloud-operations-certification-journey-ssm-lab","AWS Cloud Operations Certification Journey: Mastering Systems Manager",{"_path":11,"title":12},"\u002Fblog\u002F2025\u002F03\u002F14\u002Fansible-setup-configuration","Ansible Setup and Configuration",{"_path":14,"title":15},"\u002Fblog\u002F2025\u002F01\u002F05\u002Fdata-sharing-with-nfs","Data Sharing with NFS: A Complete Guide for System Administrators",{"_path":17,"title":18},"\u002Fblog\u002F2024\u002F05\u002F23\u002Fjava-29th-birth","Java celebrates 29 years of history",{"_path":20,"title":21},"\u002Fblog\u002F2024\u002F03\u002F19\u002Fhow-to-update-to-java21","How to Update to Java 21 Using SDKMAN",{"_path":23,"title":24},"\u002Fblog\u002F2024\u002F02\u002F11\u002Fspring-async-retry","Implementing Asynchronous Retry Mechanism for Email Sending in Spring Applications",{"_path":26,"title":27},"\u002Fblog\u002F2024\u002F01\u002F25\u002Fjdbc-vs-jpa","JDBC vs JPA: Which is Better for Your Application?",{"_path":11,"_dir":29,"_draft":30,"_partial":30,"_locale":31,"title":12,"description":32,"slug":33,"published":34,"date":35,"author":36,"tags":37,"cover":43,"keywords":44,"body":45,"_type":2494,"_id":2495,"_source":1131,"_file":2496,"_stem":2497,"_extension":2498,"sitemap":2499},"14",false,"","Step-by-step guide to setting up an Ansible control node and configuring a worker node for automation, including installing Ansible, SSH key setup, and deploying Nginx.","ansible-setup-configuration",true,"2025-03-14","Nidhal Naffati",[38,39,40,41,42],"Ansible","Automation","DevOps","Nginx","SSH","ansible-setup-cover.png","Ansible, Control Node, Worker Node, SSH, Nginx, Automation, DevOps, Configuration Management",{"type":46,"children":47,"toc":2481},"root",[48,56,63,69,75,80,184,193,199,204,224,232,238,243,358,366,372,377,432,440,446,451,504,510,515,538,543,601,609,615,620,645,650,673,678,1844,1849,1872,1877,2361,2367,2372,2438,2446,2452,2457,2465,2471,2476],{"type":49,"tag":50,"props":51,"children":53},"element","h1",{"id":52},"ansible-setup-and-configuration",[54],{"type":55,"value":12},"text",{"type":49,"tag":57,"props":58,"children":60},"h2",{"id":59},"introduction",[61],{"type":55,"value":62},"Introduction",{"type":49,"tag":64,"props":65,"children":66},"p",{},[67],{"type":55,"value":68},"This guide outlines the step-by-step process of setting up an Ansible control node and configuring a worker node for automation. The steps include installing Ansible, setting up SSH key authentication, creating an inventory file, and deploying a simple Nginx web server using an Ansible playbook.",{"type":49,"tag":57,"props":70,"children":72},{"id":71},"_1-install-ansible-on-the-control-node",[73],{"type":55,"value":74},"1. Install Ansible on the Control Node",{"type":49,"tag":64,"props":76,"children":77},{},[78],{"type":55,"value":79},"Execute the following commands on the control node to install Ansible:",{"type":49,"tag":81,"props":82,"children":86},"pre",{"className":83,"code":84,"language":85,"meta":31,"style":31},"language-bash shiki shiki-themes nord github-dark monokai","sudo apt-add-repository ppa:ansible\u002Fansible -y\nsudo apt update\nsudo apt install ansible -y\nansible --version # Verify installation\n\n","bash",[87],{"type":49,"tag":88,"props":89,"children":90},"code",{"__ignoreMap":31},[91,120,138,164],{"type":49,"tag":92,"props":93,"children":96},"span",{"class":94,"line":95},"line",1,[97,103,109,114],{"type":49,"tag":92,"props":98,"children":100},{"style":99},"--shiki-default:#88C0D0;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E",[101],{"type":55,"value":102},"sudo",{"type":49,"tag":92,"props":104,"children":106},{"style":105},"--shiki-default:#A3BE8C;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74",[107],{"type":55,"value":108}," apt-add-repository",{"type":49,"tag":92,"props":110,"children":111},{"style":105},[112],{"type":55,"value":113}," ppa:ansible\u002Fansible",{"type":49,"tag":92,"props":115,"children":117},{"style":116},"--shiki-default:#A3BE8C;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF",[118],{"type":55,"value":119}," -y\n",{"type":49,"tag":92,"props":121,"children":123},{"class":94,"line":122},2,[124,128,133],{"type":49,"tag":92,"props":125,"children":126},{"style":99},[127],{"type":55,"value":102},{"type":49,"tag":92,"props":129,"children":130},{"style":105},[131],{"type":55,"value":132}," apt",{"type":49,"tag":92,"props":134,"children":135},{"style":105},[136],{"type":55,"value":137}," update\n",{"type":49,"tag":92,"props":139,"children":141},{"class":94,"line":140},3,[142,146,150,155,160],{"type":49,"tag":92,"props":143,"children":144},{"style":99},[145],{"type":55,"value":102},{"type":49,"tag":92,"props":147,"children":148},{"style":105},[149],{"type":55,"value":132},{"type":49,"tag":92,"props":151,"children":152},{"style":105},[153],{"type":55,"value":154}," install",{"type":49,"tag":92,"props":156,"children":157},{"style":105},[158],{"type":55,"value":159}," ansible",{"type":49,"tag":92,"props":161,"children":162},{"style":116},[163],{"type":55,"value":119},{"type":49,"tag":92,"props":165,"children":167},{"class":94,"line":166},4,[168,173,178],{"type":49,"tag":92,"props":169,"children":170},{"style":99},[171],{"type":55,"value":172},"ansible",{"type":49,"tag":92,"props":174,"children":175},{"style":116},[176],{"type":55,"value":177}," --version",{"type":49,"tag":92,"props":179,"children":181},{"style":180},"--shiki-default:#616E88;--shiki-dark:#6A737D;--shiki-sepia:#88846F",[182],{"type":55,"value":183}," # Verify installation\n",{"type":49,"tag":64,"props":185,"children":186},{},[187],{"type":49,"tag":188,"props":189,"children":192},"img",{"alt":190,"src":191},"Output of the ansible --version command","\u002Fimages\u002Fblog\u002F2025\u002F03\u002F14\u002Fansible-version.png",[],{"type":49,"tag":57,"props":194,"children":196},{"id":195},"_2-generate-ssh-key-pair-on-control-node",[197],{"type":55,"value":198},"2. Generate SSH Key Pair on Control Node",{"type":49,"tag":64,"props":200,"children":201},{},[202],{"type":55,"value":203},"Create an SSH key pair for secure, password-less authentication:",{"type":49,"tag":81,"props":205,"children":207},{"className":83,"code":206,"language":85,"meta":31,"style":31},"ssh-keygen # Press Enter to accept defaults, skip passphrase\n\n",[208],{"type":49,"tag":88,"props":209,"children":210},{"__ignoreMap":31},[211],{"type":49,"tag":92,"props":212,"children":213},{"class":94,"line":95},[214,219],{"type":49,"tag":92,"props":215,"children":216},{"style":99},[217],{"type":55,"value":218},"ssh-keygen",{"type":49,"tag":92,"props":220,"children":221},{"style":180},[222],{"type":55,"value":223}," # Press Enter to accept defaults, skip passphrase\n",{"type":49,"tag":64,"props":225,"children":226},{},[227],{"type":49,"tag":188,"props":228,"children":231},{"alt":229,"src":230},"Output of the ssh-keygen command","\u002Fimages\u002Fblog\u002F2025\u002F03\u002F14\u002Fssh-keygen.png",[],{"type":49,"tag":57,"props":233,"children":235},{"id":234},"_3-prepare-worker-node",[236],{"type":55,"value":237},"3. Prepare Worker Node",{"type":49,"tag":64,"props":239,"children":240},{},[241],{"type":55,"value":242},"Set up the worker node by installing the SSH server and disabling the firewall:",{"type":49,"tag":81,"props":244,"children":246},{"className":83,"code":245,"language":85,"meta":31,"style":31},"# Install OpenSSH server\nsudo apt update\nsudo apt install openssh-server -y\n\n# Disable firewall\nsudo systemctl stop ufw\nsudo systemctl disable ufw\n\n",[247],{"type":49,"tag":88,"props":248,"children":249},{"__ignoreMap":31},[250,258,273,297,305,314,337],{"type":49,"tag":92,"props":251,"children":252},{"class":94,"line":95},[253],{"type":49,"tag":92,"props":254,"children":255},{"style":180},[256],{"type":55,"value":257},"# Install OpenSSH server\n",{"type":49,"tag":92,"props":259,"children":260},{"class":94,"line":122},[261,265,269],{"type":49,"tag":92,"props":262,"children":263},{"style":99},[264],{"type":55,"value":102},{"type":49,"tag":92,"props":266,"children":267},{"style":105},[268],{"type":55,"value":132},{"type":49,"tag":92,"props":270,"children":271},{"style":105},[272],{"type":55,"value":137},{"type":49,"tag":92,"props":274,"children":275},{"class":94,"line":140},[276,280,284,288,293],{"type":49,"tag":92,"props":277,"children":278},{"style":99},[279],{"type":55,"value":102},{"type":49,"tag":92,"props":281,"children":282},{"style":105},[283],{"type":55,"value":132},{"type":49,"tag":92,"props":285,"children":286},{"style":105},[287],{"type":55,"value":154},{"type":49,"tag":92,"props":289,"children":290},{"style":105},[291],{"type":55,"value":292}," openssh-server",{"type":49,"tag":92,"props":294,"children":295},{"style":116},[296],{"type":55,"value":119},{"type":49,"tag":92,"props":298,"children":299},{"class":94,"line":166},[300],{"type":49,"tag":92,"props":301,"children":302},{"emptyLinePlaceholder":34},[303],{"type":55,"value":304},"\n",{"type":49,"tag":92,"props":306,"children":308},{"class":94,"line":307},5,[309],{"type":49,"tag":92,"props":310,"children":311},{"style":180},[312],{"type":55,"value":313},"# Disable firewall\n",{"type":49,"tag":92,"props":315,"children":317},{"class":94,"line":316},6,[318,322,327,332],{"type":49,"tag":92,"props":319,"children":320},{"style":99},[321],{"type":55,"value":102},{"type":49,"tag":92,"props":323,"children":324},{"style":105},[325],{"type":55,"value":326}," systemctl",{"type":49,"tag":92,"props":328,"children":329},{"style":105},[330],{"type":55,"value":331}," stop",{"type":49,"tag":92,"props":333,"children":334},{"style":105},[335],{"type":55,"value":336}," ufw\n",{"type":49,"tag":92,"props":338,"children":340},{"class":94,"line":339},7,[341,345,349,354],{"type":49,"tag":92,"props":342,"children":343},{"style":99},[344],{"type":55,"value":102},{"type":49,"tag":92,"props":346,"children":347},{"style":105},[348],{"type":55,"value":326},{"type":49,"tag":92,"props":350,"children":351},{"style":105},[352],{"type":55,"value":353}," disable",{"type":49,"tag":92,"props":355,"children":356},{"style":105},[357],{"type":55,"value":336},{"type":49,"tag":64,"props":359,"children":360},{},[361],{"type":49,"tag":188,"props":362,"children":365},{"alt":363,"src":364},"Prepare Worker Node","\u002Fimages\u002Fblog\u002F2025\u002F03\u002F14\u002Fprepare-worker-node.png",[],{"type":49,"tag":57,"props":367,"children":369},{"id":368},"_4-copy-ssh-key-to-worker-node",[370],{"type":55,"value":371},"4. Copy SSH Key to Worker Node",{"type":49,"tag":64,"props":373,"children":374},{},[375],{"type":55,"value":376},"Transfer the SSH public key from the control node to the worker node:",{"type":49,"tag":81,"props":378,"children":380},{"className":83,"code":379,"language":85,"meta":31,"style":31},"ssh-copy-id worker@\u003CWORKER_IP> # Replace \u003CWORKER_IP> with the worker's actual IP\n# Enter the worker's password when prompted\n\n",[381],{"type":49,"tag":88,"props":382,"children":383},{"__ignoreMap":31},[384,424],{"type":49,"tag":92,"props":385,"children":386},{"class":94,"line":95},[387,392,397,403,408,414,419],{"type":49,"tag":92,"props":388,"children":389},{"style":99},[390],{"type":55,"value":391},"ssh-copy-id",{"type":49,"tag":92,"props":393,"children":394},{"style":105},[395],{"type":55,"value":396}," worker@",{"type":49,"tag":92,"props":398,"children":400},{"style":399},"--shiki-default:#81A1C1;--shiki-dark:#F97583;--shiki-sepia:#F92672",[401],{"type":55,"value":402},"\u003C",{"type":49,"tag":92,"props":404,"children":405},{"style":105},[406],{"type":55,"value":407},"WORKER_I",{"type":49,"tag":92,"props":409,"children":411},{"style":410},"--shiki-default:#D8DEE9FF;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2",[412],{"type":55,"value":413},"P",{"type":49,"tag":92,"props":415,"children":416},{"style":399},[417],{"type":55,"value":418},">",{"type":49,"tag":92,"props":420,"children":421},{"style":180},[422],{"type":55,"value":423}," # Replace \u003CWORKER_IP> with the worker's actual IP\n",{"type":49,"tag":92,"props":425,"children":426},{"class":94,"line":122},[427],{"type":49,"tag":92,"props":428,"children":429},{"style":180},[430],{"type":55,"value":431},"# Enter the worker's password when prompted\n",{"type":49,"tag":64,"props":433,"children":434},{},[435],{"type":49,"tag":188,"props":436,"children":439},{"alt":437,"src":438},"Output of the ssh-copy-id command","\u002Fimages\u002Fblog\u002F2025\u002F03\u002F14\u002Fssh-copy-id.png",[],{"type":49,"tag":57,"props":441,"children":443},{"id":442},"_5-disable-password-authentication-in-the-worker-node",[444],{"type":55,"value":445},"5. Disable Password Authentication in the Worker Node",{"type":49,"tag":64,"props":447,"children":448},{},[449],{"type":55,"value":450},"Enhance security by disabling password authentication on the worker node:",{"type":49,"tag":81,"props":452,"children":454},{"className":83,"code":453,"language":85,"meta":31,"style":31},"sudo nano \u002Fetc\u002Fssh\u002Fsshd_config\n# Change 'PasswordAuthentication' to **no**\nsudo systemctl restart ssh\n\n",[455],{"type":49,"tag":88,"props":456,"children":457},{"__ignoreMap":31},[458,475,483],{"type":49,"tag":92,"props":459,"children":460},{"class":94,"line":95},[461,465,470],{"type":49,"tag":92,"props":462,"children":463},{"style":99},[464],{"type":55,"value":102},{"type":49,"tag":92,"props":466,"children":467},{"style":105},[468],{"type":55,"value":469}," nano",{"type":49,"tag":92,"props":471,"children":472},{"style":105},[473],{"type":55,"value":474}," \u002Fetc\u002Fssh\u002Fsshd_config\n",{"type":49,"tag":92,"props":476,"children":477},{"class":94,"line":122},[478],{"type":49,"tag":92,"props":479,"children":480},{"style":180},[481],{"type":55,"value":482},"# Change 'PasswordAuthentication' to **no**\n",{"type":49,"tag":92,"props":484,"children":485},{"class":94,"line":140},[486,490,494,499],{"type":49,"tag":92,"props":487,"children":488},{"style":99},[489],{"type":55,"value":102},{"type":49,"tag":92,"props":491,"children":492},{"style":105},[493],{"type":55,"value":326},{"type":49,"tag":92,"props":495,"children":496},{"style":105},[497],{"type":55,"value":498}," restart",{"type":49,"tag":92,"props":500,"children":501},{"style":105},[502],{"type":55,"value":503}," ssh\n",{"type":49,"tag":57,"props":505,"children":507},{"id":506},"_6-create-inventory-file",[508],{"type":55,"value":509},"6. Create Inventory File",{"type":49,"tag":64,"props":511,"children":512},{},[513],{"type":55,"value":514},"Create a custom inventory file to specify hosts for Ansible:",{"type":49,"tag":81,"props":516,"children":518},{"className":83,"code":517,"language":85,"meta":31,"style":31},"sudo nano \u002Fetc\u002Fansible\u002Finventory.ini\n\n",[519],{"type":49,"tag":88,"props":520,"children":521},{"__ignoreMap":31},[522],{"type":49,"tag":92,"props":523,"children":524},{"class":94,"line":95},[525,529,533],{"type":49,"tag":92,"props":526,"children":527},{"style":99},[528],{"type":55,"value":102},{"type":49,"tag":92,"props":530,"children":531},{"style":105},[532],{"type":55,"value":469},{"type":49,"tag":92,"props":534,"children":535},{"style":105},[536],{"type":55,"value":537}," \u002Fetc\u002Fansible\u002Finventory.ini\n",{"type":49,"tag":64,"props":539,"children":540},{},[541],{"type":55,"value":542},"Add the worker's IP to the inventory file:",{"type":49,"tag":81,"props":544,"children":548},{"className":545,"code":546,"language":547,"meta":31,"style":31},"language-ini shiki shiki-themes nord github-dark monokai","[workers]\n\u003CWORKER_IP> ansible_user=worker # Replace \u003CWORKER_IP>\n\n","ini",[549],{"type":49,"tag":88,"props":550,"children":551},{"__ignoreMap":31},[552,572],{"type":49,"tag":92,"props":553,"children":554},{"class":94,"line":95},[555,561,567],{"type":49,"tag":92,"props":556,"children":558},{"style":557},"--shiki-default:#ECEFF4;--shiki-dark:#B392F0;--shiki-sepia:#F8F8F2",[559],{"type":55,"value":560},"[",{"type":49,"tag":92,"props":562,"children":564},{"style":563},"--shiki-default:#D8DEE9FF;--shiki-dark:#B392F0;--shiki-sepia:#F8F8F2",[565],{"type":55,"value":566},"workers",{"type":49,"tag":92,"props":568,"children":569},{"style":557},[570],{"type":55,"value":571},"]\n",{"type":49,"tag":92,"props":573,"children":574},{"class":94,"line":122},[575,580,585,591,596],{"type":49,"tag":92,"props":576,"children":577},{"style":410},[578],{"type":55,"value":579},"\u003CWORKER_IP> ",{"type":49,"tag":92,"props":581,"children":582},{"style":399},[583],{"type":55,"value":584},"ansible_user",{"type":49,"tag":92,"props":586,"children":588},{"style":587},"--shiki-default:#ECEFF4;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2",[589],{"type":55,"value":590},"=",{"type":49,"tag":92,"props":592,"children":593},{"style":410},[594],{"type":55,"value":595},"worker ",{"type":49,"tag":92,"props":597,"children":598},{"style":180},[599],{"type":55,"value":600},"# Replace \u003CWORKER_IP>\n",{"type":49,"tag":64,"props":602,"children":603},{},[604],{"type":49,"tag":188,"props":605,"children":608},{"alt":606,"src":607},"Output of the Inventory File","\u002Fimages\u002Fblog\u002F2025\u002F03\u002F14\u002Finventory.png",[],{"type":49,"tag":57,"props":610,"children":612},{"id":611},"_7-create-playbook-and-template",[613],{"type":55,"value":614},"7. Create Playbook and Template",{"type":49,"tag":64,"props":616,"children":617},{},[618],{"type":55,"value":619},"Set up the necessary directory structure for templates and create configuration files:",{"type":49,"tag":81,"props":621,"children":623},{"className":83,"code":622,"language":85,"meta":31,"style":31},"mkdir -p \u002Fetc\u002Fansible\u002Ftemplates\n\n",[624],{"type":49,"tag":88,"props":625,"children":626},{"__ignoreMap":31},[627],{"type":49,"tag":92,"props":628,"children":629},{"class":94,"line":95},[630,635,640],{"type":49,"tag":92,"props":631,"children":632},{"style":99},[633],{"type":55,"value":634},"mkdir",{"type":49,"tag":92,"props":636,"children":637},{"style":116},[638],{"type":55,"value":639}," -p",{"type":49,"tag":92,"props":641,"children":642},{"style":105},[643],{"type":55,"value":644}," \u002Fetc\u002Fansible\u002Ftemplates\n",{"type":49,"tag":64,"props":646,"children":647},{},[648],{"type":55,"value":649},"Create a Jinja2 template for the Nginx index page:",{"type":49,"tag":81,"props":651,"children":653},{"className":83,"code":652,"language":85,"meta":31,"style":31},"sudo nano \u002Fetc\u002Fansible\u002Ftemplates\u002Findex.html.j2\n\n",[654],{"type":49,"tag":88,"props":655,"children":656},{"__ignoreMap":31},[657],{"type":49,"tag":92,"props":658,"children":659},{"class":94,"line":95},[660,664,668],{"type":49,"tag":92,"props":661,"children":662},{"style":99},[663],{"type":55,"value":102},{"type":49,"tag":92,"props":665,"children":666},{"style":105},[667],{"type":55,"value":469},{"type":49,"tag":92,"props":669,"children":670},{"style":105},[671],{"type":55,"value":672}," \u002Fetc\u002Fansible\u002Ftemplates\u002Findex.html.j2\n",{"type":49,"tag":64,"props":674,"children":675},{},[676],{"type":55,"value":677},"HTML Content for index.html.j2:",{"type":49,"tag":81,"props":679,"children":683},{"className":680,"code":681,"language":682,"meta":31,"style":31},"language-html shiki shiki-themes nord github-dark monokai","\u003C!DOCTYPE html>\n\u003Chtml>\n\u003Chead>\n    \u003Ctitle>Welcome to Nginx!\u003C\u002Ftitle>\n    \u003Cstyle>\n        body {\n            width: 35em;\n            margin: 0 auto;\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            background-color: #f8f9fa;\n            color: #212529;\n            line-height: 1.6;\n            padding: 20px;\n        }\n        h1 {\n            color: #007bff;\n            text-align: center;\n        }\n        .content {\n            background: white;\n            padding: 20px;\n            border-radius: 8px;\n            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n        }\n        .server-info {\n            color: #6c757d;\n            font-size: 0.9em;\n        }\n    \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n    \u003Cdiv class=\"content\">\n        \u003Ch1>Welcome to Nginx!\u003C\u002Fh1>\n        \u003Cp>If you see this page, the nginx web server is successfully installed and working.\u003C\u002Fp>\n        \n        \u003Cp>For online documentation and support please refer to\n        \u003Ca href=\"http:\u002F\u002Fnginx.org\u002F\">nginx.org\u003C\u002Fa>.\u003C\u002Fp>\n        \n        \u003Cdiv class=\"server-info\">\n            \u003Cp>Server: {{ ansible_hostname }}\u003C\u002Fp>\n            \u003Cp>Deployed by: Ansible\u003C\u002Fp>\n            \u003Cp>Deployment time: {{ ansible_date_time.iso8601 }}\u003C\u002Fp>\n        \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n\n","html",[684],{"type":49,"tag":88,"props":685,"children":686},{"__ignoreMap":31},[687,713,728,744,779,795,808,838,866,937,965,991,1013,1040,1049,1062,1087,1109,1117,1136,1158,1182,1208,1293,1301,1318,1343,1369,1377,1394,1410,1427,1466,1499,1532,1541,1562,1635,1643,1679,1713,1746,1779,1796,1812,1828],{"type":49,"tag":92,"props":688,"children":689},{"class":94,"line":95},[690,696,702,708],{"type":49,"tag":92,"props":691,"children":693},{"style":692},"--shiki-default:#81A1C1;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2",[694],{"type":55,"value":695},"\u003C!",{"type":49,"tag":92,"props":697,"children":699},{"style":698},"--shiki-default:#81A1C1;--shiki-dark:#85E89D;--shiki-sepia:#F92672",[700],{"type":55,"value":701},"DOCTYPE",{"type":49,"tag":92,"props":703,"children":705},{"style":704},"--shiki-default:#8FBCBB;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E",[706],{"type":55,"value":707}," html",{"type":49,"tag":92,"props":709,"children":710},{"style":692},[711],{"type":55,"value":712},">\n",{"type":49,"tag":92,"props":714,"children":715},{"class":94,"line":122},[716,720,724],{"type":49,"tag":92,"props":717,"children":718},{"style":692},[719],{"type":55,"value":402},{"type":49,"tag":92,"props":721,"children":722},{"style":698},[723],{"type":55,"value":682},{"type":49,"tag":92,"props":725,"children":726},{"style":692},[727],{"type":55,"value":712},{"type":49,"tag":92,"props":729,"children":730},{"class":94,"line":140},[731,735,740],{"type":49,"tag":92,"props":732,"children":733},{"style":692},[734],{"type":55,"value":402},{"type":49,"tag":92,"props":736,"children":737},{"style":698},[738],{"type":55,"value":739},"head",{"type":49,"tag":92,"props":741,"children":742},{"style":692},[743],{"type":55,"value":712},{"type":49,"tag":92,"props":745,"children":746},{"class":94,"line":166},[747,752,757,761,766,771,775],{"type":49,"tag":92,"props":748,"children":749},{"style":692},[750],{"type":55,"value":751},"    \u003C",{"type":49,"tag":92,"props":753,"children":754},{"style":698},[755],{"type":55,"value":756},"title",{"type":49,"tag":92,"props":758,"children":759},{"style":692},[760],{"type":55,"value":418},{"type":49,"tag":92,"props":762,"children":763},{"style":410},[764],{"type":55,"value":765},"Welcome to Nginx!",{"type":49,"tag":92,"props":767,"children":768},{"style":692},[769],{"type":55,"value":770},"\u003C\u002F",{"type":49,"tag":92,"props":772,"children":773},{"style":698},[774],{"type":55,"value":756},{"type":49,"tag":92,"props":776,"children":777},{"style":692},[778],{"type":55,"value":712},{"type":49,"tag":92,"props":780,"children":781},{"class":94,"line":307},[782,786,791],{"type":49,"tag":92,"props":783,"children":784},{"style":692},[785],{"type":55,"value":751},{"type":49,"tag":92,"props":787,"children":788},{"style":698},[789],{"type":55,"value":790},"style",{"type":49,"tag":92,"props":792,"children":793},{"style":692},[794],{"type":55,"value":712},{"type":49,"tag":92,"props":796,"children":797},{"class":94,"line":316},[798,803],{"type":49,"tag":92,"props":799,"children":800},{"style":698},[801],{"type":55,"value":802},"        body",{"type":49,"tag":92,"props":804,"children":805},{"style":587},[806],{"type":55,"value":807}," {\n",{"type":49,"tag":92,"props":809,"children":810},{"class":94,"line":339},[811,817,822,828,833],{"type":49,"tag":92,"props":812,"children":814},{"style":813},"--shiki-default:#D8DEE9;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic",[815],{"type":55,"value":816},"            width",{"type":49,"tag":92,"props":818,"children":819},{"style":587},[820],{"type":55,"value":821},":",{"type":49,"tag":92,"props":823,"children":825},{"style":824},"--shiki-default:#B48EAD;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF",[826],{"type":55,"value":827}," 35",{"type":49,"tag":92,"props":829,"children":830},{"style":399},[831],{"type":55,"value":832},"em",{"type":49,"tag":92,"props":834,"children":835},{"style":692},[836],{"type":55,"value":837},";\n",{"type":49,"tag":92,"props":839,"children":841},{"class":94,"line":840},8,[842,847,851,856,862],{"type":49,"tag":92,"props":843,"children":844},{"style":813},[845],{"type":55,"value":846},"            margin",{"type":49,"tag":92,"props":848,"children":849},{"style":587},[850],{"type":55,"value":821},{"type":49,"tag":92,"props":852,"children":853},{"style":824},[854],{"type":55,"value":855}," 0",{"type":49,"tag":92,"props":857,"children":859},{"style":858},"--shiki-default:#81A1C1;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF",[860],{"type":55,"value":861}," auto",{"type":49,"tag":92,"props":863,"children":864},{"style":692},[865],{"type":55,"value":837},{"type":49,"tag":92,"props":867,"children":869},{"class":94,"line":868},9,[870,875,879,885,890,895,900,905,909,915,919,924,928,933],{"type":49,"tag":92,"props":871,"children":872},{"style":813},[873],{"type":55,"value":874},"            font-family",{"type":49,"tag":92,"props":876,"children":877},{"style":587},[878],{"type":55,"value":821},{"type":49,"tag":92,"props":880,"children":882},{"style":881},"--shiki-default:#ECEFF4;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74",[883],{"type":55,"value":884}," '",{"type":49,"tag":92,"props":886,"children":887},{"style":105},[888],{"type":55,"value":889},"Segoe UI",{"type":49,"tag":92,"props":891,"children":892},{"style":881},[893],{"type":55,"value":894},"'",{"type":49,"tag":92,"props":896,"children":897},{"style":587},[898],{"type":55,"value":899},",",{"type":49,"tag":92,"props":901,"children":902},{"style":858},[903],{"type":55,"value":904}," Tahoma",{"type":49,"tag":92,"props":906,"children":907},{"style":587},[908],{"type":55,"value":899},{"type":49,"tag":92,"props":910,"children":912},{"style":911},"--shiki-default:#88C0D0;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2",[913],{"type":55,"value":914}," Geneva",{"type":49,"tag":92,"props":916,"children":917},{"style":587},[918],{"type":55,"value":899},{"type":49,"tag":92,"props":920,"children":921},{"style":858},[922],{"type":55,"value":923}," Verdana",{"type":49,"tag":92,"props":925,"children":926},{"style":587},[927],{"type":55,"value":899},{"type":49,"tag":92,"props":929,"children":930},{"style":858},[931],{"type":55,"value":932}," sans-serif",{"type":49,"tag":92,"props":934,"children":935},{"style":692},[936],{"type":55,"value":837},{"type":49,"tag":92,"props":938,"children":940},{"class":94,"line":939},10,[941,946,950,956,961],{"type":49,"tag":92,"props":942,"children":943},{"style":813},[944],{"type":55,"value":945},"            background-color",{"type":49,"tag":92,"props":947,"children":948},{"style":587},[949],{"type":55,"value":821},{"type":49,"tag":92,"props":951,"children":953},{"style":952},"--shiki-default:#ECEFF4;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF",[954],{"type":55,"value":955}," #",{"type":49,"tag":92,"props":957,"children":958},{"style":824},[959],{"type":55,"value":960},"f8f9fa",{"type":49,"tag":92,"props":962,"children":963},{"style":692},[964],{"type":55,"value":837},{"type":49,"tag":92,"props":966,"children":968},{"class":94,"line":967},11,[969,974,978,982,987],{"type":49,"tag":92,"props":970,"children":971},{"style":813},[972],{"type":55,"value":973},"            color",{"type":49,"tag":92,"props":975,"children":976},{"style":587},[977],{"type":55,"value":821},{"type":49,"tag":92,"props":979,"children":980},{"style":952},[981],{"type":55,"value":955},{"type":49,"tag":92,"props":983,"children":984},{"style":824},[985],{"type":55,"value":986},"212529",{"type":49,"tag":92,"props":988,"children":989},{"style":692},[990],{"type":55,"value":837},{"type":49,"tag":92,"props":992,"children":994},{"class":94,"line":993},12,[995,1000,1004,1009],{"type":49,"tag":92,"props":996,"children":997},{"style":813},[998],{"type":55,"value":999},"            line-height",{"type":49,"tag":92,"props":1001,"children":1002},{"style":587},[1003],{"type":55,"value":821},{"type":49,"tag":92,"props":1005,"children":1006},{"style":824},[1007],{"type":55,"value":1008}," 1.6",{"type":49,"tag":92,"props":1010,"children":1011},{"style":692},[1012],{"type":55,"value":837},{"type":49,"tag":92,"props":1014,"children":1016},{"class":94,"line":1015},13,[1017,1022,1026,1031,1036],{"type":49,"tag":92,"props":1018,"children":1019},{"style":813},[1020],{"type":55,"value":1021},"            padding",{"type":49,"tag":92,"props":1023,"children":1024},{"style":587},[1025],{"type":55,"value":821},{"type":49,"tag":92,"props":1027,"children":1028},{"style":824},[1029],{"type":55,"value":1030}," 20",{"type":49,"tag":92,"props":1032,"children":1033},{"style":399},[1034],{"type":55,"value":1035},"px",{"type":49,"tag":92,"props":1037,"children":1038},{"style":692},[1039],{"type":55,"value":837},{"type":49,"tag":92,"props":1041,"children":1043},{"class":94,"line":1042},14,[1044],{"type":49,"tag":92,"props":1045,"children":1046},{"style":587},[1047],{"type":55,"value":1048},"        }\n",{"type":49,"tag":92,"props":1050,"children":1052},{"class":94,"line":1051},15,[1053,1058],{"type":49,"tag":92,"props":1054,"children":1055},{"style":698},[1056],{"type":55,"value":1057},"        h1",{"type":49,"tag":92,"props":1059,"children":1060},{"style":587},[1061],{"type":55,"value":807},{"type":49,"tag":92,"props":1063,"children":1065},{"class":94,"line":1064},16,[1066,1070,1074,1078,1083],{"type":49,"tag":92,"props":1067,"children":1068},{"style":813},[1069],{"type":55,"value":973},{"type":49,"tag":92,"props":1071,"children":1072},{"style":587},[1073],{"type":55,"value":821},{"type":49,"tag":92,"props":1075,"children":1076},{"style":952},[1077],{"type":55,"value":955},{"type":49,"tag":92,"props":1079,"children":1080},{"style":824},[1081],{"type":55,"value":1082},"007bff",{"type":49,"tag":92,"props":1084,"children":1085},{"style":692},[1086],{"type":55,"value":837},{"type":49,"tag":92,"props":1088,"children":1090},{"class":94,"line":1089},17,[1091,1096,1100,1105],{"type":49,"tag":92,"props":1092,"children":1093},{"style":813},[1094],{"type":55,"value":1095},"            text-align",{"type":49,"tag":92,"props":1097,"children":1098},{"style":587},[1099],{"type":55,"value":821},{"type":49,"tag":92,"props":1101,"children":1102},{"style":858},[1103],{"type":55,"value":1104}," center",{"type":49,"tag":92,"props":1106,"children":1107},{"style":692},[1108],{"type":55,"value":837},{"type":49,"tag":92,"props":1110,"children":1112},{"class":94,"line":1111},18,[1113],{"type":49,"tag":92,"props":1114,"children":1115},{"style":587},[1116],{"type":55,"value":1048},{"type":49,"tag":92,"props":1118,"children":1120},{"class":94,"line":1119},19,[1121,1127,1132],{"type":49,"tag":92,"props":1122,"children":1124},{"style":1123},"--shiki-default:#81A1C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E",[1125],{"type":55,"value":1126},"        .",{"type":49,"tag":92,"props":1128,"children":1129},{"style":704},[1130],{"type":55,"value":1131},"content",{"type":49,"tag":92,"props":1133,"children":1134},{"style":587},[1135],{"type":55,"value":807},{"type":49,"tag":92,"props":1137,"children":1139},{"class":94,"line":1138},20,[1140,1145,1149,1154],{"type":49,"tag":92,"props":1141,"children":1142},{"style":813},[1143],{"type":55,"value":1144},"            background",{"type":49,"tag":92,"props":1146,"children":1147},{"style":587},[1148],{"type":55,"value":821},{"type":49,"tag":92,"props":1150,"children":1151},{"style":858},[1152],{"type":55,"value":1153}," white",{"type":49,"tag":92,"props":1155,"children":1156},{"style":692},[1157],{"type":55,"value":837},{"type":49,"tag":92,"props":1159,"children":1161},{"class":94,"line":1160},21,[1162,1166,1170,1174,1178],{"type":49,"tag":92,"props":1163,"children":1164},{"style":813},[1165],{"type":55,"value":1021},{"type":49,"tag":92,"props":1167,"children":1168},{"style":587},[1169],{"type":55,"value":821},{"type":49,"tag":92,"props":1171,"children":1172},{"style":824},[1173],{"type":55,"value":1030},{"type":49,"tag":92,"props":1175,"children":1176},{"style":399},[1177],{"type":55,"value":1035},{"type":49,"tag":92,"props":1179,"children":1180},{"style":692},[1181],{"type":55,"value":837},{"type":49,"tag":92,"props":1183,"children":1185},{"class":94,"line":1184},22,[1186,1191,1195,1200,1204],{"type":49,"tag":92,"props":1187,"children":1188},{"style":813},[1189],{"type":55,"value":1190},"            border-radius",{"type":49,"tag":92,"props":1192,"children":1193},{"style":587},[1194],{"type":55,"value":821},{"type":49,"tag":92,"props":1196,"children":1197},{"style":824},[1198],{"type":55,"value":1199}," 8",{"type":49,"tag":92,"props":1201,"children":1202},{"style":399},[1203],{"type":55,"value":1035},{"type":49,"tag":92,"props":1205,"children":1206},{"style":692},[1207],{"type":55,"value":837},{"type":49,"tag":92,"props":1209,"children":1211},{"class":94,"line":1210},23,[1212,1217,1221,1225,1230,1234,1239,1243,1249,1254,1259,1263,1267,1271,1275,1279,1284,1289],{"type":49,"tag":92,"props":1213,"children":1214},{"style":813},[1215],{"type":55,"value":1216},"            box-shadow",{"type":49,"tag":92,"props":1218,"children":1219},{"style":587},[1220],{"type":55,"value":821},{"type":49,"tag":92,"props":1222,"children":1223},{"style":824},[1224],{"type":55,"value":855},{"type":49,"tag":92,"props":1226,"children":1227},{"style":824},[1228],{"type":55,"value":1229}," 4",{"type":49,"tag":92,"props":1231,"children":1232},{"style":399},[1233],{"type":55,"value":1035},{"type":49,"tag":92,"props":1235,"children":1236},{"style":824},[1237],{"type":55,"value":1238}," 6",{"type":49,"tag":92,"props":1240,"children":1241},{"style":399},[1242],{"type":55,"value":1035},{"type":49,"tag":92,"props":1244,"children":1246},{"style":1245},"--shiki-default:#88C0D0;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF",[1247],{"type":55,"value":1248}," rgba",{"type":49,"tag":92,"props":1250,"children":1251},{"style":587},[1252],{"type":55,"value":1253},"(",{"type":49,"tag":92,"props":1255,"children":1256},{"style":824},[1257],{"type":55,"value":1258},"0",{"type":49,"tag":92,"props":1260,"children":1261},{"style":587},[1262],{"type":55,"value":899},{"type":49,"tag":92,"props":1264,"children":1265},{"style":824},[1266],{"type":55,"value":855},{"type":49,"tag":92,"props":1268,"children":1269},{"style":587},[1270],{"type":55,"value":899},{"type":49,"tag":92,"props":1272,"children":1273},{"style":824},[1274],{"type":55,"value":855},{"type":49,"tag":92,"props":1276,"children":1277},{"style":587},[1278],{"type":55,"value":899},{"type":49,"tag":92,"props":1280,"children":1281},{"style":824},[1282],{"type":55,"value":1283}," 0.1",{"type":49,"tag":92,"props":1285,"children":1286},{"style":587},[1287],{"type":55,"value":1288},")",{"type":49,"tag":92,"props":1290,"children":1291},{"style":692},[1292],{"type":55,"value":837},{"type":49,"tag":92,"props":1294,"children":1296},{"class":94,"line":1295},24,[1297],{"type":49,"tag":92,"props":1298,"children":1299},{"style":587},[1300],{"type":55,"value":1048},{"type":49,"tag":92,"props":1302,"children":1304},{"class":94,"line":1303},25,[1305,1309,1314],{"type":49,"tag":92,"props":1306,"children":1307},{"style":1123},[1308],{"type":55,"value":1126},{"type":49,"tag":92,"props":1310,"children":1311},{"style":704},[1312],{"type":55,"value":1313},"server-info",{"type":49,"tag":92,"props":1315,"children":1316},{"style":587},[1317],{"type":55,"value":807},{"type":49,"tag":92,"props":1319,"children":1321},{"class":94,"line":1320},26,[1322,1326,1330,1334,1339],{"type":49,"tag":92,"props":1323,"children":1324},{"style":813},[1325],{"type":55,"value":973},{"type":49,"tag":92,"props":1327,"children":1328},{"style":587},[1329],{"type":55,"value":821},{"type":49,"tag":92,"props":1331,"children":1332},{"style":952},[1333],{"type":55,"value":955},{"type":49,"tag":92,"props":1335,"children":1336},{"style":824},[1337],{"type":55,"value":1338},"6c757d",{"type":49,"tag":92,"props":1340,"children":1341},{"style":692},[1342],{"type":55,"value":837},{"type":49,"tag":92,"props":1344,"children":1346},{"class":94,"line":1345},27,[1347,1352,1356,1361,1365],{"type":49,"tag":92,"props":1348,"children":1349},{"style":813},[1350],{"type":55,"value":1351},"            font-size",{"type":49,"tag":92,"props":1353,"children":1354},{"style":587},[1355],{"type":55,"value":821},{"type":49,"tag":92,"props":1357,"children":1358},{"style":824},[1359],{"type":55,"value":1360}," 0.9",{"type":49,"tag":92,"props":1362,"children":1363},{"style":399},[1364],{"type":55,"value":832},{"type":49,"tag":92,"props":1366,"children":1367},{"style":692},[1368],{"type":55,"value":837},{"type":49,"tag":92,"props":1370,"children":1372},{"class":94,"line":1371},28,[1373],{"type":49,"tag":92,"props":1374,"children":1375},{"style":587},[1376],{"type":55,"value":1048},{"type":49,"tag":92,"props":1378,"children":1380},{"class":94,"line":1379},29,[1381,1386,1390],{"type":49,"tag":92,"props":1382,"children":1383},{"style":692},[1384],{"type":55,"value":1385},"    \u003C\u002F",{"type":49,"tag":92,"props":1387,"children":1388},{"style":698},[1389],{"type":55,"value":790},{"type":49,"tag":92,"props":1391,"children":1392},{"style":692},[1393],{"type":55,"value":712},{"type":49,"tag":92,"props":1395,"children":1397},{"class":94,"line":1396},30,[1398,1402,1406],{"type":49,"tag":92,"props":1399,"children":1400},{"style":692},[1401],{"type":55,"value":770},{"type":49,"tag":92,"props":1403,"children":1404},{"style":698},[1405],{"type":55,"value":739},{"type":49,"tag":92,"props":1407,"children":1408},{"style":692},[1409],{"type":55,"value":712},{"type":49,"tag":92,"props":1411,"children":1413},{"class":94,"line":1412},31,[1414,1418,1423],{"type":49,"tag":92,"props":1415,"children":1416},{"style":692},[1417],{"type":55,"value":402},{"type":49,"tag":92,"props":1419,"children":1420},{"style":698},[1421],{"type":55,"value":1422},"body",{"type":49,"tag":92,"props":1424,"children":1425},{"style":692},[1426],{"type":55,"value":712},{"type":49,"tag":92,"props":1428,"children":1430},{"class":94,"line":1429},32,[1431,1435,1440,1445,1449,1454,1458,1462],{"type":49,"tag":92,"props":1432,"children":1433},{"style":692},[1434],{"type":55,"value":751},{"type":49,"tag":92,"props":1436,"children":1437},{"style":698},[1438],{"type":55,"value":1439},"div",{"type":49,"tag":92,"props":1441,"children":1442},{"style":704},[1443],{"type":55,"value":1444}," class",{"type":49,"tag":92,"props":1446,"children":1447},{"style":587},[1448],{"type":55,"value":590},{"type":49,"tag":92,"props":1450,"children":1451},{"style":881},[1452],{"type":55,"value":1453},"\"",{"type":49,"tag":92,"props":1455,"children":1456},{"style":105},[1457],{"type":55,"value":1131},{"type":49,"tag":92,"props":1459,"children":1460},{"style":881},[1461],{"type":55,"value":1453},{"type":49,"tag":92,"props":1463,"children":1464},{"style":692},[1465],{"type":55,"value":712},{"type":49,"tag":92,"props":1467,"children":1469},{"class":94,"line":1468},33,[1470,1475,1479,1483,1487,1491,1495],{"type":49,"tag":92,"props":1471,"children":1472},{"style":692},[1473],{"type":55,"value":1474},"        \u003C",{"type":49,"tag":92,"props":1476,"children":1477},{"style":698},[1478],{"type":55,"value":50},{"type":49,"tag":92,"props":1480,"children":1481},{"style":692},[1482],{"type":55,"value":418},{"type":49,"tag":92,"props":1484,"children":1485},{"style":410},[1486],{"type":55,"value":765},{"type":49,"tag":92,"props":1488,"children":1489},{"style":692},[1490],{"type":55,"value":770},{"type":49,"tag":92,"props":1492,"children":1493},{"style":698},[1494],{"type":55,"value":50},{"type":49,"tag":92,"props":1496,"children":1497},{"style":692},[1498],{"type":55,"value":712},{"type":49,"tag":92,"props":1500,"children":1502},{"class":94,"line":1501},34,[1503,1507,1511,1515,1520,1524,1528],{"type":49,"tag":92,"props":1504,"children":1505},{"style":692},[1506],{"type":55,"value":1474},{"type":49,"tag":92,"props":1508,"children":1509},{"style":698},[1510],{"type":55,"value":64},{"type":49,"tag":92,"props":1512,"children":1513},{"style":692},[1514],{"type":55,"value":418},{"type":49,"tag":92,"props":1516,"children":1517},{"style":410},[1518],{"type":55,"value":1519},"If you see this page, the nginx web server is successfully installed and working.",{"type":49,"tag":92,"props":1521,"children":1522},{"style":692},[1523],{"type":55,"value":770},{"type":49,"tag":92,"props":1525,"children":1526},{"style":698},[1527],{"type":55,"value":64},{"type":49,"tag":92,"props":1529,"children":1530},{"style":692},[1531],{"type":55,"value":712},{"type":49,"tag":92,"props":1533,"children":1535},{"class":94,"line":1534},35,[1536],{"type":49,"tag":92,"props":1537,"children":1538},{"style":410},[1539],{"type":55,"value":1540},"        \n",{"type":49,"tag":92,"props":1542,"children":1544},{"class":94,"line":1543},36,[1545,1549,1553,1557],{"type":49,"tag":92,"props":1546,"children":1547},{"style":692},[1548],{"type":55,"value":1474},{"type":49,"tag":92,"props":1550,"children":1551},{"style":698},[1552],{"type":55,"value":64},{"type":49,"tag":92,"props":1554,"children":1555},{"style":692},[1556],{"type":55,"value":418},{"type":49,"tag":92,"props":1558,"children":1559},{"style":410},[1560],{"type":55,"value":1561},"For online documentation and support please refer to\n",{"type":49,"tag":92,"props":1563,"children":1565},{"class":94,"line":1564},37,[1566,1570,1575,1580,1584,1588,1593,1597,1601,1606,1610,1614,1618,1623,1627,1631],{"type":49,"tag":92,"props":1567,"children":1568},{"style":692},[1569],{"type":55,"value":1474},{"type":49,"tag":92,"props":1571,"children":1572},{"style":698},[1573],{"type":55,"value":1574},"a",{"type":49,"tag":92,"props":1576,"children":1577},{"style":704},[1578],{"type":55,"value":1579}," href",{"type":49,"tag":92,"props":1581,"children":1582},{"style":587},[1583],{"type":55,"value":590},{"type":49,"tag":92,"props":1585,"children":1586},{"style":881},[1587],{"type":55,"value":1453},{"type":49,"tag":92,"props":1589,"children":1590},{"style":105},[1591],{"type":55,"value":1592},"http:\u002F\u002Fnginx.org\u002F",{"type":49,"tag":92,"props":1594,"children":1595},{"style":881},[1596],{"type":55,"value":1453},{"type":49,"tag":92,"props":1598,"children":1599},{"style":692},[1600],{"type":55,"value":418},{"type":49,"tag":92,"props":1602,"children":1603},{"style":410},[1604],{"type":55,"value":1605},"nginx.org",{"type":49,"tag":92,"props":1607,"children":1608},{"style":692},[1609],{"type":55,"value":770},{"type":49,"tag":92,"props":1611,"children":1612},{"style":698},[1613],{"type":55,"value":1574},{"type":49,"tag":92,"props":1615,"children":1616},{"style":692},[1617],{"type":55,"value":418},{"type":49,"tag":92,"props":1619,"children":1620},{"style":410},[1621],{"type":55,"value":1622},".",{"type":49,"tag":92,"props":1624,"children":1625},{"style":692},[1626],{"type":55,"value":770},{"type":49,"tag":92,"props":1628,"children":1629},{"style":698},[1630],{"type":55,"value":64},{"type":49,"tag":92,"props":1632,"children":1633},{"style":692},[1634],{"type":55,"value":712},{"type":49,"tag":92,"props":1636,"children":1638},{"class":94,"line":1637},38,[1639],{"type":49,"tag":92,"props":1640,"children":1641},{"style":410},[1642],{"type":55,"value":1540},{"type":49,"tag":92,"props":1644,"children":1646},{"class":94,"line":1645},39,[1647,1651,1655,1659,1663,1667,1671,1675],{"type":49,"tag":92,"props":1648,"children":1649},{"style":692},[1650],{"type":55,"value":1474},{"type":49,"tag":92,"props":1652,"children":1653},{"style":698},[1654],{"type":55,"value":1439},{"type":49,"tag":92,"props":1656,"children":1657},{"style":704},[1658],{"type":55,"value":1444},{"type":49,"tag":92,"props":1660,"children":1661},{"style":587},[1662],{"type":55,"value":590},{"type":49,"tag":92,"props":1664,"children":1665},{"style":881},[1666],{"type":55,"value":1453},{"type":49,"tag":92,"props":1668,"children":1669},{"style":105},[1670],{"type":55,"value":1313},{"type":49,"tag":92,"props":1672,"children":1673},{"style":881},[1674],{"type":55,"value":1453},{"type":49,"tag":92,"props":1676,"children":1677},{"style":692},[1678],{"type":55,"value":712},{"type":49,"tag":92,"props":1680,"children":1682},{"class":94,"line":1681},40,[1683,1688,1692,1696,1701,1705,1709],{"type":49,"tag":92,"props":1684,"children":1685},{"style":692},[1686],{"type":55,"value":1687},"            \u003C",{"type":49,"tag":92,"props":1689,"children":1690},{"style":698},[1691],{"type":55,"value":64},{"type":49,"tag":92,"props":1693,"children":1694},{"style":692},[1695],{"type":55,"value":418},{"type":49,"tag":92,"props":1697,"children":1698},{"style":410},[1699],{"type":55,"value":1700},"Server: {{ ansible_hostname }}",{"type":49,"tag":92,"props":1702,"children":1703},{"style":692},[1704],{"type":55,"value":770},{"type":49,"tag":92,"props":1706,"children":1707},{"style":698},[1708],{"type":55,"value":64},{"type":49,"tag":92,"props":1710,"children":1711},{"style":692},[1712],{"type":55,"value":712},{"type":49,"tag":92,"props":1714,"children":1716},{"class":94,"line":1715},41,[1717,1721,1725,1729,1734,1738,1742],{"type":49,"tag":92,"props":1718,"children":1719},{"style":692},[1720],{"type":55,"value":1687},{"type":49,"tag":92,"props":1722,"children":1723},{"style":698},[1724],{"type":55,"value":64},{"type":49,"tag":92,"props":1726,"children":1727},{"style":692},[1728],{"type":55,"value":418},{"type":49,"tag":92,"props":1730,"children":1731},{"style":410},[1732],{"type":55,"value":1733},"Deployed by: Ansible",{"type":49,"tag":92,"props":1735,"children":1736},{"style":692},[1737],{"type":55,"value":770},{"type":49,"tag":92,"props":1739,"children":1740},{"style":698},[1741],{"type":55,"value":64},{"type":49,"tag":92,"props":1743,"children":1744},{"style":692},[1745],{"type":55,"value":712},{"type":49,"tag":92,"props":1747,"children":1749},{"class":94,"line":1748},42,[1750,1754,1758,1762,1767,1771,1775],{"type":49,"tag":92,"props":1751,"children":1752},{"style":692},[1753],{"type":55,"value":1687},{"type":49,"tag":92,"props":1755,"children":1756},{"style":698},[1757],{"type":55,"value":64},{"type":49,"tag":92,"props":1759,"children":1760},{"style":692},[1761],{"type":55,"value":418},{"type":49,"tag":92,"props":1763,"children":1764},{"style":410},[1765],{"type":55,"value":1766},"Deployment time: {{ ansible_date_time.iso8601 }}",{"type":49,"tag":92,"props":1768,"children":1769},{"style":692},[1770],{"type":55,"value":770},{"type":49,"tag":92,"props":1772,"children":1773},{"style":698},[1774],{"type":55,"value":64},{"type":49,"tag":92,"props":1776,"children":1777},{"style":692},[1778],{"type":55,"value":712},{"type":49,"tag":92,"props":1780,"children":1782},{"class":94,"line":1781},43,[1783,1788,1792],{"type":49,"tag":92,"props":1784,"children":1785},{"style":692},[1786],{"type":55,"value":1787},"        \u003C\u002F",{"type":49,"tag":92,"props":1789,"children":1790},{"style":698},[1791],{"type":55,"value":1439},{"type":49,"tag":92,"props":1793,"children":1794},{"style":692},[1795],{"type":55,"value":712},{"type":49,"tag":92,"props":1797,"children":1799},{"class":94,"line":1798},44,[1800,1804,1808],{"type":49,"tag":92,"props":1801,"children":1802},{"style":692},[1803],{"type":55,"value":1385},{"type":49,"tag":92,"props":1805,"children":1806},{"style":698},[1807],{"type":55,"value":1439},{"type":49,"tag":92,"props":1809,"children":1810},{"style":692},[1811],{"type":55,"value":712},{"type":49,"tag":92,"props":1813,"children":1815},{"class":94,"line":1814},45,[1816,1820,1824],{"type":49,"tag":92,"props":1817,"children":1818},{"style":692},[1819],{"type":55,"value":770},{"type":49,"tag":92,"props":1821,"children":1822},{"style":698},[1823],{"type":55,"value":1422},{"type":49,"tag":92,"props":1825,"children":1826},{"style":692},[1827],{"type":55,"value":712},{"type":49,"tag":92,"props":1829,"children":1831},{"class":94,"line":1830},46,[1832,1836,1840],{"type":49,"tag":92,"props":1833,"children":1834},{"style":692},[1835],{"type":55,"value":770},{"type":49,"tag":92,"props":1837,"children":1838},{"style":698},[1839],{"type":55,"value":682},{"type":49,"tag":92,"props":1841,"children":1842},{"style":692},[1843],{"type":55,"value":712},{"type":49,"tag":64,"props":1845,"children":1846},{},[1847],{"type":55,"value":1848},"Create the Ansible playbook:",{"type":49,"tag":81,"props":1850,"children":1852},{"className":83,"code":1851,"language":85,"meta":31,"style":31},"sudo nano \u002Fetc\u002Fansible\u002Fnginx_setup.yml\n\n",[1853],{"type":49,"tag":88,"props":1854,"children":1855},{"__ignoreMap":31},[1856],{"type":49,"tag":92,"props":1857,"children":1858},{"class":94,"line":95},[1859,1863,1867],{"type":49,"tag":92,"props":1860,"children":1861},{"style":99},[1862],{"type":55,"value":102},{"type":49,"tag":92,"props":1864,"children":1865},{"style":105},[1866],{"type":55,"value":469},{"type":49,"tag":92,"props":1868,"children":1869},{"style":105},[1870],{"type":55,"value":1871}," \u002Fetc\u002Fansible\u002Fnginx_setup.yml\n",{"type":49,"tag":64,"props":1873,"children":1874},{},[1875],{"type":55,"value":1876},"Playbook Content:",{"type":49,"tag":81,"props":1878,"children":1882},{"className":1879,"code":1880,"language":1881,"meta":31,"style":31},"language-yaml shiki shiki-themes nord github-dark monokai","---\n- name: Set up and configure Nginx web server\n  hosts: workers\n  become: yes\n  tasks:\n    - name: Update system\n      apt:\n        update_cache: yes\n        upgrade: dist\n    \n    - name: Install Nginx\n      apt:\n        name: nginx\n        state: present\n    \n    - name: Deploy custom index.html\n      template:\n        src: templates\u002Findex.html.j2\n        dest: \u002Fvar\u002Fwww\u002Fhtml\u002Findex.html\n      notify: Restart nginx\n    \n    - name: Ensure Nginx is running and enabled\n      service:\n        name: nginx\n        state: started\n        enabled: yes\n  \n  handlers:\n    - name: Restart nginx\n      service:\n        name: nginx\n        state: restarted\n\n","yaml",[1883],{"type":49,"tag":88,"props":1884,"children":1885},{"__ignoreMap":31},[1886,1894,1917,1934,1952,1965,1986,1998,2014,2031,2039,2059,2070,2087,2104,2111,2131,2143,2160,2177,2194,2201,2221,2233,2248,2264,2280,2288,2300,2319,2330,2345],{"type":49,"tag":92,"props":1887,"children":1888},{"class":94,"line":95},[1889],{"type":49,"tag":92,"props":1890,"children":1891},{"style":563},[1892],{"type":55,"value":1893},"---\n",{"type":49,"tag":92,"props":1895,"children":1896},{"class":94,"line":122},[1897,1902,1908,1912],{"type":49,"tag":92,"props":1898,"children":1899},{"style":587},[1900],{"type":55,"value":1901},"-",{"type":49,"tag":92,"props":1903,"children":1905},{"style":1904},"--shiki-default:#8FBCBB;--shiki-dark:#85E89D;--shiki-sepia:#F92672",[1906],{"type":55,"value":1907}," name",{"type":49,"tag":92,"props":1909,"children":1910},{"style":587},[1911],{"type":55,"value":821},{"type":49,"tag":92,"props":1913,"children":1914},{"style":105},[1915],{"type":55,"value":1916}," Set up and configure Nginx web server\n",{"type":49,"tag":92,"props":1918,"children":1919},{"class":94,"line":140},[1920,1925,1929],{"type":49,"tag":92,"props":1921,"children":1922},{"style":1904},[1923],{"type":55,"value":1924},"  hosts",{"type":49,"tag":92,"props":1926,"children":1927},{"style":587},[1928],{"type":55,"value":821},{"type":49,"tag":92,"props":1930,"children":1931},{"style":105},[1932],{"type":55,"value":1933}," workers\n",{"type":49,"tag":92,"props":1935,"children":1936},{"class":94,"line":166},[1937,1942,1946],{"type":49,"tag":92,"props":1938,"children":1939},{"style":1904},[1940],{"type":55,"value":1941},"  become",{"type":49,"tag":92,"props":1943,"children":1944},{"style":587},[1945],{"type":55,"value":821},{"type":49,"tag":92,"props":1947,"children":1949},{"style":1948},"--shiki-default:#81A1C1;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF",[1950],{"type":55,"value":1951}," yes\n",{"type":49,"tag":92,"props":1953,"children":1954},{"class":94,"line":307},[1955,1960],{"type":49,"tag":92,"props":1956,"children":1957},{"style":1904},[1958],{"type":55,"value":1959},"  tasks",{"type":49,"tag":92,"props":1961,"children":1962},{"style":587},[1963],{"type":55,"value":1964},":\n",{"type":49,"tag":92,"props":1966,"children":1967},{"class":94,"line":316},[1968,1973,1977,1981],{"type":49,"tag":92,"props":1969,"children":1970},{"style":587},[1971],{"type":55,"value":1972},"    -",{"type":49,"tag":92,"props":1974,"children":1975},{"style":1904},[1976],{"type":55,"value":1907},{"type":49,"tag":92,"props":1978,"children":1979},{"style":587},[1980],{"type":55,"value":821},{"type":49,"tag":92,"props":1982,"children":1983},{"style":105},[1984],{"type":55,"value":1985}," Update system\n",{"type":49,"tag":92,"props":1987,"children":1988},{"class":94,"line":339},[1989,1994],{"type":49,"tag":92,"props":1990,"children":1991},{"style":1904},[1992],{"type":55,"value":1993},"      apt",{"type":49,"tag":92,"props":1995,"children":1996},{"style":587},[1997],{"type":55,"value":1964},{"type":49,"tag":92,"props":1999,"children":2000},{"class":94,"line":840},[2001,2006,2010],{"type":49,"tag":92,"props":2002,"children":2003},{"style":1904},[2004],{"type":55,"value":2005},"        update_cache",{"type":49,"tag":92,"props":2007,"children":2008},{"style":587},[2009],{"type":55,"value":821},{"type":49,"tag":92,"props":2011,"children":2012},{"style":1948},[2013],{"type":55,"value":1951},{"type":49,"tag":92,"props":2015,"children":2016},{"class":94,"line":868},[2017,2022,2026],{"type":49,"tag":92,"props":2018,"children":2019},{"style":1904},[2020],{"type":55,"value":2021},"        upgrade",{"type":49,"tag":92,"props":2023,"children":2024},{"style":587},[2025],{"type":55,"value":821},{"type":49,"tag":92,"props":2027,"children":2028},{"style":105},[2029],{"type":55,"value":2030}," dist\n",{"type":49,"tag":92,"props":2032,"children":2033},{"class":94,"line":939},[2034],{"type":49,"tag":92,"props":2035,"children":2036},{"style":410},[2037],{"type":55,"value":2038},"    \n",{"type":49,"tag":92,"props":2040,"children":2041},{"class":94,"line":967},[2042,2046,2050,2054],{"type":49,"tag":92,"props":2043,"children":2044},{"style":587},[2045],{"type":55,"value":1972},{"type":49,"tag":92,"props":2047,"children":2048},{"style":1904},[2049],{"type":55,"value":1907},{"type":49,"tag":92,"props":2051,"children":2052},{"style":587},[2053],{"type":55,"value":821},{"type":49,"tag":92,"props":2055,"children":2056},{"style":105},[2057],{"type":55,"value":2058}," Install Nginx\n",{"type":49,"tag":92,"props":2060,"children":2061},{"class":94,"line":993},[2062,2066],{"type":49,"tag":92,"props":2063,"children":2064},{"style":1904},[2065],{"type":55,"value":1993},{"type":49,"tag":92,"props":2067,"children":2068},{"style":587},[2069],{"type":55,"value":1964},{"type":49,"tag":92,"props":2071,"children":2072},{"class":94,"line":1015},[2073,2078,2082],{"type":49,"tag":92,"props":2074,"children":2075},{"style":1904},[2076],{"type":55,"value":2077},"        name",{"type":49,"tag":92,"props":2079,"children":2080},{"style":587},[2081],{"type":55,"value":821},{"type":49,"tag":92,"props":2083,"children":2084},{"style":105},[2085],{"type":55,"value":2086}," nginx\n",{"type":49,"tag":92,"props":2088,"children":2089},{"class":94,"line":1042},[2090,2095,2099],{"type":49,"tag":92,"props":2091,"children":2092},{"style":1904},[2093],{"type":55,"value":2094},"        state",{"type":49,"tag":92,"props":2096,"children":2097},{"style":587},[2098],{"type":55,"value":821},{"type":49,"tag":92,"props":2100,"children":2101},{"style":105},[2102],{"type":55,"value":2103}," present\n",{"type":49,"tag":92,"props":2105,"children":2106},{"class":94,"line":1051},[2107],{"type":49,"tag":92,"props":2108,"children":2109},{"style":410},[2110],{"type":55,"value":2038},{"type":49,"tag":92,"props":2112,"children":2113},{"class":94,"line":1064},[2114,2118,2122,2126],{"type":49,"tag":92,"props":2115,"children":2116},{"style":587},[2117],{"type":55,"value":1972},{"type":49,"tag":92,"props":2119,"children":2120},{"style":1904},[2121],{"type":55,"value":1907},{"type":49,"tag":92,"props":2123,"children":2124},{"style":587},[2125],{"type":55,"value":821},{"type":49,"tag":92,"props":2127,"children":2128},{"style":105},[2129],{"type":55,"value":2130}," Deploy custom index.html\n",{"type":49,"tag":92,"props":2132,"children":2133},{"class":94,"line":1089},[2134,2139],{"type":49,"tag":92,"props":2135,"children":2136},{"style":1904},[2137],{"type":55,"value":2138},"      template",{"type":49,"tag":92,"props":2140,"children":2141},{"style":587},[2142],{"type":55,"value":1964},{"type":49,"tag":92,"props":2144,"children":2145},{"class":94,"line":1111},[2146,2151,2155],{"type":49,"tag":92,"props":2147,"children":2148},{"style":1904},[2149],{"type":55,"value":2150},"        src",{"type":49,"tag":92,"props":2152,"children":2153},{"style":587},[2154],{"type":55,"value":821},{"type":49,"tag":92,"props":2156,"children":2157},{"style":105},[2158],{"type":55,"value":2159}," templates\u002Findex.html.j2\n",{"type":49,"tag":92,"props":2161,"children":2162},{"class":94,"line":1119},[2163,2168,2172],{"type":49,"tag":92,"props":2164,"children":2165},{"style":1904},[2166],{"type":55,"value":2167},"        dest",{"type":49,"tag":92,"props":2169,"children":2170},{"style":587},[2171],{"type":55,"value":821},{"type":49,"tag":92,"props":2173,"children":2174},{"style":105},[2175],{"type":55,"value":2176}," \u002Fvar\u002Fwww\u002Fhtml\u002Findex.html\n",{"type":49,"tag":92,"props":2178,"children":2179},{"class":94,"line":1138},[2180,2185,2189],{"type":49,"tag":92,"props":2181,"children":2182},{"style":1904},[2183],{"type":55,"value":2184},"      notify",{"type":49,"tag":92,"props":2186,"children":2187},{"style":587},[2188],{"type":55,"value":821},{"type":49,"tag":92,"props":2190,"children":2191},{"style":105},[2192],{"type":55,"value":2193}," Restart nginx\n",{"type":49,"tag":92,"props":2195,"children":2196},{"class":94,"line":1160},[2197],{"type":49,"tag":92,"props":2198,"children":2199},{"style":410},[2200],{"type":55,"value":2038},{"type":49,"tag":92,"props":2202,"children":2203},{"class":94,"line":1184},[2204,2208,2212,2216],{"type":49,"tag":92,"props":2205,"children":2206},{"style":587},[2207],{"type":55,"value":1972},{"type":49,"tag":92,"props":2209,"children":2210},{"style":1904},[2211],{"type":55,"value":1907},{"type":49,"tag":92,"props":2213,"children":2214},{"style":587},[2215],{"type":55,"value":821},{"type":49,"tag":92,"props":2217,"children":2218},{"style":105},[2219],{"type":55,"value":2220}," Ensure Nginx is running and enabled\n",{"type":49,"tag":92,"props":2222,"children":2223},{"class":94,"line":1210},[2224,2229],{"type":49,"tag":92,"props":2225,"children":2226},{"style":1904},[2227],{"type":55,"value":2228},"      service",{"type":49,"tag":92,"props":2230,"children":2231},{"style":587},[2232],{"type":55,"value":1964},{"type":49,"tag":92,"props":2234,"children":2235},{"class":94,"line":1295},[2236,2240,2244],{"type":49,"tag":92,"props":2237,"children":2238},{"style":1904},[2239],{"type":55,"value":2077},{"type":49,"tag":92,"props":2241,"children":2242},{"style":587},[2243],{"type":55,"value":821},{"type":49,"tag":92,"props":2245,"children":2246},{"style":105},[2247],{"type":55,"value":2086},{"type":49,"tag":92,"props":2249,"children":2250},{"class":94,"line":1303},[2251,2255,2259],{"type":49,"tag":92,"props":2252,"children":2253},{"style":1904},[2254],{"type":55,"value":2094},{"type":49,"tag":92,"props":2256,"children":2257},{"style":587},[2258],{"type":55,"value":821},{"type":49,"tag":92,"props":2260,"children":2261},{"style":105},[2262],{"type":55,"value":2263}," started\n",{"type":49,"tag":92,"props":2265,"children":2266},{"class":94,"line":1320},[2267,2272,2276],{"type":49,"tag":92,"props":2268,"children":2269},{"style":1904},[2270],{"type":55,"value":2271},"        enabled",{"type":49,"tag":92,"props":2273,"children":2274},{"style":587},[2275],{"type":55,"value":821},{"type":49,"tag":92,"props":2277,"children":2278},{"style":1948},[2279],{"type":55,"value":1951},{"type":49,"tag":92,"props":2281,"children":2282},{"class":94,"line":1345},[2283],{"type":49,"tag":92,"props":2284,"children":2285},{"style":410},[2286],{"type":55,"value":2287},"  \n",{"type":49,"tag":92,"props":2289,"children":2290},{"class":94,"line":1371},[2291,2296],{"type":49,"tag":92,"props":2292,"children":2293},{"style":1904},[2294],{"type":55,"value":2295},"  handlers",{"type":49,"tag":92,"props":2297,"children":2298},{"style":587},[2299],{"type":55,"value":1964},{"type":49,"tag":92,"props":2301,"children":2302},{"class":94,"line":1379},[2303,2307,2311,2315],{"type":49,"tag":92,"props":2304,"children":2305},{"style":587},[2306],{"type":55,"value":1972},{"type":49,"tag":92,"props":2308,"children":2309},{"style":1904},[2310],{"type":55,"value":1907},{"type":49,"tag":92,"props":2312,"children":2313},{"style":587},[2314],{"type":55,"value":821},{"type":49,"tag":92,"props":2316,"children":2317},{"style":105},[2318],{"type":55,"value":2193},{"type":49,"tag":92,"props":2320,"children":2321},{"class":94,"line":1396},[2322,2326],{"type":49,"tag":92,"props":2323,"children":2324},{"style":1904},[2325],{"type":55,"value":2228},{"type":49,"tag":92,"props":2327,"children":2328},{"style":587},[2329],{"type":55,"value":1964},{"type":49,"tag":92,"props":2331,"children":2332},{"class":94,"line":1412},[2333,2337,2341],{"type":49,"tag":92,"props":2334,"children":2335},{"style":1904},[2336],{"type":55,"value":2077},{"type":49,"tag":92,"props":2338,"children":2339},{"style":587},[2340],{"type":55,"value":821},{"type":49,"tag":92,"props":2342,"children":2343},{"style":105},[2344],{"type":55,"value":2086},{"type":49,"tag":92,"props":2346,"children":2347},{"class":94,"line":1429},[2348,2352,2356],{"type":49,"tag":92,"props":2349,"children":2350},{"style":1904},[2351],{"type":55,"value":2094},{"type":49,"tag":92,"props":2353,"children":2354},{"style":587},[2355],{"type":55,"value":821},{"type":49,"tag":92,"props":2357,"children":2358},{"style":105},[2359],{"type":55,"value":2360}," restarted\n",{"type":49,"tag":57,"props":2362,"children":2364},{"id":2363},"_8-run-the-playbook",[2365],{"type":55,"value":2366},"8. Run the Playbook",{"type":49,"tag":64,"props":2368,"children":2369},{},[2370],{"type":55,"value":2371},"Execute the Ansible playbook to configure the worker node:",{"type":49,"tag":81,"props":2373,"children":2375},{"className":83,"code":2374,"language":85,"meta":31,"style":31},"cd \u002Fetc\u002Fansible\nansible-playbook -i inventory.ini playbooks\u002Fnginx_setup.yml -u worker --ask-become-pass\n# Enter the worker's sudo password when prompted\n\n",[2376],{"type":49,"tag":88,"props":2377,"children":2378},{"__ignoreMap":31},[2379,2392,2430],{"type":49,"tag":92,"props":2380,"children":2381},{"class":94,"line":95},[2382,2387],{"type":49,"tag":92,"props":2383,"children":2384},{"style":1245},[2385],{"type":55,"value":2386},"cd",{"type":49,"tag":92,"props":2388,"children":2389},{"style":105},[2390],{"type":55,"value":2391}," \u002Fetc\u002Fansible\n",{"type":49,"tag":92,"props":2393,"children":2394},{"class":94,"line":122},[2395,2400,2405,2410,2415,2420,2425],{"type":49,"tag":92,"props":2396,"children":2397},{"style":99},[2398],{"type":55,"value":2399},"ansible-playbook",{"type":49,"tag":92,"props":2401,"children":2402},{"style":116},[2403],{"type":55,"value":2404}," -i",{"type":49,"tag":92,"props":2406,"children":2407},{"style":105},[2408],{"type":55,"value":2409}," inventory.ini",{"type":49,"tag":92,"props":2411,"children":2412},{"style":105},[2413],{"type":55,"value":2414}," playbooks\u002Fnginx_setup.yml",{"type":49,"tag":92,"props":2416,"children":2417},{"style":116},[2418],{"type":55,"value":2419}," -u",{"type":49,"tag":92,"props":2421,"children":2422},{"style":105},[2423],{"type":55,"value":2424}," worker",{"type":49,"tag":92,"props":2426,"children":2427},{"style":116},[2428],{"type":55,"value":2429}," --ask-become-pass\n",{"type":49,"tag":92,"props":2431,"children":2432},{"class":94,"line":140},[2433],{"type":49,"tag":92,"props":2434,"children":2435},{"style":180},[2436],{"type":55,"value":2437},"# Enter the worker's sudo password when prompted\n",{"type":49,"tag":64,"props":2439,"children":2440},{},[2441],{"type":49,"tag":188,"props":2442,"children":2445},{"alt":2443,"src":2444},"Output of the ansible-playbook command","\u002Fimages\u002Fblog\u002F2025\u002F03\u002F14\u002Fnginx_output.png",[],{"type":49,"tag":57,"props":2447,"children":2449},{"id":2448},"_9-verify-installation",[2450],{"type":55,"value":2451},"9. Verify Installation",{"type":49,"tag":64,"props":2453,"children":2454},{},[2455],{"type":55,"value":2456},"Open a web browser and navigate to http:\u002F\u002F\u003CWORKER_IP>. You should see the custom \"Welcome to Nginx\" page.",{"type":49,"tag":64,"props":2458,"children":2459},{},[2460],{"type":49,"tag":188,"props":2461,"children":2464},{"alt":2462,"src":2463},"Nginx Web Server","\u002Fimages\u002Fblog\u002F2025\u002F03\u002F14\u002Fnginx_web.png",[],{"type":49,"tag":57,"props":2466,"children":2468},{"id":2467},"conclusion",[2469],{"type":55,"value":2470},"Conclusion",{"type":49,"tag":64,"props":2472,"children":2473},{},[2474],{"type":55,"value":2475},"This guide has walked through the process of setting up Ansible automation for deploying an Nginx web server. The setup establishes secure communication between the control and worker nodes, and demonstrates basic Ansible concepts including playbooks, templates, and handlers.",{"type":49,"tag":790,"props":2477,"children":2478},{},[2479],{"type":55,"value":2480},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":31,"searchDepth":122,"depth":122,"links":2482},[2483,2484,2485,2486,2487,2488,2489,2490,2491,2492,2493],{"id":59,"depth":122,"text":62},{"id":71,"depth":122,"text":74},{"id":195,"depth":122,"text":198},{"id":234,"depth":122,"text":237},{"id":368,"depth":122,"text":371},{"id":442,"depth":122,"text":445},{"id":506,"depth":122,"text":509},{"id":611,"depth":122,"text":614},{"id":2363,"depth":122,"text":2366},{"id":2448,"depth":122,"text":2451},{"id":2467,"depth":122,"text":2470},"markdown","content:blog:2025:03:14:ansible-setup-configuration.md","blog\u002F2025\u002F03\u002F14\u002Fansible-setup-configuration.md","blog\u002F2025\u002F03\u002F14\u002Fansible-setup-configuration","md",{"loc":11},1773617922837]