動かざることバグの如し

3分経てば忘れそうなことをメモします

Raspberry Piにaws-cliコマンドをインストール

awsコマンドを叩くためにはaws-cliというアプリケーションをインストールする必要がある。

インストール

apt-get install awscli いっぱつ

他の記事だとpip経由が多いが、ぶっちゃけpythonで他にアプリケーションを書くことがなければapt経由でもいいんじゃないかと思う。こっちのほうが速いし正確

root@raspberrypi:~# apt-get install awscli
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  dh-python docutils-common liblcms2-2 libmpdec2 libpaper-utils libpaper1
  libpython3-stdlib libpython3.4-minimal libpython3.4-stdlib libwebp5
  libwebpdemux1 libwebpmux1 python3 python3-bcdoc python3-botocore
  python3-chardet python3-colorama python3-dateutil python3-docutils
  python3-jmespath python3-minimal python3-pil python3-pkg-resources
  python3-pygments python3-requests python3-roman python3-rsa python3-six
  python3-urllib3 python3.4 python3.4-minimal
Suggested packages:
  liblcms2-utils python3-doc python3-tk python3-venv
  texlive-latex-recommended texlive-latex-base texlive-lang-french
  fonts-linuxlibertine ttf-linux-libertine docutils-doc python-pil-doc
  python3-pil-dbg python3-setuptools ttf-bitstream-vera
  python3-ndg-httpsclient python3-openssl python3-pyasn1 python3.4-venv
  python3.4-doc binfmt-support
The following NEW packages will be installed:
  awscli dh-python docutils-common liblcms2-2 libmpdec2 libpaper-utils
  libpaper1 libpython3-stdlib libpython3.4-minimal libpython3.4-stdlib
  libwebp5 libwebpdemux1 libwebpmux1 python3 python3-bcdoc python3-botocore
  python3-chardet python3-colorama python3-dateutil python3-docutils
  python3-jmespath python3-minimal python3-pil python3-pkg-resources
  python3-pygments python3-requests python3-roman python3-rsa python3-six
  python3-urllib3 python3.4 python3.4-minimal
0 upgraded, 32 newly installed, 0 to remove and 10 not upgraded.
Need to get 7,371 kB of archives.
After this operation, 53.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

インストールはそこそこ時間かかる ラズパイだししゃーない

初期設定

シークレットキーは以下のコマンドで設定

$ aws configure
AWS Access Key ID [None]: XXXX
AWS Secret Access Key [None]: XXXXXXXX
Default region name [None]:(そのままエンターでもOK)
Default output format [None]: (そのままエンターでもOK)

そうすると実行ユーザーのホームディレクト~/.aws/config にキーが書かれる

Tumblrの全記事URLをAPI+pythonで取得

たまにはPythonでやろうと思った

環境

準備

まずAPIキーが必要。ここからアプリを適当に登録して「OAuth Consumer Key」というのを控えておく。

コード

import requests
import sys

if len(sys.argv) != 2:
    print('Usage: ' + sys.argv[0] + ' blog_name.tumblr.com')
    exit(1);

blog = sys.argv[1]
api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # copied from API example
offset = 0

while 1:
    url = 'http://api.tumblr.com/v2/blog/' + blog + '/posts/text?api_key=' + api_key + '&offset=' + str(offset) + '&notes_info=false'

    r = requests.get(url)
    j = r.json()

    posts = j['response']['posts']

    if len(posts) == 0:
        break

    offset = offset + len(posts)

    for p in posts:
        print(p['title'] + ',' + p['post_url'])

python tumblr.py hogehoge.tumblr.com

でいける。

JSONの仕様

APIで取得できるJSONのうち、各postの形式は以下

{
  type: "text",
  blog_name: "ekimemo-blog",
  id: 165753226534,
  post_url: "http://blog.ekimemo.com/post/165753226534/仮想ホームの調整について",
  slug: "仮想ホームの調整について",
  date: "2017-09-26 06:56:30 GMT",
  timestamp: 1506408990,
  state: "published",
  format: "markdown",
  reblog_key: "IDkARQ9R",
  tags: [],
  short_url: "https://tmblr.co/ZaNGnj2QNgOKc",
  summary: "仮想ホームの調整について",
  is_blocks_post_format: false,
  recommended_source: null,
  recommended_color: null,
  note_count: 1,
  title: "仮想ホームの調整について",
  body: "<p>こんにちは!奪取er協会の日記係の方、らんたんです!</p> <p>いつも駅メモ!をご利用頂きありがとうございます。..............",
  reblog: {},
  trail: [],
  can_like: false,
  can_reblog: false,
  can_send_in_message: true,
  can_reply: false,
  display_avatar: true
}

ちなみにこのブログは駅メモ!公式ブログであることはいうまでもない

MySQLで正しくrootユーザーのパスワードを変更する方法

Qiitaの上位に載ってるやつが適当だったので仕方ないのでMySQLの公式ドキュメントから

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword');

UbuntuのSquidでパスワード認証を設定する

プロキシサーバーことsquidでIP制限ではなくBASIC認証によるセキュリティ設定をする場合のメモ

環境

パスワードを生成

htpasswd -c /etc/squid3/passwd user

を実行するとパスワードを聞かれるので入力する。すると /etc/squid3/passwdにハッシュ化されたファイルが生成される

htpasswdコマンドなんぞ無い

htpasswdコマンド無いって怒られた場合は apt install apache2-utils でインストール

パスワードをコマンドで直で叩きたい

-bオプションを付けるとコマンド1発でいける。セキュリティ的にどうなのってのはあるが

htpasswd -c -b /etc/squid3/passwd user mypassword

Ubuntu 14.04の場合

ディレクトリが /etc/squid3/passwdではなく /etc/squid/passwdなので注意(3がない)

Squidの設定

あとはsquid.confに設定を追加するだけ

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwd
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

ubuntu14の場合はそれぞれディレクトリが、/usr/lib/squid/basic_ncsa_auth、/etc/squid/passwdになるので注意

再起動

バリデーションチェック

squid3 -k check

設定再読込

service squid reload

これであとは確認すればおk

運用でSSHログインをしなきゃいけないのは設計力不足らしい

こんな記事を見つけた

cloudpack.media

タイトル詐欺かと思ったらガチのマジでそう言っていたのでメモ

この記事の概要

  • 運用時のオペミスは怖い
  • SSHしなきゃオペミスは発生しない
  • SSHしなくてもいいように設計しよう!

で、その設計とは「ログ収集」と「インスタンス再起動」とのこと。

うーんなるほどなるほど?