{"id":9966,"date":"2025-02-17T18:12:08","date_gmt":"2025-02-17T09:12:08","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=9966"},"modified":"2025-12-17T18:08:14","modified_gmt":"2025-12-17T09:08:14","slug":"github-self-hosted-runner-%ea%b5%ac%ec%84%b1%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=9966","title":{"rendered":"GitHub Self-Hosted Runner \uad6c\uc131\ud558\uae30"},"content":{"rendered":"<h1>GitHub Self-Hosted Runner \uad6c\uc131\ud558\uae30<\/h1>\n<p>Self-Hosted Runner \ub294 AWS \ub97c \uc774\uc6a9\ud560 \uc218\ub3c4 \uc788\uace0, \uc790\uccb4 \uc11c\ubc84\ub97c \uc774\uc6a9\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798\uc5d0\uc11c\ub294 \uc790\uccb4 \uc11c\ubc84\ub97c Runner \ub85c \uad6c\uc131\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<p><strong>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \ucef4\ud30c\uc77c\uc774 \uc2e4\ud328\ud558\uba74 Action \uc2e4\ud589\uc774 \uc911\ub2e8\ub418\ubbc0\ub85c \uc11c\ube44\uc2a4(\uc11c\ube44\uc2a4\ub85c \uc6b4\uc601\ud55c\ub2e4\uba74)\ub97c \uc7ac\uc2dc\uc791\ud574\uc57c \ud569\ub2c8\ub2e4.<\/strong><\/p>\n<p><strong>\uc778\ud130\ub137 \uc5f0\uacb0\uc774 \uc911\ub2e8\ub418\uc5c8\uc744 \ub54c\ub3c4 \uc11c\ube44\uc2a4\uac00 \uc911\uc9c0\ub429\ub2c8\ub2e4.<\/strong><\/p>\n<h2>self-hosted runner \uc0dd\uc131<\/h2>\n<pre><code class=\"language-bash\"># Repository \ub808\ubca8\uc758 \uacbd\uc6b0:\n1. GitHub\uc800\uc7a5\uc18c \u2192 Settings \u2192 Actions \u2192 Runners \u2192 New self-hosted runner\n2. \uc6b4\uc601\uccb4\uc81c \uc120\ud0dd\n3. \ud654\uba74\uc5d0 \ud45c\uc2dc\ub418\ub294 TOKEN\uc744 \ubcf5\uc0ac (\uc608: AABCD1234EFGH5678IJKL)\n   \uc124\uce58\uba85\ub839\uc911\uc5d0 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/code><\/pre>\n<h2>Runner \uc6a9 \ub9ac\ub205\uc2a4 \uacc4\uc131 \uc0dd\uc131<\/h2>\n<p><strong>actions-runner \uc5d0 sudo \uad8c\ud55c\uc744 \uc8fc\uc5b4\uc57c \ud558\uace0, \uc11c\ube44\uc2a4 \uc124\uce58 \ubc0f \uc2e4\ud589\uc740 actions-runner \ub85c \ub85c\uadf8\uc778\ud55c \ud6c4\uc5d0 \ud574\uc57c \ud569\ub2c8\ub2e4.<\/strong><\/p>\n<p>\ub610\ud55c \ube44\ubc00\ubc88\ud638 \uc5c6\uc774 sudo \uba85\ub839\uc744 \uc2e4\ud589\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># runner \uc804\uc6a9 \uc0ac\uc6a9\uc790 \uc0dd\uc131\nsudo useradd -m actions-runner\n\n# \uc0ac\uc6a9\uc790 \uc258\uc744 bash\ub85c \uc124\uc815\nsudo usermod -s \/bin\/bash actions-runner\n\n# \ube44\ubc00\ubc88\ud638 \uc124\uc815 (\ubcf4\uc548\uc744 \uc704\ud574 \ubcf5\uc7a1\ud55c \ube44\ubc00\ubc88\ud638 \uc0ac\uc6a9)\nsudo passwd actions-runner\n\n# sudo \uad8c\ud55c \ubd80\uc5ec (\ud544\uc694\ud55c \uacbd\uc6b0)\nsudo usermod -aG sudo actions-runner\n\n# actions-runner \ub514\ub809\ud1a0\ub9ac \uc0dd\uc131 \ubc0f \uc18c\uc720\uad8c \ubcc0\uacbd\n# sudo mkdir \/opt\/actions-runner\n# sudo chown actions-runner:actions-runner \/opt\/actions-runner\n\n# \ube44\ubc00\ubc88\ud638 \uc5c6\uc774 sudo \uba85\ub839\uc744 \uc2e4\ud589\nsudo vi \/etc\/sudoers\n......\nactions-runner  ALL=NOPASSWD: ALL\n\n# \ud574\ub2f9 \uc0ac\uc6a9\uc790\ub85c \uc804\ud658\nsudo su - actions-runner<\/code><\/pre>\n<h2>Runner \uc124\uce58 \uc2a4\ud06c\ub9bd\ud2b8 \uc2e4\ud589<\/h2>\n<p>\uc544\ub798 \uba85\ub839\uc740 \uc608\uc81c\uc774\uace0 \uae43\ud5c8\ube0c\uc5d0\uc11c \ud45c\uc2dc\ud574\uc8fc\ub294 \uba85\ub839\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\"># Linux\uc758 \uacbd\uc6b0\n# mkdir actions-runner &amp;&amp; cd actions-runner\n\n# GitHub\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ucd5c\uc2e0 runner \ub2e4\uc6b4\ub85c\ub4dc\n# curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https:\/\/github.com\/actions\/runner\/releases\/download\/v2.311.0\/actions-runner-linux-x64-2.311.0.tar.gz\n\n# \uc555\ucd95 \ud574\uc81c\n# tar xzf .\/actions-runner-linux-x64-2.311.0.tar.gz\n\n# \uc124\uce58 \uc2a4\ud06c\ub9bd\ud2b8 \uc2e4\ud589\n# .\/config.sh --url https:\/\/github.com\/[OWNER]\/[REPOSITORY] --token [TOKEN]<\/code><\/pre>\n<h2>Runner \uc11c\ube44\uc2a4 \uc2dc\uc791<\/h2>\n<pre><code class=\"language-bash\"># \uc9c1\uc811 \uc2e4\ud589\n.\/run.sh\n\n# \ub610\ub294 \uc11c\ube44\uc2a4\ub85c \uc124\uce58 (\uad8c\uc7a5)\nsudo .\/svc.sh install\nsudo .\/svc.sh start<\/code><\/pre>\n<h2>GitHub Actions \uc6cc\ud06c\ud50c\ub85c\uc6b0\uc5d0\uc11c \uc0ac\uc6a9<\/h2>\n<pre><code class=\"language-yaml\">jobs:\n  build:\n    runs-on: self-hosted<\/code><\/pre>\n<h2>\ud3ec\ud2b8 \ud3ec\uc6cc\ub529 \ubd88\ud544\uc694<\/h2>\n<p>Self-hosted Runner\ub294 &quot;\ud480(pull)&quot; \ubc29\uc2dd\uc73c\ub85c \uc791\ub3d9\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub530\ub77c\uc11c \ud3ec\ud2b8 \ud3ec\uc6cc\ub529\uc740 \ubd88\ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<h2>\uc8fc\uc694 \uad00\ub9ac \uba85\ub839\uc5b4<\/h2>\n<pre><code class=\"language-bash\"># \uc11c\ube44\uc2a4 \uc0c1\ud0dc \ud655\uc778\nsudo .\/svc.sh status\n\n# \uc911\uc9c0\ub41c \uc11c\ube44\uc2a4 \uc7ac\uc2dc\uc791\nsudo su - actions-runner\ncd actions-runner\/\nsudo .\/svc.sh start\n\n# \uc11c\ube44\uc2a4 \uc911\uc9c0\nsudo .\/svc.sh stop\n\n# \uc11c\ube44\uc2a4 \uc81c\uac70\nsudo .\/svc.sh uninstall<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>GitHub Self-Hosted Runner \uad6c\uc131\ud558\uae30 Self-Hosted Runner \ub294 AWS \ub97c \uc774\uc6a9\ud560 \uc218\ub3c4 \uc788\uace0, \uc790\uccb4 \uc11c\ubc84\ub97c \uc774\uc6a9\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798\uc5d0\uc11c\ub294 \uc790\uccb4 \uc11c\ubc84\ub97c Runner \ub85c \uad6c\uc131\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c \ucef4\ud30c\uc77c\uc774 \uc2e4\ud328\ud558\uba74 Action \uc2e4\ud589\uc774 \uc911\ub2e8\ub418\ubbc0\ub85c \uc11c\ube44\uc2a4(\uc11c\ube44\uc2a4\ub85c \uc6b4\uc601\ud55c\ub2e4\uba74)\ub97c \uc7ac\uc2dc\uc791\ud574\uc57c \ud569\ub2c8\ub2e4. \uc778\ud130\ub137 \uc5f0\uacb0\uc774 \uc911\ub2e8\ub418\uc5c8\uc744 \ub54c\ub3c4 \uc11c\ube44\uc2a4\uac00 \uc911\uc9c0\ub429\ub2c8\ub2e4. self-hosted runner \uc0dd\uc131 # Repository \ub808\ubca8\uc758 \uacbd\uc6b0: 1. GitHub\uc800\uc7a5\uc18c \u2192 Settings \u2192 Actions \u2192\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=9966\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-9966","post","type-post","status-publish","format-standard","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/9966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9966"}],"version-history":[{"count":13,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/9966\/revisions"}],"predecessor-version":[{"id":11209,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/9966\/revisions\/11209"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9966"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}