이상하게 wordpress 버전이 올라가면 docker용 wordpress 버전도 함께 올라갈 텐데 아무리 최신 docker image를 받아 container를 만들어도 wordpress admin 계정에 들어가면 wordpress를 업데이트 해야 한다고 한다. docket store(http://store.docker.com)에 가면 분명히 wordpress 최신 버전으로 패키징되어 있는 데…
혹시나 하고 ansible-playbook을 보니 /var/www/html에 마운트되는 위치에 이전 버전의 wordpress 파일들이 존재하고 있었다.
volumes: - "/Users/cychong/Documents/wordpress/html:/var/www/html" - "/Users/cychong/Documents/wordpress/uploads:/var/www/html/wp-content/uploads" - "/Users/cychong/Documents/wordpress/conf/php_uploads.ini:/usr/local/etc/php/conf.d/uploads.ini" 바로 첫번째 줄이 문제를 유발하고 있는 곳… 내가 왜 굳이 저렇게 했을까 생각해 보니 저 디렉토리에 바로 wp-content가 있고, 그 아래 themes와 plugins가 있다.
update homebrew mbpr15:mp3 cychong$ ansible all -m homebrew -a update_homebrew=yes localhost | SUCCESS => { "changed": true, "msg": "Homebrew updated successfully." } mini2 | SUCCESS => { "changed": true, "msg": "Homebrew updated successfully." } upgrade all packages mbpr15:mp3 cychong$ ansible all -m homebrew -a update_homebrew=yes -a upgrade_all=yes localhost | SUCCESS => { "changed": true, "msg": "Homebrew upgraded." } mini2 | SUCCESS => { "changed": true, "msg": "Homebrew upgraded." } install a package mbpr15:mp3 cychong$ ansible all -m homebrew -a name=neovim -a state=present mbpr15:~ cychong$ cat install_brew_neovim.
YAML file state:absent 는 현재 존재하는 container를 중지시키고, 삭제한다. 단순히 stop만 시키려면 state:stopped로 지정하면 된다.
pull: yes 옵션을 사용하면 항상 최신 image를 pull한다고 한다.
recreate Use with present and started states to force the re-creation of an existing container.
mbpr15:ansible cychong$ cat recreate_container_ghost.yaml --- - hosts: mini2 tasks: - name: Stop and remove contianer docker_container: name: ghost state: absent - name: Create ghost Container docker_container: name: ghost image: ghost # always pull the latest image pull: yes state: started recreate: yes volumes: - "/Users/cychong/Dropbox/Apps/ghost/content/:/var/lib/ghost/content" - "/Users/cychong/Dropbox/Apps/ghost/config.
play The goal of a play is to map a group of hosts to some well defined roles, represented by things ansible calls tasks. At a basic level, a task is nothing more than a call to an ansible module
play는 명령을 수행할 대상과 수행할 명령을 모두 포함하고 있다.
playbook playbook은 하나 혹은 이상의 play들의 집합으로 정의한다.
Conventional template of playbook --- - hosts: XXX optoins.... tasks: -name: YYY MODULE_NAME : MODULE_ARGS -name : ZZZ MODULE_NAME: MODULE_ARGS .