orenoblog

エンジニアになりたいExcel方眼紙erの物語

aws_volume_attachmentリソース実行後にEBSにファイルシステムを作りたい

俺です。

remote-execというprovisionerがあります。

このprovisionerはresource内で定義できるのでaws_ebs_volumeで作成したEBSをaws_volume_attachmentでターゲットのEC2へAttachした後に、

mkfsとmountでオラオラできます。

chefとかansibleとか面倒になって作りっぱなしで完結するならremote-exec最高。

以下定義例

  • ebs.tf
resource "aws_ebs_volume" "prd-manage_volume-1a" {
  availability_zone = "${var.region}a"
  type = "${lookup(var.manage_extend_ebs_volume_type,"prd")}"
  size = "${lookup(var.manage_extend_ebs_volume_size,"prd")}"
  encrypted = "${lookup(var.manage_extend_ebs_volume_encrypted,"prd")}"
  count = "${lookup(var.manage_extend_ebs_count, "prd")}"
  tags {
    Name = "${lookup(var.manage_tag_Name, "prd")}"
  }
}

resource "aws_volume_attachment" "prd-manage_volume-1a" {
  device_name = "/dev/xvdh"
  volume_id = "${aws_ebs_volume.prd-manage_volume-1a.id}"
  instance_id = "${aws_instance.prd-manage-1a.id}"
  provisioner "remote-exec" {
    connection {
      type = "ssh"
      user = "ec2-user"
      key_file = "~/.ssh/id_rsa"
      host = "${aws_instance.prd-manage-1a.public_ip}"
    }
    inline = [
      "sudo mkfs -t ext4 /dev/xvdh",
      "sudo mkdir /mnt/data",
      "sudo mount /dev/xvdh /mnt/data"
    ]
  }
}
  • console out

EBSが接続された後にmkfsが実行されています。

aws_volume_attachment.prd-manage_volume-1a (remote-exec):   Host: **.**.**.**
aws_volume_attachment.prd-manage_volume-1a (remote-exec):   User: ec2-user
aws_volume_attachment.prd-manage_volume-1a (remote-exec):   Password: false
aws_volume_attachment.prd-manage_volume-1a (remote-exec):   Private key: true
aws_volume_attachment.prd-manage_volume-1a (remote-exec):   SSH Agent: true
aws_volume_attachment.prd-manage_volume-1a (remote-exec): Connected!
aws_volume_attachment.prd-manage_volume-1a (remote-exec): mke2fs 1.42.12 (29-Aug-2014)aws_volume_attachment.prd-manage_volume-1a (remote-exec): Creating filesystem with 262
14400 4k blocks and 6553600 inodes
aws_volume_attachment.prd-manage_volume-1a (remote-exec): Filesystem UUID: 028ef97c-0d
79-4a8e-9ce6-c058c0f0d008
aws_volume_attachment.prd-manage_volume-1a (remote-exec): Superblock backups stored on
 blocks:
aws_volume_attachment.prd-manage_volume-1a (remote-exec):       32768, 98304, 163840,
229376, 294912, 819200, 884736, 1605632, 2654208,
aws_volume_attachment.prd-manage_volume-1a (remote-exec):       4096000, 7962624, 11239424, 20480000, 23887872
aws_volume_attachment.prd-manage_volume-1a (remote-exec): Allocating group tables: done
aws_volume_attachment.prd-manage_volume-1a (remote-exec): Writing inode tables: done  aws_volume_attachment.prd-manage_volume-1a (remote-exec): Creating journal (32768 blocks): done
aws_volume_attachment.prd-manage_volume-1a (remote-exec): Writing superblocks and file
system accounting information:
aws_volume_attachment.prd-manage_volume-1a (remote-exec): done

aws_volume_attachment.prd-manage_volume-1a: Creation complete

俺の記憶がすっとんでもなんとか思い出すためのterraform tips

俺です。

terraform 0.3.5の頃から2015/8現在0.6.2まで使い続けてきた中で得たtipsです。

思い出したら追記する はず

terraform 0.6.2は使わない

IAM Roleで認可された権限を認識しないバグがあり、IAM Roleを付与したEC2で動作しない。

ドハマりしたので絶対触らないのが吉之助。

8/11にリリースされたterraform 0.6.3か0.6.1を使いましょう。

Couchbase 3.0.1 cbbackupの話とcbbackupwrapper実行中のエラー Error with backup for running cbbackup

メムキャッシュだよぉーって言っておいて実は動いていたのはCouchbaseでした!

というのを夢見る俺ですこんばんは。moxiで負荷分散されてたのどんな気持ち?って聞いてみたい。

今回はCouchbaseのバックアップツールである cbbackup とwrapper tool cbbackupwrapper についての話です。

cbbackupのパッチ@Couchbase 3.0.1

Couchbase社の 河村さん に教えてもらったのですが

Couchbase 3.0/3.0.1のcbbackupには不具合があり, cbbackupwrapperに対してPatchが提供されています。 https://issues.couchbase.com/browse/MB-15345

このパッチを適用すると cbbackupwrapper--sequential オプションが追加され, vBucketのバックアップ並列度を指定することができるようになります。

cbbackup/cbbackupwrapperを使っていて、 MB-15345 のパッチを適用してない方は是非適用しましょう。

自分はCouchbase Community Edition 3.0.1を使ってますが、

パッチを当てていないcbbackupで1レコード20KBのデータが1000万件あるCouchbaseサーバを

c4.xlargeのバックアップサーバにインストールしたcbbackupでバックアップしたところ、バックアップサーバのCPU使用率が100%になり無応答になる悲惨な状況を経験しました。

この問題を回避するため、重い腰を上げてパッチを当てようとしたところ、

そもそもCouchbase Server Community 3.0.1(RHEL)にはcbbackupwrapper/cbrestorewrapperがインストールされていなかったので、

Couchbase社が公開しているcouchbaes-cligithubリポジトリCLIをcloneして使ってます。

https://github.com/couchbase/couchbase-cli

--sequential オプションの代わりに --parallelism--number オプションが追加されています。

上記リポジトリをcloneして cbbackupwrapper を使ったところ、2000万件のデータをc4.2xlargeのバックアップサーバから約90分で取得できるようになりました。

cbbackupwrapperの引数を調整したらもう少し高速化できるかなーと考えてるところです。

これで解決かなーとと思いきや

Couchbase社のcouchbase-cliリポジトリにあるcbbackupwrapperを使ってたらある日からつらみが発生

あくまでも2000万件はテストで作ったデータなので、実データを cbbackupwrapper で吸い上げみたところ

Error with backup for running という見慣れぬエラーメッセージが出力されていました。

  • コマンド
$ cd /usr/local/couchbase-cli
$ ./cbbackupwrapper -u **** -p **** http://192.168.0.11:8091 --path=/usr/local/couchbase-cli /mnt/cbbackup
Error with backup for running /usr/local/couchbase-cli/cbbackup -v -t 1 --vbucket-list=[900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,9
19,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961
,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999] http://192.168.0.11:8091 /mnt/cbbackup/900-999 -u **** -p **** -m diff -b orenobucket 2>/mnt/cbbackup/logs/900-999.err
Error with backup for running /usr/local/couchbase-cli/cbbackup -v -t 1 --vbucket-list=[1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,10
15,1016,1017,1018,1019,1020,1021,1022,1023] http://192.168.0.11:8091 /mnt/cbbackup/1000-1023 -u **** -p **** -m diff -b orenobucket 2>/mnt/cbbackup/log/1000-1023.err
SUCCESSFULLY COMPLETED!
$ echo $?
0
  • cbbackupwrapperが出力するログ

各vBucketのメッセージ数とバイト数を見る限り、バックアップは問題なく取得できていそうですが、pythonのtrace backがなんだろう。

bucket: orenobucket, msgs transferred...
       :                total |       last |    per sec
 batch :                 7950 |       7950 |       16.3
 byte  :           3123659280 | 3123659280 |  6400204.6
 msg   :               459774 |     459774 |      942.1
Traceback (most recent call last):
  File "/usr/local/couchbase-cli/cbbackup", line 12, in <module>
    pump_transfer.exit_handler(pump_transfer.Backup().main(sys.argv))
  File "/usr/local/couchbase-cli/pump_transfer.py", line 94, in main
    rv = pumpStation.run()
  File "/usr/local/couchbase-cli/pump.py", line 140, in run
    self.transfer_bucket_index(source_bucket, source_map, sink_map)
  File "/usr/local/couchbase-cli/pump.py", line 265, in transfer_bucket_index
    source_bucket, source_map)
  File "/usr/local/couchbase-cli/pump_dcp.py", line 92, in provide_index
    err, index_server = pump.filter_server(opts, source_spec, 'index')
  File "/usr/local/couchbase-cli/pump.py", line 1050, in filter_server
    if filtor in node["services"] and node["status"] == "healthy":
KeyError: 'services'

OSはAmazon Linux.システムのPythonは2.7.9

いきなり発生してつらあじ。

とりあえずcbrestorewrapperでリストアできるか試してみる・・・

Sensu 0.12にPagerDuty handlerを導入するまでの道のり

こんばんは俺です。最近SensuにPagerDuty handlerを導入して、PJに投下中です。

PagerDuty handlerは下記URLに記載されているとおりに導入できます。

Sensu Integration Guide - PagerDuty

ただ今回PagerDuty handlerを導入したsensu serverは0.12を使っており、

これが古すぎたためハマったので、手順を残しておきます。

ハマリポイントを産業以内で

1.sensu-pluginのバージョンを1.0以上にしてPagerDuty handlerを導入する

以上終わり。

詳細

sensu-pluginのバージョンアップ

  • PagerDuty handlerはsensu-pluginが1.0以上でなければ動きませんのでsensu-plugin1.0以上をインストールします
$ /opt/sensu/embedded/bin/gem list sensu-plugin

*** LOCAL GEMS ***

sensu-plugin (0.2.2)
$ /opt/sensu/embedded/bin/gem install sensu-plugin
$ /opt/sensu/embedded/bin/gem list sensu-plugin

*** LOCAL GEMS ***

sensu-plugin (1.1.0, 0.2.2)

handler定義作成

  • /etc/sensu/conf.d/handlersに任意の名称でPagerDutyをkickする定義を記述します。

OKもPagerDutyで制御するときは severities に含めましょう。

{
  "pagerduty": {
    "api_key": "**************************"
  },
  "handlers": {
    "hogehoge_pagerduty": {
      "type": "pipe",
      "command": "pagerduty.rb",
      "severities": [
        "warning",
        "critical",
        "unknown"
      ]
    }
  }
}

sensu-server/apiの再起動

再起動してハンドラを有効にします。

$ sudo service sensu-server restart
$ sudo service sensu-api restart

以上でsensu serverの設定は完了です。

client設定例(Chef LWRP)

Chef LWRPでSensuの監視定義を管理しているのであれば、以下の通り

sensu serverで設定したハンドラ名をattributeなりrecipesの handlers に記述します

  • attributes/default.rb
default.sensu.default_handlers  = ["mail", "hogehoge_pagerduty"] 
  • recipes/default.rb
sensu_check "check_resource_cpu" do
  command %{check-cpu.rb -w 80 -c 90}
  standalone true
  handlers node.sensu.default_handlers
  interval node.sensu.check_interval
  additional occurrences: node.sensu.check_occurrences
end 

以上です。

terraform <= 0.5.X で EC2のchange instance type

terraformと手動オペレーションでterraformを使ってlaunchしたEC2のインスタンスタイプを変更した時の話。

terraformにAWS EC2のinstance typeを変更するresourceはまだ提供されていません。(議論は issue#1270などで行われているみたいですが)

基本的にterminate -> launchの順です。

ステートレスなサーバであれば今のterraformが提供するforce new recreateで良いと思います。

ただDBサーバ等のステートフルなサーバのinstance typeを変更するときはちょっと困りモノです。

terraformで定義したresourceの状態はterraform.tfstate/terraform.tfstate.backupで状態保存してるので、手動オペレーションによる矛盾が発生したときはこのファイルを直接いじればOKです。

  • instance typeを変更する該当インスタンスを停止
  • instance typeを変更して起動
  • terraformで定義したEC2のresourceにあるinstance typeを変更後のinstance typeに変更する
  • terraform.tfstateをエディタで開いてinstance typeを変更したinstance idのinstance typeを変更後のinstance type名にする
  • terraform planを実行して実行結果が下記のとおりであればOK(NGの場合は-/+ ~が出力されます)
No changes. Infrastructure is up-to-date. This means that Terraform
could not detect any differences between your configuration and
the real physical resources that exist. As a result, Terraform
doesn't need to do anything.
  • terraform applyを実行して、下記のとおりであればOK

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

脳筋的変更対象の台数が増えるときっついかなー。

stop instance, modify系に期待。

terraform先生の今後の活躍にご期待ください。

HAProxyで実現するGalera Clusterノードのサービス脳筋的無停止メンテナンス

HAProxyのエンドポイントとなるGalera Clusterをメンテモードにすることで、 Galera Clusterへのアクセスを停止することができ、サービス無停止でのメンテナンスが実現できる。

利用例

※パッケージもローリングアップデートでできるかな

f:id:buta9999:20150208143652p:plain

切替方法

  • ロードバランサの状態確認
[root@ip-192-168-0 ~]# echo "show stat"|socat stdio /var/lib/haproxy/haproxy.socket
# pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hrsp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt,comp_in,comp_out,comp_byp,comp_rsp,lastsess,last_chk,last_agt,qtime,ctime,rtime,ttime,
admin_page,FRONTEND,,,0,0,40000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,0,0,0,0,,,,,,,,
admin_page,BACKEND,0,0,0,0,4000,0,0,0,0,0,,0,0,0,0,UP,0,0,0,,0,313325,0,,1,2,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,0,0,0,0,-1,,,0,0,0,0,
haproxy-galera,FRONTEND,,,0,1,40000,1054,1409,4234,0,0,0,,,,,OPEN,,,,,,,,,1,3,0,,,,0,0,0,2,,,,,,,,,,,0,0,0,,,0,0,0,0,,,,,,,,
haproxy-galera,192.168.0.218,0,0,0,1,4000,348,461,1564,,0,,0,0,0,0,UP,100,1,0,1,1,310458,2867,128,1,3,1,,348,,2,0,,1,L7OK,200,8,,,,,,,0,,,,345,0,,,,,612,OK,,0,0,0,1,
haproxy-galera,192.168.0.219,0,0,0,1,4000,348,461,1276,,0,,0,0,0,0,UP,100,1,0,1,1,310406,2918,128,1,3,2,,348,,2,0,,1,L7OK,200,8,,,,,,,0,,,,345,0,,,,,12,OK,,0,0,0,1,
haproxy-galera,192.168.0.220,0,0,0,1,4000,348,487,1394,,0,,0,0,0,0,UP,100,1,0,1,1,310406,2917,128,1,3,3,,348,,2,0,,1,L7OK,200,8,,,,,,,0,,,,345,0,,,,,312,OK,,0,0,0,1,
haproxy-galera,BACKEND,0,0,0,1,4000,1054,1409,4234,0,0,,10,0,0,0,UP,300,3,0,,1,310458,2865,,1,3,0,,1044,,1,0,,2,,,,,,,,,,,,,,1035,0,0,0,0,0,12,,,0,0,0,1,
  • メンテナンスモードに変更
[root@ip-192-168-0 ~]# echo "disable server haproxy-galera/192.168.0.218"|socat stdio /var/lib/haproxy/haproxy.socket

[root@ip-192-168-0 ~]# echo "show stat"|socat stdio /var/lib/haproxy/haproxy.socket
# pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hrsp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt,comp_in,comp_out,comp_byp,comp_rsp,lastsess,last_chk,last_agt,qtime,ctime,rtime,ttime,
admin_page,FRONTEND,,,0,0,40000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,0,0,0,0,,,,,,,,
admin_page,BACKEND,0,0,0,0,4000,0,0,0,0,0,,0,0,0,0,UP,0,0,0,,0,313353,0,,1,2,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,0,0,0,0,-1,,,0,0,0,0,
haproxy-galera,FRONTEND,,,0,1,40000,1054,1409,4234,0,0,0,,,,,OPEN,,,,,,,,,1,3,0,,,,0,0,0,2,,,,,,,,,,,0,0,0,,,0,0,0,0,,,,,,,,
★haproxy-galera,192.168.0.218,0,0,0,1,4000,348,461,1564,,0,,0,0,0,0,MAINT,100,1,0,1,2,2,2869,128,1,3,1,,348,,2,0,,1,L7OK,200,8,,,,,,,0,,,,345,0,,,,,640,,,0,0,0,1,
haproxy-galera,192.168.0.219,0,0,0,1,4000,348,461,1276,,0,,0,0,0,0,UP,100,1,0,1,1,310434,2918,128,1,3,2,,348,,2,0,,1,L7OK,200,8,,,,,,,0,,,,345,0,,,,,40,OK,,0,0,0,1,
haproxy-galera,192.168.0.220,0,0,0,1,4000,348,487,1394,,0,,0,0,0,0,UP,100,1,0,1,1,310434,2917,128,1,3,3,,348,,2,0,,1,L7OK,200,8,,,,,,,0,,,,345,0,,,,,340,OK,,0,0,0,1,
haproxy-galera,BACKEND,0,0,0,1,4000,1054,1409,4234,0,0,,10,0,0,0,UP,200,2,0,,1,310486,2865,,1,3,0,,1044,,1,0,,2,,,,,,,,,,,,,,1035,0,0,0,0,0,40,,,0,0,0,1,
  • メンテナンスモードの確認

メンテ状態になったGalera Clusterへアクセスが発生しない

[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.219 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.220 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.219 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.220 |
+--------------------+---------------+
  • Galera Clusterのメンテナンス

HAProxyから外れたGalera Clusterを停止する。

Galera Clusterのインスタンスタイプを変更する

Galera Clusterを起動してメンバーノードとしてジョインさせる(MySQLを起動するとSSTにより自動でsyncされる)

  • HAProxyのメンテナンスモード解除
[root@ip-192-168-0 ~]# echo "enable server haproxy-galera/192.168.0.218"|socat stdio /var/lib/haproxy/haproxy.socket
[root@ip-192-168-0 ~]# echo "show stat"|socat stdio /var/lib/haproxy/haproxy.socket
# pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hrsp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt,comp_in,comp_out,comp_byp,comp_rsp,lastsess,last_chk,last_agt,qtime,ctime,rtime,ttime,
admin_page,FRONTEND,,,0,0,40000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,0,0,0,0,,,,,,,,
admin_page,BACKEND,0,0,0,0,4000,0,0,0,0,0,,0,0,0,0,UP,0,0,0,,0,313883,0,,1,2,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,,0,0,0,0,0,0,-1,,,0,0,0,0,
haproxy-galera,FRONTEND,,,0,1,40000,1060,2299,12289,0,0,0,,,,,OPEN,,,,,,,,,1,3,0,,,,0,0,0,2,,,,,,,,,,,0,0,0,,,0,0,0,0,,,,,,,,
haproxy-galera,192.168.0.218,0,0,0,1,4000,348,461,1564,,0,,0,0,0,0,UP,7,1,0,1,2,4,3395,128,1,3,1,6,348,,2,0,,1,L7OK,200,8,,,,,,,0,,,,345,0,,,,,1170,OK,,0,0,0,1,
haproxy-galera,192.168.0.219,0,0,0,1,4000,351,1009,8451,,0,,0,0,0,0,UP,100,1,0,1,1,310964,2918,128,1,3,2,,351,,2,0,,1,L7OK,200,8,,,,,,,0,,,,345,0,,,,,135,OK,,0,0,0,38,
haproxy-galera,192.168.0.220,0,0,0,1,4000,351,829,2274,,0,,0,0,0,0,UP,100,1,0,1,1,310964,2917,128,1,3,3,,351,,2,0,,1,L7OK,200,8,,,,,,,0,,,,346,0,,,,,256,OK,,0,0,0,1,
haproxy-galera,BACKEND,0,0,0,1,4000,1060,2299,12289,0,0,,10,0,0,0,UP,207,3,0,,1,311016,2865,,1,3,0,,1050,,1,0,,2,,,,,,,,,,,,,,1036,0,0,0,0,0,135,,,0,0,0,38,
  • HAProxyのロードバランス確認
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.219 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.220 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.219 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.220 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.219 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.218 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.220 |
+--------------------+---------------+
[root@ip-192-168-0 ~]#  mysql -u root -p'<password>' -h 192.168.0.120 -P 33306 -e "show variables like 'wsrep_node_address'"
+--------------------+---------------+
| Variable_name      | Value         |
+--------------------+---------------+
| wsrep_node_address | 192.168.0.219 |
+--------------------+---------------+

以上です