投稿

4月, 2020の投稿を表示しています

RaspberryPi TypeBで最新のRaspbianを再導入した

結構前に買った RaspberryPi ですが、しばらく放置していました。世間では既に 4世代目位 まで出ていてかなりの高スペックです。ほしいと思っても 先立つも のがないので5年ほど前に買った こいつ の出番です。もう少し頑張って働いてもらおうと引っ張り出してきました。さて格闘です。 古いのでバージョンアップさせようとしましたが、うまくいかない。情弱な自分がいろいろ調べても情報がないのと面倒くさいのもあって、一気に入れなおすことにしました。 その方が 精神衛生上 よかったですし、コスト的にもゼロで対処できました。 とりあえず備忘録がてらメモを残します。 まぁ先人が色々とされていますのでそれ真似ればサルでもできます。 ◆事前準備 以下のサイトのまんま作業 https://www.1ft-seabass.jp/memo/2018/07/23/raspbian-install-201807-memo/ https://qiita.com/nanbuwks/items/9a1d46c22e898178015c ・ 最新版のLite をダウンロードする ・ダウンロードしたイメージデータをSDに焼く ・画面にRaspberyPiを接続しで DHCP アドレスを確認する。 ・確認した先のIPアドレスに ssh接続 ◆設定 sshで接続し以下のコマンド実行 #デフォルトエディタ変更 $ sudo update-alternatives --config editor #IPアドレス変更 $ sudo vi /etc/dhcpcd.conf ------ # Example static IP configuration: #interface eth0 static ip_address=192.168.0.10/24 #static ip6_address=fd51:42f8:caae:d92e::ff/64 static routers=192.168.0.1 static domain_name_servers=192.168.0.1 8.8.8.8 #static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1 ---- #パスワード変更

3大クラウドの仮想ネットワークをTerraformで作ってみた

かなり昔からあるんですが、 Terraform とかいうツール、いわゆる Infrastructure As Code とかいうやつでインフラの構成をソースコードにして保存し、アプリケーションみたいに Git などでバージョン管理することでインフラも簡単にいじくれるようにしよう。という考え方に沿ったツールみたいです。少し興味があったので触ってみました。 3大クラウドには以下の様にInfrastructure As  Code(IaC)な仕組みがありますが 共通とは言え3社それぞれでバラバラです。 ・AWSでいうところの CloudFormation →YAMLで書く ・Azureでいうところの Azure Resource Manager テンプレート →JSONで書く ・GCPでいうところの CloudDeploymentManager →YAMLで書く これを1つのツールでバシッと1つの記述法で管理できるようにしたのがTerraformらしいです。記述言語としては HCL (HashiCorp Configuration Language) という JSON に 似た独自のものです。まぁ、ほぼほぼJSONまんまです。 まず動かす前提としてそれぞれ以下の準備が必要です。 AWS→ AWS-CLIを入れている GCP→ GoogleCloudSDKを入れている ※ AWSとGCPの環境はひとまず最新化 Azure→ Azure-CLIを入れている ちなみにUbuntuで環境作っているのでCentOSとかWindowsとかmacな人は 別のサイトを調べてみてください。 ◆TeraFormインストール手順 #Terraformインストール $ sudo apt install -y unzip $ sudo snap install terraform #tfenv $ git clone https://github.com/tfutils/tfenv.git ~/.tfenv $ echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bashrc $ source ~/.bashrc $ tfenv install late

Azure-CLIのインストール

3大クラウド をマルチに触れてイケてる人になりたいと思って、挑戦はしているんですが、 AWS と GCP はごにょごにょとやり始めてはいるものの Azure までなかなか手が回っていないので、まぁ今の あれな情勢 もあるので少しチャレンジしてみようと一念発起するわけです。(おそらく 3日坊主 これで準備は整ったはずなのでいろいろと遊べるかなぁと。 そんで VSCode と 仮想開発環境 つなげばローカルでいろいろとできるんだろうかと 淡い期待を寄せながら試してみます。 ローカル環境 でどこまで エミュレート しながら作業できるのかも 気になっているところです。 ◆Azure-CLIインストール手順 むっちゃ簡単です。参考サイトコピペすれば速攻できます。 $ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash export DEBIAN_FRONTEND=noninteractive ~中略~ azure-cli (2.3.1-1~bionic) を展開しています... azure-cli (2.3.1-1~bionic) を設定しています ... $ az login To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code XXXX to authenticate. The following tenants don't contain accessible subscriptions. Use 'az login --allow-no-subscriptions' to have tenant level access. XXXXXX 'XXXXX' [ { "cloudName": "AzureCloud", "homeTenantId": "XXXX", "id": "XXXX", "isDefault": true

AWS-CLIとGCP:Cloud-SDK環境のバージョンアップ

以前Hyper-Vに作成していた GCPの開発環境 と AWSの開発環境 が1年くらいたつのでそろそろバージョンアップでもしておくかと思って、作業してみた。 定期的にランタイムとかのバージョンとか上がるし、CLIツールも新しい方が色々とできたりするみたいなので、一応バージョンアップ方法も備忘録的に置いておこうと思った次第です。作業自体は難しくないですが、 pyenv のバージョン切り替えが少し落とし穴だったりする。ちなみにpython3.8にはAWS-CLIがpipで拾えなかったのとGCP側も不安しかなかったのとバージョンが双方でずれるのも嫌だったので両方とも3.7.7にて作業しました。 CloudSDKについては以前は apt でやってたんですが、sudo使わないと開発できないとか厄介なのが嫌なので、今回は tar.gz の方で対応することにしました。 希望を言うとそれぞれのクラウド用開発環境を個別に作るんじゃなくて一括でボンと入れたら全部が入ってくれるようなのが欲しいんだがなぁ。そして自動化にしても各社ばらばらでなく統一的に記述できるような方式の標準規格が欲しい。 近しいとしたらこんな感じだけど、、、ただ個社の独自仕様まで吸収できていないので Teraform SevelessFramework その辺がつらい、、、 理想を言えばプログラムを書いてなんか中間の ライブラリ を インポート してそのライブラリを利用して、設定ファイルと一緒に デプロイ すれば各 クラウドベンダー の マネージドサービス を使う サーバレス なアプリが1コードでできるというのが理想なのよなぁ。 ◆作業手順 1.pyenvバージョンアップ $ git clone git://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update $ pyenv update $ pyenv versions system * 2.7.16 (set by /home/users/.python-version) 3.7.3 $ pyenv install --list $ pyenv install 3.7.7 $ pyenv install 3.8.2 2.pythonバージョ

SFDCのデータを抽出してAPIにPOSTする

SaleceForceのデータをCSVにてS3にアップする というのをやってみたけど、今回はAPIで連携する必要がでてきたのでAPI連携の apex を作ってみました。Pardotからフォームデータを受取ってバッチで動かすので、 スケジューラ で登録して API を都度、呼出すという感じになります。能力が低いので JSON をapexで扱うのはかなりつらかったです。 いい方法あったら聞きたい。 ◆プログラム群 1)環境変数抽出 GetEnvironment ---------- public class GetEnvironment { // 環境変数をカスタム設定から取得する public Map GetEnv(){ try { Map settingMap = EnvironmentVars__c.getAll(); Map MapEnv = new Map (); for (String key : settingMap.keySet()) { EnvironmentVars__c env = settingMap.get(key); MapEnv.put(key,env.EnvParam__c); } return MapEnv; } catch(Exception e) { System.debug('Exception caught: ' + e.getMessage()); system.debug(e.getLineNumber()); return null; } } } ----------  GetEnvironmentTest ---------- @isTest(SeeAllData=true) private class GetEnvironmentTest { @isTest static void testGetEnv() { Map m1 = new Map