이것은 Pulse Secure vTM을 구성하기 위한 꼭두각시 모듈입니다. 이전에는 다음과 같았습니다.
Zeus Load Balancer
Zeus eXtensible Traffic Manager (ZXTM)
Zeus Traffic Manager
Riverbed Stingray
Riverbed SteelApp
Brocade vTM
Puppet은 Puppet 버전 4에서 작은따옴표 문자열로 이스케이프를 처리하는 방식을 변경했습니다.
이 모듈의 버전 1.x에는 Puppet 3.x를 지원하는 매니페스트가 포함되어 있습니다.
Puppet 4.x 이상을 사용하는 경우 버전 2.x를 사용해야 합니다.
genManifest 및 genNodeConfig 사용
자신만의 매니페스트를 생성하는 경우 lib/brocade/puppetmanifest
에 매니페스트 형식을 제어하는 @PUP4X 플래그가 있습니다. 이 플래그는 2.x 모듈에서는 true이고 1.x 모듈에서는 false입니다. 이것이 3.x와 4.x 매니페스트 생성 간에 전환하기 위해 변경해야 하는 전부입니다.
9.9 이상 버전을 실행하는 vTM을 관리하려면 1.33.x를 사용할 수 있습니다.
그러나 현재 vTM의 모든 기능에 액세스하려면 사용 가능한 최신 API 버전을 사용하십시오.
vTM 버전 | REST API | 꼭두각시 3.x 버전 | 꼭두각시 4+ 버전 |
---|---|---|---|
10.4(LTS) | 3.8 | 1.38.x | - |
17.2(LTS) | 4.0 | 1.400.x | 2.400.x |
17.3 | 5.0 | 1.500.x | 2.500.x |
17.4 | 5.1 | 1.501.x | 2.501.x |
18.1 | 5.2 | 1.502.x | 2.502.x |
18.2 | 6.0 | 1.600.x | 2.600.x |
아래의 모듈 버전 관리에 대한 참고 사항을 참조하십시오....
이 모듈은 vTM 배포와 관련되지 않습니다. vTM이 실행되는 위치에 따라 vTM 배포를 자동화하는 방법에는 여러 가지가 있습니다. 다음을 포함합니다.
Cloud APIs (Amazon, RackSpace, Joyent, etc, etc)
Docker modules (if you use docker)
puppetlabs-vsphere (if you run ESXi)
Guest Customisations (if you run ESXi)
cloud-init (Openstack and others)
./zinstall --replay-from= on generic Linux
일단 vTM이 세워지면. 이 모듈은 해당 vTM 인스턴스의 구성을 관리하는 데 도움이 될 수 있습니다.
다음 위치 중 하나를 시도해 볼 수 있습니다.
펄스 보안 - vADC 정보
Pulse Secure - 지금 사용해 보세요
펄스 보안 - vADC 문서
Pulse Secure - vTM 도커 이미지
이 모듈의 버전 관리는 의미 체계 버전 관리를 정확하게 따르지 않습니다.
버전 번호에 제공되는 REST API 버전을 표시하고 싶습니다.
주요한 . 미성년자 . 반점
Minor 번호에는 나머지 API 버전이 포함되어 있습니다.
모듈 버전 . API 메이저 + API 마이너 . 반점
예.
puppet module install pulse-pulsevtm
puppet module install pulse-pulsevtm -v 1.35.0
puppet module install pulse-pulsevtm -v '>=1.35.0 <1.36.0'
pulsevtm 클래스를 선언할 때 rest_user
및 rest_pass
매개변수를 제공해야 합니다. 다른 모든 매개변수는 선택사항입니다.
Defaults:
rest_user = undef
rest_pass = undef
rest_ip = 127.0.0.1
rest_port = 9070
purge = false
purge_state_dir = undef
기본적으로 puppet은 명시적으로 선언한 구성에만 관심을 갖습니다. 노드 매니페스트에 포함되지 않은 구성이 vTM에 존재하는 경우 해당 구성은 무시됩니다.
Puppet이 관리되지 않는 구성을 제거하도록 하려면 $purge => true
로 설정할 수 있습니다(그리고 모듈이 $purge_state_dir
상태를 저장할 장소를 제공합니다). 그런 다음 Puppet은 알려진 리소스의 이름을 상태 디렉터리에 저장하고 vTM에서 알려지지 않은 모든 리소스를 제거합니다.
경고: 퍼지는 위험합니다! 경고: $purge
사용하는 경우 기본 구성 개체를 포함해야 합니다. (즉, genNodeConfig -n
사용하지 마십시오)
간단한 웹 서비스 예. 두 개의 가상 서버(HTTP 및 HTTPS)와 함께 단일 VIP를 사용합니다. HTTPS 서비스는 SSL 오프로드를 수행하며 둘 다 동일한 서버 풀을 사용합니다.
class { 'pulsevtm':
rest_user => 'puppet',
rest_pass => 'master',
rest_ip => '10.1.1.22',
}
include pulsevtm::global_settings
pulsevtm::traffic_ip_groups { 'Web%20VIP':
ensure => present,
basic__enabled => true,
basic__ipaddresses => ["10.1.1.10"],
basic__machines => ["vtm1.internal.local"],
}
pulsevtm::virtual_servers { 'WebService':
ensure => present,
basic__enabled => true,
basic__listen_on_any => false,
basic__listen_on_traffic_ips => ["Web VIP"],
basic__pool => "WebPool",
basic__port => 80,
}
pulsevtm::virtual_servers { 'WebService%20SSL':
ensure => present,
basic__enabled => true,
basic__listen_on_any => false,
basic__listen_on_traffic_ips => ["Web VIP"],
basic__pool => "WebPool",
basic__port => 443,
basic__ssl_decrypt => true,
ssl__server_cert_default => 'TEST-CERT',
}
pulsevtm::pools { 'WebPool':
ensure => present,
basic__nodes_table => '[{"node":"10.1.1.1:80","priority":1,"state":"active","weight":1}]',
}
pulsevtm::ssl_server_keys { 'TEST-CERT':
ensure => present,
basic__note => '',
basic__private => '-----BEGIN RSA PRIVATE KEY-----nMIIEpAIBAAKCAQEAsiZD53KCrcN3r4yAW6GwkITYEQyzg1bbDP8fiRvaWJxOgRtEn/8E4KRDdeqOCuV1YNuLaTsfCkF34T4pvI00wZ5lSdXBnVrEie49ip7z0QNQ/W4mvnDzkDQ/Och1lRevflAhJUfgiVizCxDbxJfR6oSip3RAeGarBIhp7TlfLKQj7YdnIynFROcHIMkLZ7aq7tUzVvcGonz5YXrmDDKFoGvbaJnNC0SAiM0aJIomOlexQmL4cgInhQQ1YlrF9hnulSbZN20zNz8fSeJ1UmyUgrYqLgzLXUb54pqK1aGg4rQNIqwoAbyqnibqzc2rO/o6MXgEb9zzFwAyHI38nptE7OdiC+wIDAQABAoIBAEk98iz1p0RJWKuTn2DHUCANimnJoBmW5D9YIDa8RBHPpz1zFGVkM10oK5QPGtbf/6ISoP5ikCBnSiIQrnJgYddgkhwAUIcXPy33ptOOI9jS4aFPJNaOuZRP5q6a+7yQQFZuGzJ4mpfdH78s7yn2kPWltnnG6GcdmbmkurF4beEWiNhgsex2hLhhj20oVUaGF1BGMdrp20vYE496B52n4Wuax9lfFoFuv8FAz96EZQOQS6J1Wf+o0qqZYNDaBRI5wi3EjrNpcEHhELp9eHeGnnFwDgQD15HyK2Qio4ig3T386OTUGT/FCNMxqT3wDn4ov+kTFtDoI+2qvJ/l6vULvn20f50AECgYEA6f7K1jVb7nNLwUjPld0azXbQgE3mdlwJVI8urz80JLQwKckg53tPngol8NaZOxo7gQlML/5ltK/y5cW6B2JhxjFtNoAAzNNBmGTRvLpLK3HHGEfVRVexZn8ZmssEzG49Xk6l1A7O+UWgqFUMlLBcYFKEvvGS8efcXBLwOV7G3EXxsCgYEAwucKnJ4jN8ECtDuMHY0sKbbfLXpqPS7KMfdWio1SaR1ctEos5wrKaX3vG3Zbiz6weYCkontNI9ioQVQ7D0Uc+lhhhlxeHAVnNFJhpZowYdf44mI/LCW2pga3dOZ9vDRqWP29KGnUwzH1RfXPtZBqMC5vPHd42kAGgGXwBvPZChOSaECgYEAiNjyV4StVy8mxsuGW+cLnnc428lKczevVqRZz/xm/rReUc1ulWrvLLFSrx9STjZxRm3hmM/3O00LiUWyHk9zTny3o6U7DKQcD/dQ4tV9eRvIrtg+MsxkuL7rgpPpIoX2bgkhAnwGn9IQu2HCEdNyswnKPj/xILCGlxlNtGqBLPNfLECgYEAlYqHtAW3XRuCrOVsibbN7ZkTpSaZw87fFL2Rn6BfFt+8fWhcQ3l4DLDfgQay/oe/B7q4l2XdmWJ03Y5SmIQ9dRSH7FHU+Chave6jEnFd1fTLtYcESW82UPTeVgdzebAN2PH27MOXSY7ts3/7KM9lnJKTu6r/2kYk/Oi0vLnOGHkj4ECgYBaxw/qFIMWAvi8r84cbUG/PYivHeJNJ53EhXE6UZPxi6QuVhlbitrinHk6SP443RCdjAR9IiZoDQkl+yW0z86ZShJYXF+1JFQU+ftsRzCtfx2XLD5dQO5qnnleXIH8z/4lUuPMyBw5bGj9eRXat7/SI2W6cuksMHLIMBiAognmdvRw==n-----END RSA PRIVATE KEY-----n',
basic__public => '-----BEGIN CERTIFICATE-----nMIIDFjCCAf4CCQD4M1+rCABUDjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQGEwJHnQjESMBAGA1UEBxMJQ2FtYnJpZGdlMRAwDgYDVQQKEwdCcm9jYWRlMRgwFgYDVQQDnEw93d3cuYnJvY2FkZS5jb20wHhcNMTUwODIwMTQ1MzQ3WhcNMTYwODE5MTQ1MzQ3nWjBNMQswCQYDVQQGEwJHQjESMBAGA1UEBxMJQ2FtYnJpZGdlMRAwDgYDVQQKEwdCncm9jYWRlMRgwFgYDVQQDEw93d3cuYnJvY2FkZS5jb20wggEiMA0GCSqGSIb3DQEBnAQUAA4IBDwAwggEKAoIBAQCyJkPncoKtw3evjIBbobCQhNgRDLODVtsM/x+JG9pYnnE6BG0T/wTgpEN16o4K5XVg24tpOx8KQXfhPim8jTTBnmVJ1cGdWsSJ7j2KnvPRAn1D9bia8POQND85yHWVF69+UCElR+CJWLMLENvEl9HqhKKndEB4ZqsEiGntOV8spCnPth2cjIVE5wcgyQtntqru1TNW9waifPlheuYMMoWga9tomc0LRICIzRokiiY6V7FnCYvhyAiFBDViWsX2Ge6VJtk3bTM3Px9J4nVSbJSCtiouDMtdRvnimorVoaDitA0inrCgBvKqJurNzas7+joxeARv3PMXADIcjfyem0Ts52IL7AgMBAAEwDQYJKoZIhvcNnAQELBQADggEBAJcuRIh3ngpFz0nHym5z56tbzHBrjF3frwp75Nknz3kuyCjdG7NrnPF5WvDl7lb1WX9EgAn/vJznYCmMxbjnUhHTMIMWbyIoTKJIIHCsrDyiK21NoI3nYnu/9V1TADGdkqGSag00UqygF4nVkbvKJcjXHq9t0zz56xAvCamBvlNCkJ0/mQN3Qdn5r/HgiRX69MSG1RRAFB+rkZInGekedLumBYCuALFCY5SB1+ns9XtGGJGRMh74oUpngjE62k/mEGPhLaXGJRupY07ezQKJOMBLRN1+HzIETsdH68FDdowFLzcH8fOn9HIgnCuhlcpfk5VfCaeIqdqYEsrxY+KADA8ss06M=n-----END CERTIFICATE-----n',
basic__request => '-----BEGIN NEW CERTIFICATE REQUEST-----nMIICkjCCAXoCAQAwTTELMAkGA1UEBhMCR0IxEjAQBgNVBAcTCUNhbWJyaWRnZTEQnMA4GA1UEChMHQnJvY2FkZTEYMBYGA1UEAxMPd3d3LmJyb2NhZGUuY29tMIIBIjANnBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsiZD53KCrcN3r4yAW6GwkITYEQyzng1bbDP8fiRvaWJxOgRtE/8E4KRDdeqOCuV1YNuLaTsfCkF34T4pvI00wZ5lSdXBnnVrEie49ip7z0QNQ/W4mvDzkDQ/Och1lRevflAhJUfgiVizCxDbxJfR6oSip3RAeGnarBIhp7TlfLKQj7YdnIyFROcHIMkLZ7aq7tUzVvcGonz5YXrmDDKFoGvbaJnNC0SnAiM0aJIomOlexQmL4cgIhQQ1YlrF9hnulSbZN20zNz8fSeJ1UmyUgrYqLgzLXUb5n4pqK1aGg4rQNIqwoAbyqibqzc2rO/o6MXgEb9zzFwAyHI38nptE7OdiC+wIDAQABnoAAwDQYJKoZIhvcNAQELBQADggEBAGnf+2VPIY8zW6IE2htseeLHxH5SlNc6GJsInkGmc9WG72yV97EakpzwsIgsz06QXwCh+HloNUPZQAQ9KcUFhskLXxLE7PYXKnPLrnMMAvA7aqCGPhb3/p738tT+G9IKUQfkbYmvY4ROIk56XzWT0ufVTw11jrIglQXo+gnWdJt2MbNC6f/1+NVL85q9pRBvFSeBk7D43U/B+KkM/7wmB+5fMB6DJfRAHCvjOEInX56MyO4UJXsvs9jriDHLoqpAu3IkV1oxGzdaE/dRveqq21q1hz5S2PaOU5jPzetHnAra3APjd55zS5EGex8t82ZJbI3aru2lPl6ztfErSWQLGNrxbVlE=n-----END NEW CERTIFICATE REQUEST-----n',
}
bin 디렉토리에는 이 모듈의 매니페스트 파일을 생성하는 데 사용되는 도구가 포함되어 있습니다.
cleanup
- 현재 매니페스트 및 지원 파일을 제거합니다.
updateDocs
- 매니페스트에 사용할 문서를 생성합니다.
genManifests
- 매니페스트 자체를 생성합니다.
genNodeConfig
- vTM에서 직접 노드 매니페스트를 생성합니다.
이러한 도구를 사용하면 모든 API 버전으로 업그레이드하거나 다운그레이드할 수 있습니다. 예를 들어 REST API 버전 3.5로 업그레이드하려면 다음을 실행할 수 있습니다.
./bin/cleanup -d
./bin/updateDocs -d zxtm10.1/3.5
./bin/genManifests -v 3.5 -h <clean vtm host> -U admin -P password -d 1
일부 구성을 기본 매니페스트로 명시적으로 포함하려는 경우가 아니면 새로 빌드/정리된 vTM 호스트에 대해 genManifests를 실행하는 것이 좋습니다.
이 도구는 대부분의 사람들에게 가장 유용한 도구입니다. 사전 구성된 vTM의 구성을 가져와 매니페스트를 구축할 수 있습니다.
기본적으로 구성의 모든 개체에 대한 구성을 생성하고 해당 개체에 대한 모든 매개변수를 포함합니다. -s
사용하여 희소 구성 파일을 생성하거나 -n
사용하여 수정되지 않은 내장 객체를 무시하도록 도구에 지시할 수 있습니다.
용법:
Usage: genNodeConfig [options]
Specific options:
-h, --host <vTM Host> The hostname or ip address of the vTM to probe
-p, --port <vTM Port> The REST API port of the vTM to probe
-v, --version <REST Version> The REST Version
-U, --user <username> The REST API User
-P, --pass <password> The REST API Password
-o, --outfile <filename> The output file to write
-b, --bindir <filename> The directory in which to store any binary content (eg rules)
-m, --mandir <manifest dir> The location of the manifests
-d, --debug <level> The Debug level, 0 (lowest) to 5 (highest)
-s Generate a sparse configuration (ignore default params)
-n Generate a sparse configuration (ignore built-in objects)
-?, --help Show this message
Mandatory Parameters: --version, --user, --password, --outfile
기본값/내장 객체 없이 가능한 가장 작은 매니페스트를 생성하려면 다음을 사용합니다.
./bin/genNodeConfig -h vtm1 -v 3.3 -U admin -P admin -d 1 -o vtm1_manifest.pp -s -n
전체 구성을 생성하려면(기본 및 권장 방법):
./bin/genNodeConfig -h vtm1 -v 3.3 -U admin -P admin -d 1 -o vtm1_manifest.pp
JSON/바이너리가 아닌 모든 구성은 outfile이라는 접두사가 붙은 파일에 저장됩니다. -b dir
사용하여 해당 파일을 저장할 폴더를 지정할 수 있습니다.
참고: vTM은 REST API를 통해 개인 SSL 키를 제공하지 않습니다. 따라서 이 도구는 개인 키를 저장할 수 없습니다. 대신 REST에서 제공하는 SHA256 지문을 저장합니다. 원하는 경우 개인 키를 매니페스트에 수동으로 추가해야 합니다.
매니페스트, 템플릿, 파일 및 선택적으로 skel/docs의 파일을 삭제한 다음 skel 폴더에서 초기 구성을 복사합니다.
용법:
Usage: cleanup [options]
Specific options:
-y, --jfdi Just do it, don't ask me
-d, --docs Clean the skel/docs tree too
-?, --help Show this message
skel/docs의 문서를 포함한 모든 파일을 정리하려면
./bin/cleanup -d
초기 구성에는 init.pp만 포함되어 있으므로 정리를 실행한 후 genManifests를 실행해야 합니다.
이를 사용하려면 REST 스키마의 복사본이 있어야 합니다. 스키마는 vTM 10.0 이상 버전의 $ZEUSHOME/zxtm/etc에서 찾을 수 있습니다. 스키마를 폴더로 추출한 다음 도구로 해당 폴더를 가리킵니다.
용법:
Usage: updateDocs [options]
Specific options:
-y, --jfdi Just do it, don't ask me
-d, --dir REST FOLDER folder containing REST schemas
-o, --outdir Docs Folder output folder for documentation
-?, --help Show this message
Mandatory Parameters: --dir
REST 스키마의 ZXTM 10.1 복사본에서 API 버전 3.3에 대한 문서를 생성하려는 경우 다음을 사용할 수 있습니다.
./bin/updateDocs -d zxtm-10.1/3.3
updateDocs는 skel/docs 폴더에 각 REST 스키마에 대한 마크다운 파일을 배치합니다. genManifests 도구는 매니페스트를 빌드할 때 이 폴더를 확인하므로 두 폴더 모두에서 동일한 API 버전을 사용해야 합니다.
나는 init.pp와 purge.pp 매니페스트만 작성했고 나머지는 Ruby 스크립트에 의해 생성되었습니다. 스크립트는 vTM REST API를 탐색한 다음 찾은 각 유형과 개체에 대한 매니페스트를 작성합니다.
매니페스트의 API 버전은 버전 문자열에서 중간 번호(부 번호)로 표시됩니다. 모든 "x.33.z" 버전은 REST API 3.3을 나타내며 vTM 버전 9.9(LTS) 이상과 호환됩니다.
9.9보다 이전 버전을 실행하고 있다면 업그레이드해야 할 것입니다.
용법:
Usage: genManifests [options]
Specific options:
-h, --host <vTM Host> The hostname or ip address of the vTM to probe
-p, --port <vTM Port> The REST API port of the vTM to probe
-v, --version <REST Version> The REST Version
-U, --user <username> The REST API User
-P, --pass <password> The REST API Password
-d, --debug <level> The Debug level, 0 (lowest) to 5 (highest)
-y, --[no-]jfdi Don't print warning, just do it
-?, --help Show this message
Mandatory Parameters: --version, --user, --password
매니페스트를 생성하는 Ruby 도구가 포함되어 있으며 bin/genManifests에서 찾을 수 있습니다.
puppet을 사용하여 9.9보다 이전 버전(예: API의 이전 버전)을 관리하려는 경우 genManifests가 도움이 될 수 있습니다.
9.9 이후 출시된 모든 vTM 버전은 여전히 API 버전 3.3을 지원하지만 최신 API 호출이나 기능을 사용하려는 경우 이 도구를 사용하여 매니페스트를 다시 생성할 수 있습니다.
./bin/genManifests -h <vTM Host> -v <API Version> -U <User> -P <Pass> -d <debug level>
이 도구는 API를 탐색하여 매니페스트를 생성합니다. 발견된 모든 유형(예: 가상 서버, 풀, 모니터)은 정의된 유형을 생성하므로 해당 유형의 인스턴스를 배포할 수 있습니다. 찾은 모든 구성은 클래스를 생성하는 데 사용됩니다. 예를 들어 기본 모니터는 클래스로 생성되므로 간단히 include pulsevtm::moinitors_simple_http
수 있습니다.
이는 포함하려는 기본 구성에 대한 클래스를 생성할 수도 있다는 좋은 부작용이 있습니다. 예를 들어, genManifests를 실행하기 전에 FLA 키를 업로드하여 FLA 키에 대한 사용자 정의 클래스를 생성할 수 있습니다. 그런 다음 include pulsevtm::licenses_myfla