SaltStack-원격 실행
Salt의 핵심 개념 중 하나는 원격 실행입니다. Salt는 몇 초 만에 수천 개의 시스템에서 명령을 실행할 수 있습니다. Salt는이 기능을 수행하기 위해 자체 명령을 사용합니다. 이제이 장에서 원격 실행을위한 다양한 Salt 명령을 이해하겠습니다.
솔트 커맨드
Salt 명령을 사용하면 Salt 마스터가 하나 이상의 Salt minions. 기본 구문은 다음과 같습니다.
salt '<target>' <module.function> [arguments]
위의 명령 구문은 다음 세 가지 주요 구성 요소로 구성됩니다.
target − 명령에 의해 적용되는 시스템을 결정합니다.
module.function− 명령입니다. 명령은 모듈과 기능으로 구성됩니다.
arguments − 함수 호출에 필요한 추가 데이터.
각 구성 요소를 자세히 이해하겠습니다.
대상 구성 요소는 무엇입니까?
Target은 기능을 실행하기 위해 미니언 (관리 시스템)을 필터링 할 수있는 구성 요소입니다. 대상 구성 요소를 사용하는 간단한 명령은 다음과 같습니다.
salt '*' test.ping
다음을 생성합니다. output −
minion2:
True
minion1:
True
여기, 대상 ‘*’모든 관리 시스템을 나타냅니다. 'test'여기에 모듈이 있으며 ping함수입니다. 원격 시스템에서 ping 서비스를 테스트하는 데 사용됩니다. 다음 장에서 다양한 모듈과 그 기능에 대해 배웁니다.
ID를 사용하는 대상 (하수인)
특정 미니언에게 명령을 보낼 수 있습니다. id목표에. 사용하는 대신'*', 다음을 사용하여 교체 할 수 있습니다. minion id. 아래에 정의되어 있습니다.
salt 'minion1’ test.ping
다음을 생성합니다. output −
minion1:
True
정규식을 사용하는 대상
대상은 특정 정규 표현식으로 필터링 할 수 있습니다. 아래에 정의되어 있습니다.
salt -E 'minion[0-9]' test.ping
다음을 생성합니다. output −
minion2:
True
minion1:
True
목록을 사용하는 대상
대상은 목록에 명시 적으로 지정할 수 있습니다. 다음 코드 블록에 정의되어 있습니다.
salt -L 'minion1,minion2' test.ping
다음을 생성합니다. output −
minion2:
True
minion1:
True
조건 별 대상
아래 코드 블록에 표시된대로 대상을 하나의 명령으로 결합 할 수 있습니다.
salt -C 'G@os:Ubuntu and minion* or [email protected].*' test.ping
다음을 생성합니다. output −
minion1:
True
minion2:
True
모듈 및 함수 (module.function)
솔트는 쉘 명령을 실행할 수 있습니다. 관리되는 모든 시스템에서 동시에 패키지를 업데이트하고 파일 등을 배포합니다. Salt는 모듈을 사용하여 이러한 작업을 수행합니다. Salt에는 사용 가능한 모든 기능에 대한 특수 모듈이 있습니다. 이 장의 간단한 예제를 사용하여 다양한 Salt 모듈을 이해하겠습니다.
셸 명령
Salt는 다음을 사용하여 여러 시스템에서 원격으로 셸 명령을 실행합니다. cmd.run명령. 그만큼cmd 메인 모듈이고 run 에서 사용할 수있는 기능 중 하나입니다. cmd기준 치수. 그만큼run 함수를 사용하면 아래 코드 블록에 표시된대로 원격 시스템에서 모든 쉘 명령을 실행할 수 있습니다.
salt '*' cmd.run 'ls -l /etc'
다음을 생성합니다. output −
minion2:
total 868
drwxr-xr-x 7 root root 4096 Jan 26 22:10 X11
drwxr-xr-x 3 root root 4096 Jan 26 21:02 acpi
-rw-r--r-- 1 root root 2981 Jan 26 20:48 adduser.conf
-rw-r--r-- 1 root root 10 Jan 26 21:04 adjtime
drwxr-xr-x 2 root root 4096 Jan 26 22:10 alternatives
drwxr-xr-x 3 root root 4096 Jan 26 20:53 apm
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apparmor
drwxr-xr-x 9 root root 4096 Jan 26 21:02 apparmor.d
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apport
drwxr-xr-x 6 root root 4096 Jan 29 07:14 apt
drwxr-xr-x 2 root root 4096 Jan 26 22:10 at-spi2
……………
……………
minion1:
total 868
drwxr-xr-x 7 root root 4096 Jan 26 22:10 X11
drwxr-xr-x 3 root root 4096 Jan 26 21:02 acpi
-rw-r--r-- 1 root root 2981 Jan 26 20:48 adduser.conf
-rw-r--r-- 1 root root 10 Jan 26 21:04 adjtime
drwxr-xr-x 2 root root 4096 Jan 26 22:10 alternatives
drwxr-xr-x 3 root root 4096 Jan 26 20:53 apm
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apparmor
drwxr-xr-x 9 root root 4096 Jan 26 21:02 apparmor.d
drwxr-xr-x 3 root root 4096 Jan 26 21:02 apport
drwxr-xr-x 6 root root 4096 Jan 29 07:09 apt
drwxr-xr-x 2 root root 4096 Jan 26 22:10 at-spi2
-rw-r----- 1 root daemon 144 Oct 21 2013 at.deny
-rw-r--r-- 1 root root 2177 Apr 9 2014 bash.bashrc
-rw-r--r-- 1 root root 45 Mar 22 2014 bash_completion
……………
……………
디스크 사용량 표시
Salt는 특별한 모듈을 제공합니다. disk관리되는 시스템의 전체 디스크 세부 정보를 가져옵니다. 그만큼diskmodule 있다 usage 세부 사항을 조회하는 기능.
salt '*' disk.usage
다음을 생성합니다. output −
minion1:
----------
/:
----------
1K-blocks:
41251136
available:
37852804
capacity:
5%
filesystem:
/dev/sda1
used:
1662420
/dev:
----------
1K-blocks:
503908
available:
503896
capacity:
1%
filesystem:
udev
used:
12
/run:
----------
1K-blocks:
101780
available:
101412
capacity:
1%
filesystem:
tmpfs
used:
368
/run/lock:
----------
1K-blocks:
5120
available:
5120
capacity:
0%
filesystem:
none
used:
0
/run/shm:
----------
1K-blocks:
508884
available:
508872
capacity:
1%
filesystem:
none
used:
12
/run/user:
----------
1K-blocks:
102400
available:
102400
capacity:
0%
filesystem:
none
used:
0
/sys/fs/cgroup:
----------
1K-blocks:
4
available:
4
capacity:
0%
filesystem:
none
used:
0
/vagrant:
----------
1K-blocks:
303114632
available:
252331440
capacity:
17%
filesystem:
none
used:
50783192
minion2:
----------
/:
----------
1K-blocks:
41251136
available:
37852804
capacity:
5%
filesystem:
/dev/sda1
used:
1662420
/dev:
----------
1K-blocks:
503908
available:
503896
capacity:
1%
filesystem:
udev
used:
12
/run:
----------
1K-blocks:
101780
available:
101412
capacity:
1%
filesystem:
tmpfs
used:
368
/run/lock:
----------
1K-blocks:
5120
available:
5120
capacity:
0%
filesystem:
none
used:
0
/run/shm:
----------
1K-blocks:
508884
available:
508872
capacity:
1%
filesystem:
none
used:
12
/run/user:
----------
1K-blocks:
102400
available:
102400
capacity:
0%
filesystem:
none
used:
0
/sys/fs/cgroup:
----------
1K-blocks:
4
available:
4
capacity:
0%
filesystem:
none
used:
0
/vagrant:
----------
1K-blocks:
303114632
available:
252331440
capacity:
17%
filesystem:
none
used:
50783192
네트워크 인터페이스
Salt는 관리되는 시스템에 대한 네트워크 인터페이스 정보를 쿼리하기 위해 별도의 모듈, 네트워크 및 기능, 모듈 내부의 인터페이스를 제공합니다.
salt '*' network.interfaces
다음을 생성합니다. output −
minion1:
----------
eth0:
----------
hwaddr:
08:00:27:04:3e:28
inet:
|_
----------
address:
10.0.2.15
broadcast:
10.0.2.255
label:
eth0
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fe04:3e28
prefixlen:
64
scope:
link
up:
True
eth1:
----------
hwaddr:
08:00:27:34:10:52
inet:
|_
----------
address:
192.168.50.11
broadcast:
192.168.50.255
label:
eth1
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fe34:1052
prefixlen:
64
scope:
link
up:
True
lo:
----------
hwaddr:
00:00:00:00:00:00
inet:
|_
----------
address:
127.0.0.1
broadcast:
None
label:
lo
netmask:
255.0.0.0
inet6:
|_
----------
address:
::1
prefixlen:
128
scope:
host
up:
True
minion2:
----------
eth0:
----------
hwaddr:
08:00:27:04:3e:28
inet:
|_
----------
address:
10.0.2.15
broadcast:
10.0.2.255
label:
eth0
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fe04:3e28
prefixlen:
64
scope:
link
up:
True
eth1:
----------
hwaddr:
08:00:27:a7:31:8e
inet:
|_
----------
address:
192.168.50.12
broadcast:
192.168.50.255
label:
eth1
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::a00:27ff:fea7:318e
prefixlen:
64
scope:
link
up:
True
lo:
----------
hwaddr:
00:00:00:00:00:00
inet:
|_
----------
address:
127.0.0.1
broadcast:
None
label:
lo
netmask:
255.0.0.0
inet6:
|_
----------
address:
::1
prefixlen:
128
scope:
host
up:
True
sys.doc 실행 모듈
소금 기능은 sys.doc실행 모듈. 이것은 명령 줄에서 직접 모듈에 대한 세부 정보를 가져 오는 데 사용됩니다. Salt 함수는 자체 문서화입니다. 모든 함수 문서는 아래에 정의 된 sys.doc () 함수를 통해 미니언에서 검색 할 수 있습니다.
salt '*' sys.doc
함수 호출을위한 인수
인수는 함수 호출에 대한 추가 데이터를 제공하는 데 사용됩니다. 간단한 인수 예가 아래에 나와 있습니다.
salt '*' sys.doc pkg.install
여기, 논쟁 pkg.install 특정 패키지를 설치하는 모듈입니다.
Python 함수
인수는 함수에 대한 공백으로 구분 된 매개 변수입니다. 아래에 주어진 것처럼 파이썬 코드를 인수로 전달할 수 있습니다.
salt '*' cmd.exec_code python 'import sys;print sys.version'
다음을 생성합니다. output −
minion2:
2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4]
minion1:
2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4]
마찬가지로 선택적 키워드와 YAML 형식도 있습니다.