Salt : 基本操作2016/10/08 |
Salt Master から Salt Minion へコマンドをリモート実行する場合の基本的な利用方法です。
書式は以下のようになります。
⇒ salt [option] [target] [function] [arguments]
function で利用可能な組み込みモジュールは以下の本家サイトを参照ください。
⇒ https://docs.saltstack.com/en/latest/ref/modules/all/index.html
|
|
[1] | システムで利用可能な function は下記コマンドでも確認できます。 (大量に出力されるため less 等へ渡して閲覧した方がよいでしょう) |
[root@dlp ~]# salt '*' sys.doc 'acl.delfacl:' Remove specific FACL from the specified file(s) CLI Examples: salt '*' acl.delfacl user myuser /tmp/house/kitchen salt '*' acl.delfacl default:group mygroup /tmp/house/kitchen ..... ..... |
[2] | target の指定は様々な方法で記述可能となっています。 |
# 全 Minion を指定して実行 # test.ping で Minion の稼働状況を確認 [root@dlp ~]# salt '*' test.ping node02.srv.world: True node01.srv.world: True # node01.srv.world を指定して実行 # disk.usage でディスク使用状況を確認 [root@dlp ~]# salt 'node01.srv.world' disk.usage
node01.srv.world: ---------- /: ---------- 1K-blocks: 27740944 available: 26176776 capacity: 6% filesystem: /dev/mapper/centos-root used: 1564168 ..... ..... # 複数サーバーをリスト指定して実行(カンマ区切り) # status.loadavg でロードアベレージを確認 [root@dlp ~]# salt -L 'node01.srv.world,node02.srv.world' status.loadavg
node02.srv.world: ---------- 1-min: 0.0 15-min: 0.05 5-min: 0.01 node01.srv.world: ..... ..... # 正規表現を用いて node00-99.srv.world を指定して実行 # selinux.getenforce で SELinux の動作モードを確認 [root@dlp ~]# salt -E 'node[0-9][0-9].srv.world' selinux.getenforce
node02.srv.world: Enforcing node01.srv.world: Enforcing # Grains データを用いて OS が CentOS のノードを指定して実行 # grains.item kernelrelease で grains.item で取得可能なデータからカーネルバージョンを確認 # Grains は Salt で使われる用語で Minion の静的データなどを管理している [root@dlp ~]# salt -G 'os:CentOS' grains.item kernelrelease node01.srv.world: ---------- kernelrelease: 3.10.0-327.36.1.el7.x86_64 node02.srv.world: ---------- kernelrelease: 3.10.0-327.36.1.el7.x86_64 # C オプションを用いて複数条件を指定して実行 # 以下は OS が CentOS 且つ 名前が node01-node05 を指定 # cmd.run で 引数に指定した任意のコマンドを実行 [root@dlp ~]# salt -C 'G@os:CentOS and E@node0[1-5].srv.world' cmd.run 'uptime' node02.srv.world: 09:46:43 up 18 min, 0 users, load average: 0.00, 0.01, 0.03 node01.srv.world: 09:46:43 up 18 min, 0 users, load average: 0.07, 0.05, 0.03 |
[3] | target の指定はノードをグループ化して指定することも可能です。 |
[root@dlp ~]#
vi /etc/salt/master # 12行目:コメント解除 default_include: master.d/*.conf mkdir /etc/salt/master.d
[root@dlp ~]#
vi /etc/salt/master.d/nodegroups.conf # 新規作成 # group01 は "L@" に続けてカンマ区切りでリスト指定 # group02 は 正規表現で node03-node05 を指定 # group03 は os が CentOS のノードを指定 nodegroups: group01: 'L@node01.srv.world,node02.srv.world' group02: 'E@node0[3-5].srv.world' group03: 'G@os:CentOS'
[root@dlp ~]#
systemctl restart salt-master
# group01 を指定して実行 # firewalld.list_services で接続許可されているサービスを確認 [root@dlp ~]# salt -N 'group01' firewalld.list_services node01.srv.world: - dhcpv6-client - ssh node02.srv.world: - dhcpv6-client - ssh |
Sponsored Link |