Ubuntu 14.04 で GoogleDrive 同期

Ubuntu 14.04 で GoogleDrive 同期

Google Drive のクライアントアプリは
Windows と Mac ではあっても
Linux 系はないため、かわりに同期するアプリを使います

今回は
Grive Tools をインストールします

まず
Ctrl + Alt + t で端末を開きます

次に

1
sudo add-apt-repository ppa:thefanclub/grive-tools

でリポジトリを追加します

次に

1
sudo apt-get update

でリポジトリを更新します

そして

1
sudo apt-get install grive-tools

でインストールします

インストールが終わったら
画面左上のダッシュボードから
grive で検索し
Grive setup をクリックします

grive

すると設定画面になるので
次 をクリックします

grive2

すると
Grive が アクセス許可を求めてくるので
許可をクリックし
次のページで
Google Drive コードが表示されるので
それを入力し、次をクリックします

grive3

するとインストールが完了となり
現在Google Drive にあるファイルとの自動同期が行われます

grive4

USBを経由したりする必要がなく
Macとの同期も簡単にできるので
おすすめです

Mac に Google Drive インストール

Mac に Google Drive インストール

Android 関連を使うのなら
Google アカウントは持っているし
Gmail などでも使うことが多いので
今回は Google Drive を  Mac にいれます

今後 Ubuntu でも使えるようにする予定です

まず
https://tools.google.com/dlpage/drive?hl=ja
から

Mac用を選んでダウンロード

スクリーンショット 2016-01-24 17.28.59

つぎに
ダウンロードしたファイルを
ダブルクリックすると
ドラッグ&ドロップするようにでるので
ドラッグ&ドロップ

スクリーンショット 2016-01-24 17.40.50

その後 Applications アイコンをクリックすると
一覧がでるので
google Drive をクリック

スクリーンショット 2016-01-24 17.43.00

すると Google Drive の設定開始画面になるので
開始するをクリック

スクリーンショット 2016-01-24 17.43.54

つぎにログイン画面になるので
Google アカウントのパスワードを入力

つぎに解説がでるので
そのままつぎへをクリック

スクリーンショット 2016-01-24 17.46.49

つぎにスマホやタブレットのアプリの紹介がでるけど
次へをクリック

スクリーンショット 2016-01-24 17.47.04

そして他のユーザとの共有の解説がでるけど
次へをクリック

スクリーンショット 2016-01-24 17.48.10

すると設定完了画面になるので
完了をクリックすれば設定完了です

スクリーンショット 2016-01-24 17.48.28

パーマリンク設定変更でリンクエラーになるときの対処

パーマリンク設定変更でリンクエラーになるときの対処

ubuntu14.04 64bit で wordpress をインストールし
パーマリンクの設定を変更後
リンクをしているか調べたけど動作していないので
設定確認

まず mode_rewrite の有効化

1
sudo a2enmod rewrite

1
Module rewrite already enabled

ですでに有効化されているので問題なし

次に設定ファイルへの追記

1
sudo vim /etc/apache2/sites-available/000-default.conf

で設定ファイルを開き

1
2
3
4
5
<Directory /var/www/html/wp/>
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>

を最後に追記

設定反映のため apache2 再起動

これでもまだだめなので
.htaccess を wordpress をインストールしたディレクトリに作成

1
2
cd /var/www/html/wp/wordpress/
touch .htaccess

書き込み権限がOKなら
これで終わりだけど、権限がないため
ダッシュボードでパーマリンクの設定で

1
2
3
4
5
6
7
8
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/wordpress/index.php [L]
</IfModule>

を追記するようにでているので

1
vim .htaccess

1
2
3
4
5
6
7
8
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/wordpress/index.php [L]
</IfModule>

を追記して保存

これで無事に記事のリンクが可能になります

mac にAnsible をインストール

mac にAnsible をインストール

出先でも開発ができるように
仮想マシンに vagrant + virtualbox は入れたので
今回は Ansible をインストールします

これでサーバ構築や開発環境を簡単に作成できるようになります

まず
Homebrew を使えるようにします

つぎに
Homebrew で Ansible が使えるか確認します

これはターミナルを起動して行います

1
brew search ansible

すると結果が

1
2
homebrew/emacs/ansible-doc      homebrew/versions/ansible18
homebrew/versions/ansible14 homebrew/versions/ansible19

となります

つぎに brew info でパッケージの情報を調べます

1
brew info ansible

を実行すると

1
2
3
4
5
6
7
ansible: stable 1.9.3 (bottled), HEAD
Automate deployment, configuration, and upgrading
http://www.ansible.com/home
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb
==> Dependencies
Required: libyaml ✘, openssl ✘

という結果になり、

1
ansible: stable 1.9.3

の結果から安定版は1.9.3 ということがわかります

これで情報が得られたので

つぎに brew install で ansible をインストールします

1
brew install ansible

これでインストールされているかを確認するには
Ansible のバージョンを確認します
[she]]
ansible —version
[/shell]

今回は結果として 1.9.3 となりました

1
2
ansible 1.9.3
  configured module search path = None

Ansible wait_for

Ansible wait_for

wait_for モジュールを使うと
port が開くまでとか
ファイルが作成されるまで
という条件での動作設定ができる

使い道としては
ssh が使えるようになるまで、とか
インストールログで complete が表示されるまで
というように設定することになる

もし、動作ではなくて時間だけ指定するのなら
command モジュールで sleep を指定する

tasks:
-name: 8000ポートが開くま10秒間隔でチェック
wait_for: port=8000 delay=10

-name: /var/log/foo.log が作成されるまで
wait_for: path=/var/log/foo.log

-name: lock ファイルが消えるまで
wait_for: path=/var/lock/file.lock state=absent

-name: install.log中に “completed”という文字が現れるまで
wait_for: path=/var/foo/install.log search_regex=completed

これらを元にメモすると
ファイルを指定するときには
wait_for: path=対象のパス
で指定

そして、対象ファイルの削除を条件にするなら
state=absent
を指定

検索する文字列を条件にするのなら
search_regex=対象文字列

ポートを間隔で監視したいのなら
port=対象ポート番号 delay=間隔秒数

というかんじになる

wordpress CSSファイルの設定

wordpress CSSファイルの設定

wordpress のCSSファイルを作成します

1
2
3
4
5
6
7
8
9
10
11
12
13
@charset "UTF-8";
/*
Theme Name: snowcorp
Description: snowpool theme test
Author: snowpool
Version: 1.0
*/
body{
  margin: 0;
  font-family: 'メイリオ', 'Hiragino Kaku Fothic Pro',sans-serif;
  line-height: 1.5;
}

とします

コメントアウト部分はテーマに関する情報になります
この部分はダッシュボードでテーマの情報として
出力されます

Theme Name はテーマの名前
Description はテーマの説明
Author は製作者
Author URI は製作者のURL
Version はテーマのバージョンになります

なお css の記述には emmet を入れて
http://docs.emmet.io/cheat-sheet/
にあるようなチートシートをみながら記述すると効率的です

次に常に最新のCSSを読み込むようにします
これはキャッシュの影響でCSSが最新ではない
ということを防ぐためです

1
<link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>">

に追記します

1
?ver=<?php echo date('U'); ?>

を加えることでURLが別のファイルと認識するようになります

1
<link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>?ver=<?php echo date('U'); ?>">

として保存します

次に関数を書くファイルを作成します

functions.php を作成し
内容は php 開始タグだけにします

1
<?php

閉じタグを付けないのは、トラブル防止のためです

せっかくなので、これも github に保存します

1
2
3
4
git add style.css
git add functions.php
git commit -m "style.css functions.php 追加"
git push origin master

これで保存できました

wordpress テンプレファイル作成

wordpress テンプレファイル作成

ベースとなるテンプレファイルを作成し
これを元にテンプレを作成します

header.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>
      <?php wp_title('|', true, 'right'); ?>
      <?php bloginfo('name'); ?>
    </title>
 
    <meta name="viewport" content="width=device-width,  initial-scale=1.0">
 
    <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>">
    <?php wp_head(); ?>
  </head>
  <body <?php body_class(); ?>>

index.php と single.php は

1
2
3
4
<?php get_header(); ?>
 
 
<?php get_footer();  ?>

fotter.php は

1
2
3
<?php wp_footer(); ?>
</body>
</html>

としました

せっかくなので
github に保存しておくことにします

1
2
git clone git@github.com:Snowpooll/wordpress_test.git
cd wordpress_test/

で移動します

次にファイルを git add で追加します
複数あるので、これはスペース区切りで追加できますが
拡張子ですべて選択するほうが楽なので

1
2
cp ../*.php .
 git add *.php

としました

そして commit します

1
git commit -m "テンプレファイル追加"

そしてこれを

1
git push origin master

で反映します

これで github に保存できました

playbook の解説メモ

playbook の解説メモ

playbook は大きくわけて3つに別れます

tartget セクション
これは実行対象の設定

vars セクション
これは変数の設定

tasks セクション
これは実行する taskの設定

target セクションは
hosts: 対象ホスト
remote_user: 対象ユーザ
sudo: sudo を使うならyes 使わないのなら no

の部分になります

vars セクションでは
変数の設定をしますが
vars_prompt:
を使うと
変数の値をユーザに入力させることができます
これはユーザ名とかパスワードを入力するときに使えます

実験として

1
vim add.yml

として内容を

1
2
3
4
5
6
7
8
9
10
---
- hosts: all
  sudo: yes
#  vars:
#    username: snowpool
  vars_prompt:
    username: "Enter username"
  tasks:
    - name: add a new user
      user: name={{username}}

として

1
ansible-playbook add.yml -K

とするとユーザ名を入力するようになります

1
2
sudo password:
Enter username: :

となり

入力したユーザが追加されます

vagrant ではないので、実行時に -K オプションをつけて
sudo パスワードを入力するようにします

なお、
vars:

vars_prompt:
で設定した変数を使うときには
変数名を
{{}}で囲みます

今回なら
username が変数名なので
{{username}}
となります

ansible 設定ファイルの作成

ansible 設定ファイルの作成

毎回 -i オプションをつけるというのは
間違いやすいので
設定ファイルを作成し、指定せず実行できるようにします

1
vim ansible.cfg

でファイルを作ります

1
2
[defaults]
hostfile = ./hosts

として保存します

前回は

1
ansible all -i hosts -m command -a "uptime"

としましたが、
今回は -i hosts を省略して実行してみます

1
ansible all -m command -a "uptime"

これで実行しても同じ結果になります

これで簡単にできるようになったので
次は playbook と呼ばれる処理を記述したものを作成
これを実行するようにします

今回はコマンドを実行しましたが
Ansible の場合
コマンドではなく
モジュールとよばれる動作をまとめたものを使えます

そして、このモジュールは
task
というモジュールに引数をまとめた設定として作成できます

playbook とは
このtask つまり行う処理をまとめたものです

コマンドをまとめていろいろ行う
シェルスクリプトのようなものです

この playbook は YAML 形式で書きます

YAML の書き方の詳細については
プログラマーのための YAML 入門 (初級編)


ドットインストールのYAML入門

が参考になります

書き方メモとしては
行頭に – を書くとシーケンスという配列になり

空白2つぐらいでインデントによるデータ階層構造になります
インデントにtab は使えないので注意

あとはマッピングといって半角スペースでインデントすると
キーと値のペアのハッシュになります

コメントアウトは # になりますので
このあたりはシェルスクリプトに似てます

playbook の項目としては
hosts: 対象ホスト名

sudo: 管理者権限について yes no を指定
必要なら yes

remote_user
実行ユーザ名

vars:
変数の指定

tasks: モジュールの指定
ここへ -name: をつけることで task の名前を指定できます
どちらかというと git のコメントのようなものです

モジュールについては
公式ドキュメントを見ます
http://docs.ansible.com/ansible/modules_by_category.html

この中からやりたいことに対応したモジュールを使います

例えば、
AnsibleをUbuntuのローカルで使う

のように git をインストールしたいのなら

apt – Manages apt-packages

を使用します

今回の場合
apt: pkg=

パッケージのビルド依存関係をインストール
となります

とりあえず git のインストールをしてみます

1
vim git.yml

として
内容を

1
2
3
4
5
6
7
---
 - hosts: develop
   user: snowpool
   tasks:
     - name: "apt-get install git"
       apt: pkg=git
       sudo: yes

として保存します

playbook を実行するには
ansible-playbook コマンドを使います

1
ansible-playbook git.yml -K

とすると
作成した git.yml を実行します

このとき -K をオプションでつけると
sudoのパスワードを要求するようになります
このKは大文字です
これを忘れると、そのまま止まったままになってしまうので
注意が必要です

なお、ansible.cfg で hosts ファイルを指定しているので
インベントリファイルの指定は必要ありません

ansible で ubuntu の設定(初期設定)

ansible で ubuntu の設定(初期設定)

最近、ノートパソコンでログインできなくなったため
今度開発環境などを設定するときに
効率的にできるように
Ansible で設定するようにします

まずはテストとして
Virtualbox で Ubuntu 14.04 6bit をインストール
これに実験していきます
ansible install

まずは Ansible をインストールするため

1
2
3
sudo apt-add-repository ppa:rquillo/ansible
sudo apt-get update
sudo apt-get install ansible

でインストール

Ansibleを使うには
インベントリファイル
対象ホストをまとめたもの

playbook
taskとよばれる操作をまとめたもの

ansible.cfg
Ansible の設定を記述したもの

この3つが必要

インベントリファイルは
ini形式で記述する

このファイル形式については
INIファイルの基礎知識

を参考に
コメントアウトは
行頭に ; で行うことになる

インベントリファイルができればとりあえずは実行はできる

ファイルをまとめてわかりやすくするため

1
2
mkdir ansible_test
cd ansible_test/

として、ファイルの置き場を作成しておきます

次に実験で Virtualbox にインストールした
仮想マシンへ行うけど
インストールしたばかりの ubuntu では
ssh での接続ができないため
virtualbox 側の ubuntu にログインし
端末を ctrl + Alt + t で起動し

1
sudo apt-get install openssh-server

で ssh 接続できるようにする

次にネットワーク設定を
NATから
ブリッジアダプターに変更

ansible

次に

1
ifconfig

でIPアドレスを確認

ansible2

次に ssh で実際に接続できるかを確認

ユーザ名が同じなら

1
ssh 192.168.128.178

というようにIPアドレスをいれれば
パスワードを聞かれるので、合っていれば接続できる

1
2
3
The authenticity of host '192.168.128.178 (192.168.128.178)' can't be established.
ECDSA key fingerprint is ce:92:27:fe:a3:9b:3b:bb:1d:df:89:7e:45:ae:e4:00.
Are you sure you want to continue connecting (yes/no)?

と聞かれるので yes を入力

これでログインできれば成功なので
ctrl + d でログアウト

ssh での接続ができるのを確認できたので
公開鍵認証でインストールできるようにします

1
ssh-keygen -t rsa

を実行すると

1
2
Generating public/private rsa key pair.
Enter file in which to save the key (/home/snowpool/.ssh/id_rsa):

となりファイル名を求められます
そのままだと id_rsa になります

今回は ansibleにします

次に

1
Enter passphrase (empty for no passphrase):

となりパスワードを設定するのですが
空欄でもOKです
とりあえずパスワードは練習ということでなしです

すると

1
Enter same passphrase again:

となり。確認のためもう一回いれてと言われますので
もう一回入力します

これで
ansible
ansible.pub
の2つのファイルが作成されます

この.pub がついている方を
仮想マシンに転送します

その前に、転送するときにIPを毎回うつのは面倒で
間違えやすいので

1
vim ~/.ssh/config

で設定ファイルを作成し

1
2
Host develop
 HostName 192.168.128.178

とすることで
IPアドレスではなく、develop でアクセスできるようにします

1
ssh-copy-id develop

とするとコピーできるのですが
このときにログインパスワードを求められます

1
2
3
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys
snowpool@192.168.128.178's password:

これで成功するとログインするときに

1
ssh develop

とするだけでパスワードなしでログインができるようになります

ログインできたら
ctrl + d でログアウトしておきます

次に接続に必要なインベントリファイルを作成します

1
vim hosts

でインベントリファイルを作成します

1
2
3
[develop]
;install ip address
192.168.128.178

というように
[グループ名]
というようにわけることができます

まずは実験で、システムの稼働時間を表示する
uptime コマンドを実行

uptime コマンドについては
http://cmd.misty.ne.jp/refference/uptime.html
を参考に

1
ansible all -i hosts -m command -a "uptime"

とすると
対象ファイル、今回なら
ubuntu 14.04 で uptime コマンドが
実行されます

-i hosts というようにインベントリファイルを
指定しないと
No hosts matched
と表示されるので注意

成功すると文字が緑色で表示されます

ansible3