From d1240d43b08cb278bf1ba6fcf0e30b7331a40717 Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sat, 14 Nov 2020 12:51:53 +0900 Subject: [PATCH 1/4] Add attirbutes for `rclone`. --- cookbooks/digdag/attributes.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cookbooks/digdag/attributes.rb b/cookbooks/digdag/attributes.rb index 045dad6..8d8dd63 100644 --- a/cookbooks/digdag/attributes.rb +++ b/cookbooks/digdag/attributes.rb @@ -8,5 +8,12 @@ node.reverse_merge!({ 'digdag' => { 'binary_url' => 'https://dl.digdag.io/digdag-latest', 'install_path' => '/opt/digdag' - } + }, + 'rclone' => { + 'url' => 'https://github.com/rclone/rclone/releases/download/', + 'prefix' => 'rclone-', + 'postfix' => '-linux-amd64', + 'storage' => '/opt/rclone/', + 'location' => '/usr/local/bin/' + }, }) From 6330f1e9b0a4f48d66bcfd7a04ac031ee939836d Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sat, 14 Nov 2020 12:52:16 +0900 Subject: [PATCH 2/4] Install `rclone`. --- cookbooks/digdag/default.rb | 2 ++ cookbooks/digdag/rclone_install.rb | 48 ++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 cookbooks/digdag/rclone_install.rb diff --git a/cookbooks/digdag/default.rb b/cookbooks/digdag/default.rb index 1a4f1e1..869820e 100644 --- a/cookbooks/digdag/default.rb +++ b/cookbooks/digdag/default.rb @@ -4,6 +4,8 @@ include_recipe './install.rb' include_recipe './setup.rb' +include_recipe './rclone_install.rb' + # AWS EC2 Swap Setting: if !node['is_ec2'] include_recipe './shared_dir.rb' diff --git a/cookbooks/digdag/rclone_install.rb b/cookbooks/digdag/rclone_install.rb new file mode 100644 index 0000000..8a34044 --- /dev/null +++ b/cookbooks/digdag/rclone_install.rb @@ -0,0 +1,48 @@ +rclone_url = '' +rclone_dir = '' + +vtag = '' + +# Calculate the Download URL: +begin + require 'net/http' + + uri = URI.parse('https://github.com/rclone/rclone/releases/latest') + + Timeout.timeout(3) do + response = Net::HTTP.get_response(uri) + + vtag = $1 if response.body =~ %r{tag\/(v\d+\.\d+\.\d+)} + + rclone_dir = "#{node['rclone']['prefix']}#{vtag}#{node['rclone']['postfix']}" + rclone_url = "#{node['rclone']['url']}/#{vtag}/#{rclone_dir}.zip" + end +rescue + # Abort the chef client process: + raise 'Cannot connect to http://github.com.' +end + +# バージョン確認して、アップデート必要かどうか確認 +result = run_command("rclone --version 2>&1 | grep #{vtag}", error: false) +if result.exit_status != 0 + # Download: + TMP = "/tmp/#{rclone_dir}.zip" + + execute "wget #{rclone_url} -O #{TMP}" + + # Install: + execute "unzip -d /opt/ -o #{TMP}" + execute "mv /opt/#{rclone_dir} /opt/rclone" + + # Change Owner and Permissions: + file "#{node['rclone']['storage']}rclone" do + owner 'root' + group 'root' + mode '755' + end + + # Create Link + link "#{node['rclone']['location']}rclone" do + to "#{node['rclone']['storage']}rclone" + end +end From f442ed4e7a2b76722f3af538ffabf0d24d211220 Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sat, 14 Nov 2020 16:35:00 +0900 Subject: [PATCH 3/4] Set up `rclone`. --- cookbooks/digdag/default.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/cookbooks/digdag/default.rb b/cookbooks/digdag/default.rb index 869820e..5d8d728 100644 --- a/cookbooks/digdag/default.rb +++ b/cookbooks/digdag/default.rb @@ -5,6 +5,7 @@ include_recipe './install.rb' include_recipe './setup.rb' include_recipe './rclone_install.rb' +include_recipe './rclone_setup.rb' # AWS EC2 Swap Setting: if !node['is_ec2'] From 999d11147041be750b7fc61a810886cc0d561bdc Mon Sep 17 00:00:00 2001 From: Kazuhiro MUSASHI Date: Sat, 14 Nov 2020 16:35:23 +0900 Subject: [PATCH 4/4] Deploy the `rclone` config to `kazu634` and `root`. --- .../home/kazu634/.config/rclone/rclone.conf | 4 ++++ .../files/root/.config/rclone/rclone.conf | 4 ++++ cookbooks/digdag/rclone_setup.rb | 24 +++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 cookbooks/digdag/files/home/kazu634/.config/rclone/rclone.conf create mode 100644 cookbooks/digdag/files/root/.config/rclone/rclone.conf create mode 100644 cookbooks/digdag/rclone_setup.rb diff --git a/cookbooks/digdag/files/home/kazu634/.config/rclone/rclone.conf b/cookbooks/digdag/files/home/kazu634/.config/rclone/rclone.conf new file mode 100644 index 0000000..fef1377 --- /dev/null +++ b/cookbooks/digdag/files/home/kazu634/.config/rclone/rclone.conf @@ -0,0 +1,4 @@ +[gp] +type = google photos +token = {"access_token":"ya29.A0AfH6SMAv55TYq299mIJKY0zz-p3SS7JDzgGJERacdy64ckRdiL4vgjQTwgokYd6b8gnJ5oLcGwmAxUUPF-eYwD9LhrlSYcSYM8HzHJIpUuV70eJtF-Gw2QBMmkYDm3j7GpvjqNllketPeL0_KMYM40liOlxn7mqDJjvu_gFV7qg","token_type":"Bearer","refresh_token":"1//0gQgQpQWIend5CgYIARAAGBASNwF-L9IrQhnEw_xvzBygu6Bfsorr7Nl0e3Uah3PKxM2Oe_v14zPcOwSV4bC4y8UaYRj61Y33K7g","expiry":"2020-11-14T02:07:28.57842896+09:00"} + diff --git a/cookbooks/digdag/files/root/.config/rclone/rclone.conf b/cookbooks/digdag/files/root/.config/rclone/rclone.conf new file mode 100644 index 0000000..fef1377 --- /dev/null +++ b/cookbooks/digdag/files/root/.config/rclone/rclone.conf @@ -0,0 +1,4 @@ +[gp] +type = google photos +token = {"access_token":"ya29.A0AfH6SMAv55TYq299mIJKY0zz-p3SS7JDzgGJERacdy64ckRdiL4vgjQTwgokYd6b8gnJ5oLcGwmAxUUPF-eYwD9LhrlSYcSYM8HzHJIpUuV70eJtF-Gw2QBMmkYDm3j7GpvjqNllketPeL0_KMYM40liOlxn7mqDJjvu_gFV7qg","token_type":"Bearer","refresh_token":"1//0gQgQpQWIend5CgYIARAAGBASNwF-L9IrQhnEw_xvzBygu6Bfsorr7Nl0e3Uah3PKxM2Oe_v14zPcOwSV4bC4y8UaYRj61Y33K7g","expiry":"2020-11-14T02:07:28.57842896+09:00"} + diff --git a/cookbooks/digdag/rclone_setup.rb b/cookbooks/digdag/rclone_setup.rb new file mode 100644 index 0000000..662a5d0 --- /dev/null +++ b/cookbooks/digdag/rclone_setup.rb @@ -0,0 +1,24 @@ +# Deploy the files: +directory '/home/kazu634/.config/rclone/' do + owner 'kazu634' + group 'kazu634' + mode '750' +end + +remote_file "/home/kazu634/.config/rclone/rclone.conf" do + owner 'kazu634' + group 'kazu634' + mode '600' +end + +directory '/root/.config/rclone/' do + owner 'root' + group 'root' + mode '750' +end + +remote_file "/root/.config/rclone/rclone.conf" do + owner 'kazu634' + group 'kazu634' + mode '600' +end