Өзің орналастыратын GitHub Actions runner, ЕО-да
Дәл сол workflow, Прага не Ковильяндағы минутпен емес, аймен сіздікі болатын машинада - құрастыру кеші әлі жылы, ал брандмауэр шынымен рұқсат ете алатын бір адрес бар.
Бұл кімге арналған
Минут есептегішін бақылап отырған команда
2 ядролы Linux минуты 0,006 USD, ал 16 ядролы минут 0,042 USD тұрады, сондықтан тесттер жиынтығын жылдам еткен матрицалық құрастыру - шотты қызық еткен нәрсенің дәл өзі.
Жеке нәрсеге жетуі керек workflow
Орналастыру қадамы тек белгілі адрестерді қабылдайтын дерекқормен, тіркеліммен немесе құрылғымен сөйлесуі керек, ал GitHub-тың хостингтегі runner-лері рұқсат етуге тым үлкен диапазоннан келеді.
Образ әкелгеннен көбірек керек ететін құрастыру
Лицензияланған компилятор, эмулятор, 30 ГБ сынақ деректері немесе жай ғана хостингтегі runner-де бар дискіден көбірек орын - ал мұны әр тапсырмада қайта орнату конвейердің көп бөлігін алады.
Runner сіздікі болғанда не өзгереді
- Жұмыс каталогы мен кештер тапсырмалар арасында сақталады, сондықтан тәуелділіктерді қалпына келтіру workflow-дың ең ұзақ қадамы болудан қалады.
- AS204057 ішіндегі статикалық IPv4: дерекқорыңыз, тіркеліміңіз немесе VPN-іңіз оны адрес бойынша рұқсат ете алады.
- Орнатқаныңыз орнатулы күйінде қалады - құралдар тізбектері, лицензияланған SDK, эмуляторлар, үлкен сынақ деректері жиынтықтары, хостингтегі образда жоқтың бәрі.
- Репозиторий, ұйым немесе кәсіпорын деңгейінде тіркелген runner-лер, өзіңіз таңдаған белгілермен және оларды runs-on арқылы таңдайтын workflow-мен.
- Хостингтегі runner келетін бекітілген пішін емес, өзіңіз таңдайтын диск пен жады.
- Кипр келісімшарты бойынша Прага не Ковильяндағы машина - бұл аймақ параметрі емес, деректер резиденциясы туралы жауап.
Конвейер шын мәнінде не істейтініне қарай өлшенген
Бір runner қызметі - бір мезгілде бір тапсырма, сондықтан мұндағы параллельдік тариф сатысы емес, runner процестерінің саны: бір хостта бірнешеуі, әрқайсысы өз каталогында - қалыпты пішін. Орташаға емес, ең ауыр тапсырмаға қарап өлшеңіз және дискіде қор қалдырыңыз: жұмыс каталогы, құралдар кеші және контейнер қабаттары солда тұрады, ал дәл осы тұрақтылық өзінде орналастырудың себебі. Мәміленің адал жартысы: тұрақты айлық хост push жоқ аптада да сол ақшаны тұрады, ал провайдердегі минуттар онда ештеңе тұрмайды. Конвейер дерлік күн сайын жүре бастаған бойда ол ақталады.
Жаңа хостқа GitHub Actions runner-ін қалай орнату керек
Linux x64, GitHub құжаттаған тәртіппен. Тіркеу токені әр runner үшін жасалады және бетті ашқаннан кейін бір сағаттан соң мерзімі бітеді, сондықтан оны ең соңында алыңыз.
-
Оған привилегиясыз пайдаланушы жасаңыз
sudo adduser --disabled-password --gecos "" runner sudo -iu runnerRunner workflow не десе, соны орындайды, сондықтан ол root болмауы және үй каталогын басқа ештеңемен бөліспеуі керек. Төмендегінің бәрі осы пайдаланушыдан жүреді.
-
Runner-ді жүктеп алып, тарқатыңыз
mkdir actions-runner && cd actions-runner curl -O -L https://github.com/actions/runner/releases/download/v2.336.0/actions-runner-linux-x64-2.336.0.tar.gz echo "04cf0be1aff4c3ec3554466c39124ca250e3effd8873bb7e8d68535aa9505d5d actions-runner-linux-x64-2.336.0.tar.gz" | shasum -a 256 -c tar xzf ./actions-runner-linux-x64-2.336.0.tar.gzБұл нұсқа мен бұл бақылау сомасы - v2.336.0 шығарылымымен жарияланғандар. Мұны көшірмес бұрын шығарылымдар бетінен жаңасы бар-жоғын тексеріңіз: одан кейін runner өзін өзі жаңартады, бірақ бірінші жүктеуді сіз тексересіз.
-
Оны репозиторийге немесе ұйымға баптаңыз
./config.sh --url https://github.com/YOUR-ORG/YOUR-REPO --token AXXXXXXXXXXXXXXXXXXXXXXXXX --labels self-hosted,linux,x64,euТокенді Settings, содан кейін Actions, содан кейін Runners, содан кейін New self-hosted runner ішінен алыңыз - ол уақытпен шектелген және берілгеннен кейін бір сағаттан соң мерзімі бітеді. Бір runner-ді бірнеше репозиторий арасында бөлісу үшін URL-ді репозиторийге емес, ұйымға бағыттаңыз.
-
Қызмет ретінде іске қосыңыз
sudo ./svc.sh install runner sudo ./svc.sh start sudo ./svc.sh statussvc.sh қызмет қай пайдаланушыдан жүретінін қабылдайды - сондықтан runner пайдаланушысы алдымен жасалды. Қызметке бекінбес бұрын бір тапсырманың келуін ғана көргіңіз келсе, оның орнына ./run.sh қолданыңыз.
-
needrestart тапсырмаларды ортасында өлтірмесін
echo '$nrconf{override_rc}{qr(^actions\.runner\..+\.service$)} = 0;' | sudo tee /etc/needrestart/conf.d/actions_runner_services.confDebian мен Ubuntu-да needrestart кітапханалары жаңартылған қызметтерді қайта іске қосады - оның ішінде тапсырма ортасындағы runner-ді де. GitHub оны алып тастау жолы ретінде дәл осы файлды құжаттайды.
-
Оған workflow бағыттаңыз
name: smoke on: [push] jobs: build: runs-on: [self-hosted, linux, x64, eu] steps: - uses: actions/checkout@v6 - run: cat /etc/os-releaseruns-on тізімдегі әр белгімен сәйкес келеді, сондықтан төрт белгі сұраған тапсырма төртеуін де көтеретін runner-ге ғана түседі. Кезекте қалса, бір белгі жетіспейді - ал 24 сағаттан артық күткен тапсырма сәтсіз аяқталады.
Ресми құжаттамамен салыстырылған күні 2026-08-15 — дереккөзді оқу
Біз кім емеспіз
- Біз GitHub емеспіз. GitHub, GitHub Actions және runner оларға тиесілі, әрі бұл беттегі ештеңе олармен мақұлданбаған. Біз runner жүретін машинаны сатамыз.
- Бұл сіздің GitHub тарифіңізді алмастырмайды. Өзің орналастыратын runner-лер Actions минуттарын жұмсамайды, мәні сонда, бірақ лицензиялар, сақтау орны және қалғанының бәрі олардың шотында қалады.
- Сұрамасаңыз, біз runner-ді басқармаймыз. Оны өзіңіз орнатасыз немесе біздің әкімшілендіру қызметімізді қосасыз, сонда біз оны жаңартып, тіркеулі әрі бақылауда ұстаймыз.
- Өзің орналастыратын runner-лер ашық репозиторийлерге нашар жарайтыны құжатталған: форк workflow файлын өзгертуді ұсына алады, ал сол өзгертілген workflow сіздің машинаңызда орындалар еді. Мұны мұқият ойламаған болсаңыз, оларды жабық репозиторийлерде ұстаңыз.
- Мұнда автомасштабтауы бар басқару жазықтығы жоқ. Әр тапсырмаға жасалып, жойылатын runner қаласаңыз, ол - Kubernetes кластеріндегі Actions Runner Controller, оны біз қуана орналастырамыз, басқа бетте.
Топтар кеш байқайтын бөліктер
- Бір runner қызметі бір мезгілде бір тапсырма орындайды. Параллельдік параметрден емес, әрқайсысы өз каталогында және өз қызметімен бірнешеуін орнатудан шығады.
- Тіркеу токенінің мерзімі берілгеннен кейін бір сағаттан соң бітеді, сондықтан оны күн ортасында емес, config.sh іске қосуға дайын болғанда жасаңыз.
- Белгілер - бүкіл бағыттау механизмі. runs-on тізімдегі әр белгімен сәйкес келеді, сондықтан қате жазу қате бермейді: тапсырма жай ғана күтеді және кезекте 24 сағаттан кейін сәтсіз аяқталады.
- Runner-ге lttng-ust, OpenSSL, Kerberos, zlib және libicu болуы керек. Debian мен Ubuntu оларды әкеледі; минималды контейнер образы жиі әкелмейді.
- Linux-та x64 пен ARM64, ал ARM32 тек Linux-та қолдау табады. Debian 10 және одан жаңасы мен Ubuntu 20.04 және одан жаңасы - құжатталған негіздер.
- Workflow артында қалдырғанның бәрі дискіде қалады - артықшылық та осында, әрі өзің орналастыратын runner-ге жоспарлы тазалау мен снапшот керек болатын себеп те осында.
Провайдердегі CI минуттары мен өз runner-іңіз
| Провайдер хостингіндегі CI минуттары | DCXV-дегі раннер | |
|---|---|---|
| Не үшін төлейсіз | Жоба өмір сүріп тұрғанда әр тапсырманың әр минуты үшін | Тұрақты айлық хост үшін, конвейер сол айда не істесе де |
| Баяулаған құрастыру | Баяу күйінде қалған әр айда қымбатырақ түседі | Артық ештеңе тұрмайды - машина әлдеқашан төленген |
| Docker қабаттар кеші | Өзіңіз жүктеп салып, кері жүктемесеңіз, әр тапсырмада суық | Жергілікті NVMe-де жылы, тапсырмалар арасында да, күндер арасында да |
| Параллельдік | Көтеретін тариф сатысы | Өз конфигурация файлыңызда қоятын сан |
| Checkout қайда түседі | Ортақ машиналар паркіне, көбіне бекіте алмайтын аймаққа | Прага не Ковильяндағы бір машинаға, Кипр келісімшарты бойынша |
| Шығыс адрес | Ештеңемен рұқсат ете алмайтын үлкен ортақ диапазон | AS204057 ішіндегі бір статикалық IPv4, рұқсат етуге өзіңіздікі |
| Машина нені ұстай алады | Runner образы кездейсоқ әкелгенді | Бір рет орнатқан кез келген құралдар тізбегін, лицензияны немесе сынақ деректері жиынтығын |
Бұл сіздің хостыңызда қалай іске қосылады
Конвейер не істейтінін айтыңыз
Бүгін орындайтын ең ауыр тапсырма, олардың қаншасы қатар жүруі керек және ол контейнер образдарын құрастыра ма. Хостты болжамсыз өлшеуге осы жеткілікті.
Біз машинаны тапсырамыз
Прага немесе Ковильян, root қатынасы және статикалық IPv4, он минуттан аз уақытта. Runner әлдеқашан образдың ішінде болса, өз образыңызды әкеліңіз.
Осы беттегі қадамдық нұсқаулықты орындаңыз
Бұл өндірушінің реттілігі, блог жазбасынан емес, оның қазіргі құжаттамасынан алынған, әрі таза хостта бірнеше минут алады.
Суретке түсіріп алыңыз, содан соң екіншісін қосыңыз
Бірінші конвейер жасыл болған бойда снапшот жасаңыз, сонда келесі машина нөлден құру емес, қалпына келтіру болады. Пул бір хостты алыпқа айналдырумен емес, хост қосумен өседі.
Неліктен бізді таңдайды
- Tier III сертификатталған нысандар, нысан SLA 99,982 %
- Өз желісі, AS204057, IPv4 және IPv6
- Орташа жауап беру уақыты шамамен 10 минут болатын 24/7/365 қолдау
- Кипрдегі компания, ЕО юрисдикциясы, 2007 жылдан GDPR-ге сәйкестік
FAQ
- GitHub-тың хостингтегі runner-лері өзің орналастырумен салыстырғанда қанша тұрады?
GitHub хостингтегі Linux runner-лерін минутпен есептейді: 2 ядроға 0,006 USD, 4-ке 0,012, 8-ге 0,022 және 16-ға 0,042, Windows 2 ядроға 0,010, ал macOS 3 не 4 ядролы машинаға 0,062. Өзің орналастыратын runner-лер Actions минуттарын жұмсамайды. Бізде хост айына 16,49 EUR-дан басталады, бұл шамамен 2 ядролы хостингтегі runner-дегі 2700 минуттың құнына тең - демек қиылысу нүктесі айына 45 сағаттай құрастыру уақытының маңында
- Өзің орналастыратын GitHub Actions runner-ін қалай баптаймын?
Привилегиясыз пайдаланушы жасаңыз, actions/runner шығарылымдарынан linux-x64 үшін runner архивін жүктеп, бақылау сомасын тексеріңіз, ./config.sh дегенді репозиторийіңіздің немесе ұйымыңыздың URL-імен және Settings, Actions, Runners ішіндегі тіркеу токенімен іске қосыңыз, содан кейін оны sudo ./svc.sh install арқылы қызмет ретінде орнатып, іске қосыңыз. Дәл командалар осы бетте. Тіркеу токенінің мерзімі берілгеннен кейін бір сағаттан соң бітеді
- Бір runner бір мезгілде қанша тапсырма орындайды?
Біреу. Runner қызметі бір мезгілде бір тапсырма алады, сондықтан параллельдік хостта бірнеше runner қызметін, әрқайсысын өз каталогында орнатуды білдіреді. Сондықтан осы беттегі өлшем таңдау тапсырмаларды емес, runner қызметтерін санайды, әрі сондықтан 8 vCPU машина шағын матрицалық құрастыруды қормен көтереді
- Қандай операциялық жүйелер мен архитектуралар қолдау табады?
Linux-та Debian 10 және одан жаңасы, Ubuntu 20.04 және одан жаңасы, RHEL 8 және одан жаңасы, CentOS 8 және одан жаңасы, Fedora 29 және одан жаңасы, openSUSE 15.2 және одан жаңасы және олардың туыстары, x64, ARM64 және ARM32 үстінде. Runner-ге сондай-ақ lttng-ust, OpenSSL, Kerberos, zlib және libicu керек, оларды Debian мен Ubuntu стандартты түрде әкеледі
- Ашық репозиторийде өзің орналастыратын runner қауіпсіз бе?
GitHub мұны ұсынбайды, әрі себебі нақты: кез келген адам workflow файлын өзгертетін pull request аша алады, ал сол өзгертілген workflow сіздің машинаңызда орындалар еді. Мұны мұқият оқып, шынайы оқшаулау орнатпаған болсаңыз, өзің орналастыратын runner-лерді жабық репозиторийлерде ұстаңыз. Оның үстіне тапсырма артында қалдырғанның бәрі дискіде сақталады - кеш үшін артықшылық, құпиялар үшін тәуекел
- Бір runner бірнеше репозиторийге қызмет ете ала ма?
Иә. Оны репозиторий емес, ұйым деңгейінде тіркеңіз, сонда ұйымдағы кез келген репозиторий оны таңдай алады, ал жұмысты runs-on ішіндегі белгілер бағыттайды. Ешбір runner-де жоқ белгіні сұраған тапсырма жай ғана күтеді және кезекте 24 сағаттан кейін сәтсіз аяқталады - runs-on ішіндегі қате жазу дәл солай көрінеді
Егер сізге көмек қажет болса немесе қосымша сұрақтарыңыз болса, менеджерлерге хабарласыңыз немесе қолдау қызметіне келесі мекенжай бойынша жазыңыз support@dcxv.com
Бастауға дайынсыз ба?
- Ай сайын төлем
- Қосу ақысы жоқ
- Байлау жоқ