Table of Contents |
---|
Info |
---|
Installing Server Node 를 통해 CH Server가 설치되었다고 가정합니다. |
...
아래 Environment
필드에서 Bind IP, Listenning Port, DB 파일 저장 위치 등을 변경할 수 있습니다.
일반적으로 Production에서는 443 포트로 변경 후 사용하며, 8888 포트를 사용하며 다른 포트를 사용해야 하는 경우는 Nginx의 Config의 apps 포트를 같이 수정 후 Nginx를 reload해야 합니다. TLS_CERTIFICATE
옵션으로 default로 제공되는 self-signed cert파일을 Trusted Signed Cerificates으로 대체할 수 있습니다.
...
Code Block | ||
---|---|---|
| ||
$ sudo vim /etc/systemd/system/multi-user.target.wants/cloudhub.service [Unit] After=network-online.target [Service] User=root Group=root Environment="HOST=0.0.0.0" Environment="PORT=4438888" # default: 8888 Environment="TLS_CERTIFICATE=/usr/lib/cloudhub/key/cloudhub_self_signed.pem" #Environment="TLS_PRIVATE_KEY=my.key" Environment="BOLT_PATH=/var/lib/cloudhub/cloudhub-v1.db" #Environment="ETCD_ENDPOINTS={ETCD_HOSTNAME01}:2379,{ETCD_HOSTNAME02}:2379,{ETCD_HOSTNAME03}:2379" Environment="CANNED_PATH=/usr/share/cloudhub/cloudhub-canned" Environment="PROTOBOARDS_PATH=/usr/share/cloudhub/cloudhub-protoboards" EnvironmentFile=-/etc/default/cloudhub ExecStart=/usr/bin/cloudhub $CLOUDHUB_OPTS KillMode=control-group Restart=on-failure [Install] WantedBy=multi-user.target |
...
도메인이 없이 IP로만 사용할 경우는 공인된 인증서 발급이 되지 않으므로, 아래와 같이 self-signed 인증서-키 파일을 생성/사용하도록 합니다.(유효 기간 즉, -days
옵션은 사용 환경에 따라 적절한 값으로 설정하도록 하며, openssl 버전에 의존성이 있으므로 리눅스 서버 즉, CH 서버가 설치된 호스트에서 실행하는 편이 좋습니다.)
Code Block |
---|
$ cd /usr/lib/cloudhub/key/
$ openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout cloudhub_self_signed.pem -out cloudhub_self_signed.pem -subj "/CN=localhost" -days 365
$ openssl rsa -in cloudhub_self_signed.pem -text > cloudhub_self_signed.key
$ openssl x509 -inform PEM -in cloudhub_self_signed.pem -out cloudhub_self_signed.crt |
위 명령으로 생성된 파일을 위 TLS_CERTIFICATE
의 경로에 복사한 후, Cloudhub를 [재]실행합니다.
...
Code Block | ||
---|---|---|
| ||
$sudo vim /etc/default/cloudhub CLOUDHUB_OPTS="-l=debug \ --auth-duration=0 \ --inactivity-duration=10m \ -t=74c1e9e2450886060b5bf736b935cd0bf960837f \ -i=<client-id> \ -s=<client-secret> \ --public-url=https://localhost \ --auth0-domain=https://cloudhub.auth0.com \ --auth0-client-id=<client-id> \ --auth0-client-secret=<client-secret> \ -u=salt:http://{salt-master-ip}:8000/run \ -k=salt:<salt_token> \ -u=swan:https://{swan-IP}/api/v1/graphql \ -k=swan:<swan_token> \ -u=oncue:<port> \ -u=vsphere:on \ -u=aws:on \ -u=k8s:on \ -u=osp:on \ -u=salt-env-path:/opt/miniconda3/envs/saltenv \ --login-auth-type=basic \ --password-policy='(?=.*[0-9]{1,50})(?=.*[~`!@#$%\\^&*()-+=]{1,50})(?=.*[a-zA-Z]{2,50}).{8,50}$' \ --password-policy-message='Enter at least 8 digits using at least 1 number and at least 1 special sentence, and at least 2 English characters.' \ --mail-subject='[Notifiy] $user_id Password is reset' \ --mail-body-message='Reset OTP for $user_id is '$user_pw'.<br>Do not forget this!<br>This OTP will use just once when login into cloudhub.<br>Then you must set up the new password' \ --kapacitor-url=http://{Kapacitor_IP}:9094 \ --external-exec=/usr/bin/python \ --external-exec-args=/basic/call.py \ --influxdb-url=http://{InfluxDB_IP}:8086 \ --retry-policy=count:3 \ --retry-policy=delaytime:5 \ --retry-policy=type:delay" |
...
Option | Description | ||
---|---|---|---|
-l, --log-level [debug|info|error] | 생략시 info, 최초 사용 시에는 오류 검출을 위해 debug 모드 사용 권장. | ||
--auth-duration |
| ||
--inactivity-duration |
| ||
-t, --token-secret | Access token 발급용 JWT Signature를 생성하기 위한 secret key. 간단히, 아래와 같은 openssl 명령어로 생성할 수 있습니다.
이외에 생성 방법은 Goolge, github 등의 공식 사이트에서 토큰 발급을 지원합니다. | ||
--public-url | CloudHub portal의 도메인 혹은 IP로 대체합니다. | ||
--auth0-domain | 위 예시의 토근들을 사용하면, OAuth 2.0 인증 방식의 만일, 별도의 토큰을 발급받아 사용하고자 한다면, (혹은 다른 종류의 즉, github, google등의 인증 서비스를 사용하고자 한다면)Managing CloudHub security 를 참조합니다.
| ||
--auth0-client-id | |||
--auth0-client-secret | |||
-i, --github-client-id -s, --github-client-secret | OAuth 인증을 위한 GitHub Client ID 값입니다. OAuth 인증을 위한 GitHub Client Secret 값입니다. | ||
-u, --addon-url [salt|swan] | CloudHub가 지원하는 특정 기능을 위한 모듈과의 연동을 위한 API URL.
| ||
기타 CloudHub Server Option 으로 사용
| |||
-k, --addon-tokens [salt|swan] | 위 API에 대한 Accessable Token.
| ||
--login-auth-type | CloucHub Portal의 Login Type을 지정합니다. (default : oauth)
| ||
--password-policy | 비밀번호 정규식
| ||
--password-policy-message | 비밀번호 정규식 메세지 | ||
--mail-subject | 비밀번호 Reset Mail 제목 | ||
--mail-body-message | 비밀번호 Reset Mail 내용 | ||
--kapacitor-url | 비밀번호 Reset Mail 발신 서버 (Kapacitor Alert Endpoint에 SMTP가 설정되어 있어야 합니다.) | ||
--external-exec --external-exec-args | 비밀번호 Reset 알림을 위한 외부 프로그램 경로 비밀번호 Reset 알림을 위한 외부 프로그램 실행 파일 경로 | ||
--influxdb-url | Acitivity Logging을 위한 Influxdb 서버 URL | ||
--retry-policy | Login 차단 정책
|
Note |
---|
kapacitor mail과 external program 옵션 모두 설정되었을 때 처리 순서
두 옵션 중에 사용할 1개만 설정하기 바라며, 만일, 관리자에 의한 password reset만 사용 시, 위 두 개 옵션 모두 적용하지 않습니다. |
Warning |
---|
Public 인터넷을 사용할 수 없는 폐쇄망에서는 OAuth(github, google, auth0 등) 인증 로그인을 사용할 수 없습니다. ID/Password 로그인 방식만 지원합니다. 아래와 같이 Option을 설정합니다. 로그인 방식은 basic(id/pwd) 방식만 지원하며 OAuth 인증 설정이 1개는 필수로 있어야 하므로 의미 없는 값을 넣습니다.
|
...