ritarock’s blog

プログラミングとか映画とか趣味とか

ansibleでmacbookを管理

はじめに

先日、macbookが起動しなくなり仕方なくクリーンインストールのですが、

今後のことも考えてmacbookの環境を管理します。

環境

brew と brew caskは導入済み
$ brew install ansible
上記、コマンドを実行済み
$ ansible --version
ansible 2.5.0

今回用意した2つのファイル

hosts↓

localhost

localhost.yml↓

---
  - hosts: localhost
    connection: local
    gather_facts: no
    become: no

    vars:
      homebrew_packages:
        - name: python
        - name: fish
        - name: git
        - name: node
        - name: pyenv
        - name: tree
        - name: vim

      homebrew_cask_packages:
        - name: google-chrome
        - name: google-drive
        - name: virtualbox
        - name: vagrant
        - name: iTerm2
        - name: atom
        - name: docker
        - name: evernote
        - name: dropbox
        - name: slack

    tasks:
        - name: update homebrew
          homebrew: update_homebrew=yes

        # brew
        - name: install homebrew_packages
          homebrew:
            name={{ item.name }}
          with_items: '{{ homebrew_packages }}'

        # homebrew_cask
        - name: install homebrew_cask_packages
          homebrew_cask:
            name={{ item.name }}
          with_items: '{{ homebrew_cask_packages }}'
$ ansible-playbook -i hosts localhostsyml

これで、homebrew_packagesとhomebrew_cask_packagesに記述したソフトウェアをインストールできる

ソースはここ

gitとか.vimrcとかのconfigもansibleで自動化できるようにしよう・・・

それはqiitaに載せようかな・・・

Dockerのインストールからコンテナ作成まで

主に備忘になります

開発環境

ubuntu/trusty64

Dockerのインストール

$ sudo apt-get update
$ sudo apt-get -y install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository -y  \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install -y docker-ce

Dockerコマンド

ローカルに保存されたdockerイメージの一覧を取得

$docker images

docker hubにあるイメージを検索

$docker search <イメージ>

docker hubにあるイメージをローカルに取得する

$docker pull <イメージ>

コンテナでプロセスを起動する

$docker run -it <イメージ> /bin/bash

起動したコンテナはexitすれば自動的に終了します

プロセスを確認する(停止されたものも含む)

$ docker ps -a

停止されたコンテナの削除

$ docker rm <コンテナid>

idは一意なので頭の4桁程度入力すればOK

何度もコンテナの起動と停止を行なっていると大量にプロセスが生まれるのでそれを避けたい

コンテナを全て削除

$ docker rm $(docker ps -aq)

exitと同時にコンテナの削除

$docker run --rm -it <イメージ> /bin/bash

ポートをホスト側に公開して起動

$ docker run -it -p 80:80 <イメージ> /bin/bash

外部ファイルを取り込む

$ docker run -it -v <ホスト側のパス>:<コンテナ側のパス> <イメージ> /bin/bash

Dockerfile作成してからの流れ

Dockerfileからイメージを作成

$ docker build -t <作成するイメージ名> .

作成したイメージからコンテナを起動

$ docker run --name <起動するコンテナ名> -d -p <イメージ名>

コンテナの停止

$ docker stop <コンテナ名>

hexoとやらを試してみた

hexo

hexo.io

githubのアカウントあれば誰でもブログを公開できるとのことです ということで試してみました

まずはリポジトリ作成

[username].github.io というリポジトリを作成

hexoの準備

公式通りに hexoをグローバルにインストール

# npm install hexo-cli -g

以下のコマンドでディレクトリを作成します

# hexo init blog

作成されたディレクトリに移動して、モジュールをインストールします

# cd blog
# npm install

インストールできたら、以下のコマンドで起動します

# hexo server

http://localhost:4000/にアクセスすると雛形ができてます 簡単ですね

githubで公開

作成されたディレクトリ配下にあるconfig.ymlを弄ります config.ymlではサイトのタイトル等を変更することができます

deploy:
  type: git
  repo: https://github.com/[username]/[username].github.io.git
  branch: master

編集したら、以下のコマンドでデプロイ

hexo deploy -g

エラーがでました。 どうやら、hexo-deployer-gitというモジュールをインストールしないといけないようです。ってことでインストール

npm install hexo-deployer-git --save

改めてデプロイ

hexo deploy -g

https:[username].github.io/にアクセスすると先程http://localhost:4000/でみたページにアクセス出来ます

※ちなみに反映にそれなりに時間が掛かります

テーマの導入

hexo.io

こちらのサイトから気に入ったプラグインcloneします

例えば、こちらなら github.com READMEにあるようにコマンドを実行します

# git clone https://github.com/mkkhedawat/clexy themes/clexy
# git clone https://github.com/mkkhedawat/clexy themes/clexy
# yarn remove hexo-renderer-ejs
# yarn add hexo-renderer-jade
# yarn add hexo-prism-plugin

_config.ymlを編集

prism_plugin:
  mode: 'preprocess'    # realtime/preprocess
  theme: 'default'
  line_number: false    # default false
theme: clexy

デプロイ

hexo deploy -g

記事の投稿

以下のコマンドを実行

# hexo new post 新規ページ

source/post/新規ページ.mdが作成されているので弄ってpushすれば記事が投稿できます

以上です。

ところで、hexoってなんて読むんですかね・・・?

JavaScriptの非同期処理(Promise)

Promise.resolve().then(function() {
    return new Promise(function(fulfilled, rejected) {
        //処理1
        fulfilled();
    });
}).then(function() {
    return new Promise(function(fulfilled, rejected) {
        //処理2
        fulfilled();
    });
}).then(function() {
    return new Promise(function(fulfilled, rejected) {
        //処理3
    });
})

Evernoteに以前メモってたので・・・
たぶん、qiitaかどっかの記事だと思われ・・・

vagrant の共有ディレクトリでnpm installがエラーを吐く時

sudo npm install --no-bin-links

--no-bin-linksをつければうまくいく

ubuntuにlinuxbrew入れてみた

sudo apt install -y build-essential curl git python-setuptools ruby
git clone https://github.com/Linuxbrew/brew.git ~/.linuxbrew

~/.bashrcに以下を追記

export PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"
export XDG_DATA_DIRS="$HOME/.linuxbrew/share:$XDG_DATA_DIRS"

exit ←重要

brew doctor

vagrant + Ubuntu 16.04 LTS でDjango開発環境を構築

はじめに

vagrantを使ってDjango開発環境を構築します

vagrantUbuntu 16.04 LTSの準備

ubuntu 16.04 LTSのboxを持っていることを前提とします。

Vagrantfileの作成

$ vagrant init ubuntu/xenial64

作成されたVagrantfileのポートを設定します

$ vim Vagrantfile

下記の部分を変更

config.vm.network "forwarded_port", guest: 8000, host: 8000

起動

$ vagrant init ubuntu/xenial64

接続

$ vagrant ssh

Djangoのインストール

pipのインストール

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py
$ sudo pip install Django

Ubuntu 16.04 LTSにはデフォルトでpython3.5.2が入っています

バージョンの確認

$python3 -m django --version
1.11.5

Djangoを使ってみる

プロジェクトの作成

$ django-admin startproject mysite

作られたプロジェクトを見てみる

$ tree
.
├── get-pip.py
└── mysite
    ├── db.sqlite3
    ├── manage.py
    └── mysite
        ├── __init__.py
        ├── __pycache__
        │   ├── __init__.cpython-35.pyc
        │   ├── settings.cpython-35.pyc
        │   ├── urls.cpython-35.pyc
        │   └── wsgi.cpython-35.pyc
        ├── settings.py
        ├── urls.py
        └── wsgi.py

※treeコマンド入ってなければ以下のコマンドでインストールしてください

$ sudo apt-get install tree

作成したプロジェクトのディレクトリに移動

$ cd mysite

Djangoを動かしてみる

python3 manage.py runserver 0.0.0.0:8000

ローカルマシンからアクセス http://127.0.0.1:8000/

It worked!

以上です。