Web Analytics

ilo-fans-controller

⭐ 212 stars Korean by alex3025

iLO 팬 컨트롤러

웹페이지 스크린샷
어디서든 HP 서버 팬 속도를 쉽게 관리하세요!


🎉 1,000+ 컨테이너 다운로드 감사합니다! 🎉

참고: v1.0.0은 도구의 완전한 재작성 버전이므로, 피드백을 언제나 환영합니다!
버그를 발견하거나 제안 사항이 있으면 이슈를 열어주세요. 감사합니다! 😄

FAQ

어떻게 작동하나요? 🛠

이 도구는 php-curl 확장을 사용하여 iLO REST API에서 현재 서버 팬 속도를 가져오고, php-ssh2 확장을 사용하여 패치된 iLO SSH 인터페이스를 통해 팬 속도를 설정하는 단일 PHP 스크립트입니다. 또한 Alpine.jsTailwindCSS를 사용해 만든 간단하고 깔끔한 웹 인터페이스로 클릭 한 번에 특정 팬 구성을 설정할 수 있는 맞춤 프리셋을 만들 수도 있습니다.

이 도구를 내 HP 서버에서 사용할 수 있나요? 🖥️

이 도구는 팬 속도 조작 명령을 iLO SSH 인터페이스에 노출하는 패치된 iLO 펌웨어가 필요합니다. 이 패치에 대한 자세한 내용은 이 Reddit 게시물에서 확인할 수 있습니다.

현재로서는 이 패치(따라서 이 도구)는 iLO 4가 탑재된 Gen8 및 Gen9 서버에서만 작동합니다.

🚫 iLO 5/6/7이 탑재된 Gen10/11/12 서버는 지원하지 않으며, 아마도 지원하지 않을 것입니다.

왜 PHP를 사용했나요? 📄

제 생각에 PHP는 간단한 서버 사이드 작업을 수행하고 쉽게 배포할 수 있어 이런 종류의 작업에 적합합니다 (PHP가 설치된 웹 서버만 있으면 됩니다).

왜 이 도구를 만들었나요? 🤔

이 도구의 배경 이야기는 제 r/homelab 원본 댓글을 참조하세요!

이 프로젝트가 마음에 드나요? 피자 한 조각을 선물해 주세요! 🍕

이 도구가 유용했다면, 제 작업을 지원하기 위해 PayPal이나 GitHub Sponsors를 통해 피자 한 조각(또는 전체)을 선물하는 것을 고려해 주세요! 정말 감사합니다! 🙏


Getting started with Docker / Docker Compose

If you already have a Docker environment, you can be up and running in minutes using the following command (obviously you need to change the value):

docker run -d --name ilo-fans-controller --restart always \
    -p 8000:80 \
    -e ILO_HOST='your-ilo-address' \
    -e ILO_USERNAME='your-ilo-username' \
    -e ILO_PASSWORD='your-ilo-password' \
    ghcr.io/alex3025/ilo-fans-controller:latest
또는 원하신다면, docker-compose.yaml 파일도 제공되므로 docker compose를 사용할 수 있습니다.

사용 가능한 모든 환경 변수는 config.inc.php를 확인하세요!


중요!
>
다시 한 번, 이 도구는 팬 속도를 조절하는 명령어를 iLO SSH 인터페이스에 노출하는 패치된 iLO 펌웨어 덕분에 작동합니다.
>
이 도구를 사용하려면 이 패치가 필요합니다!

수동 설치

다음 가이드는 다음 환경에서 실행되었습니다

환경 준비

    sudo apt-get update && sudo apt-get upgrade
    ``
  • 필요한 패키지(apache2, php, php-curlphp-ssh2)를 설치합니다:
`sh sudo apt-get install apache2 php php-curl php-ssh2 `

도구 다운로드

  • wgettar를 사용하여 최신 소스 코드를 다운로드하고 압축을 풉니다:
`sh wget -qL https://github.com/alex3025/ilo-fans-controller/archive/refs/heads/main.tar.gz -O - | tar -xz `

  • 디렉터리로 이동하세요:
`sh cd ilo-fans-controller-main `

도구 구성 및 설치

  • 좋아하는 텍스트 편집기로 config.inc.php 파일을 열고 구성에 따라 변수를 변경합니다.
> ℹ 참고: $ILO_HOST는 서버 자체의 IP가 아니라 iLO 인터페이스의 IP 주소임을 기억하세요.

> ℹ 참고: SSH 인터페이스와 REST API(원격 콘솔 액세스)에 접근하는 데 필요한 최소 권한만 가진 새로운 iLO 사용자를 생성하는 것이 권장됩니다.

다음은 예시입니다:

`php /* ILO ACCESS CREDENTIALS -------------- These are used to connect to the iLO interface and manage the fan speeds. */

$ILO_HOST = '192.168.1.69'; $ILO_USERNAME = 'Administrator'; $ILO_PASSWORD = 'AdministratorPassword1234'; `

  • 완료되면 웹 서버 루트 디렉터리(보통 /var/www/html/)에 새 하위 디렉터리를 만들고 config.inc.php, ilo-fans-controller.phpfavicon.ico 파일을 복사하십시오:
`sh sudo mkdir /var/www/html/ilo-fans-controller sudo cp config.inc.php ilo-fans-controller.php favicon.ico /var/www/html/ilo-fans-controller/ `

그런 다음 ilo-fans-controller.php의 이름을 index.php로 변경합니다 (URL에서 파일 이름을 지정하지 않고 작동하도록):

`sh sudo mv /var/www/html/ilo-fans-controller/ilo-fans-controller.php /var/www/html/ilo-fans-controller/index.php `

  • 이제 끝났습니다! 도구에 접속하려면 http:///ilo-fans-controller/ (또는 API 요청의 경우 http:///ilo-fans-controller/index.php)로 접속하세요.
> ℹ 참고: 이 도구를 설치한 웹 서버가 네트워크 외부에서 접근 가능할 경우, _무단 팬 관리 방지_를 위해 기본 인증(Basic Auth) 같은 인증 설정을 반드시 하세요.


문제 해결

문제가 발생했을 때 가장 먼저 할 일은 로그를 확인하는 것입니다.

Apache를 사용 중이라면, PHP 오류는 /var/log/apache2/error.log 파일에 기록됩니다.

버그라고 생각되면 이슈를 등록해 주시면 확인하겠습니다.

아래에는 자주 발생하는 문제와 해결 방법을 정리했습니다.

프리셋이 저장되지 않음

새 프리셋을 생성할 때 로그에 다음과 같은 오류가 보인다면:

log PHP Warning: file_put_contents(presets.json): Failed to open stream: Permission denied in .../index.php on line X

아마도 presets.json 파일이 웹 서버 사용자가 쓸 수 없기 때문입니다.
이를 해결하려면 다음 명령어를 실행하여 파일 소유자를
www-data(기본 Apache 사용자)로 변경하세요:
sh sudo chown www-data:www-data /var/www/html/ilo-fans-controller/presets.json


API 문서

이 도구는 다음 작업에 사용할 수 있는 간단한 API를 제공합니다:

  • iLO에서 현재 팬 속도 가져오기
  • 팬 속도 설정하기
  • 모든 프리셋 가져오기
  • 프리셋 생성하기
> 다음 예제들은 API 사용법을 보여주기 위해 cURL을 사용하지만, 원하는 다른 도구를 사용해도 됩니다.

팬 API

다음 API를 사용하려면 URL 끝에 ?api=fans를 추가해야 합니다.

#### 팬 속도 가져오기 (GET)

JSON 구조 (응답)
jsonc { "Fan 1": 85, "Fan 2": 48, "Fan 3": 69, "Fan 4": 18, "Fan 5": 44, "Fan 6": 96 }

cURL 예제
sh curl 'http:///ilo-fans-controller/index.php?api=fans'

#### 팬 속도 설정 (POST)

JSON 구조 예시
jsonc { "action": "fans", // You can use either an object or a single number value (that will be applied to all fans): // Example:
fans: { ... } or fans: 50 "fans": { "Fan 1": 40, "Fan 2": 23, "Fan 5": 70 // ... } }

cURL 예제
sh curl -X POST 'http:///ilo-fans-controller/index.php' \ -H 'Content-Type: application/json' \ -d '{"action": "fans", "fans": 50}'
이 명령어는 모든 팬을 50%로 설정합니다.
_개인적으로 서버 부팅 시 팬 속도를 자동으로 낮추기 위해 이 명령어를 사용합니다._

프리셋 API

다음 API를 사용하려면 URL 끝에 ?api=preset을 추가해야 합니다.

#### 모든 프리셋 가져오기 (GET)

JSON 구조 (응답)

jsonc [ { "name": "Silent Mode", "speeds": [15] // Like when setting the speeds, this number applies to all fans. }, { "name": "Normal Mode", "speeds": [50] }, { "name": "Turbo Mode", "speeds": [100] }, { "name": "My Custom Preset", "speeds": [10, 10, 25, 30, 10, 15] // Here you can see the different speeds for each fan. } ]

cURL 예제
sh curl 'http:///ilo-fans-controller/index.php?api=presets'

#### 프리셋 생성 (POST)

JSON 구조 예시
jsonc { "action": "presets", // WARNING: The API will replace all the saved presets with the new data! // To add a preset you should get all the presets first and then add the new one to the existing array. "presets": [ { "name": "Silent Mode", "speeds": [15] }, { "name": "Normal Mode", "speeds": [50] }, { "name": "Turbo Mode", "speeds": [100] }, { "name": "My Custom Preset", "speeds": [10, 10, 25, 30, 10, 15] } ] }

cURL 예제
sh curl -X POST 'http:///ilo-fans-controller/index.php' \ -H 'Content-Type: application/json' \ -d '{"action": "presets", "presets": [{"My Custom Preset 1": [50], "My Custom Preset 2": [10, 20, 30, 30, 20, 10]}]}'
``

--- Tranlated By Open Ai Tx | Last indexed: 2026-02-10 ---