- name: copy index.html

  copy:

    src: files/index.html

    dest: /usr/share/nginx/html/index.html

    mode: "0644"

    

    

mode 매개 변수를 0으로 시작하지 않거나 문자열로 인용하면 앤서블은 이 값을 8진수가 아닌 10진수로 해석하고 예상한 대로 파일 사용 권한을 설정하지 않는다. 자세한 내용은 깃허브(http://bit.ly/1GASfbl)를 참조한다.







'Ansible-Puppet-Chef' 카테고리의 다른 글

앤서블의 호스트 지정 패턴  (0) 2019.01.19
ansible-vault 간단 커맨드  (0) 2019.01.19
ansible-galaxy  (0) 2019.01.14
[ansible] ubuntu 16에 no_proxy가 안먹는 이슈가  (0) 2019.01.09
ansible 설치 (virtualenv)  (0) 2018.12.18
Posted by '김용환'
,

ansible-galaxy

Ansible-Puppet-Chef 2019. 1. 14. 14:12



깃허브 사용자인 bennojoy가 작성한 ntp 롤을 설치하고 싶다고 가정하자. 이는 시간을  NTP 서버와 동기화하도록 호스트를 설정하는 롤이다.


다음 설치 커맨드로 롤을 설치할 수 있다.



$ ansible-galaxy install --roles-path ./roles bennojoy.ntp


결과는 다음과 같다.


- downloading role 'ntp', owned by bennojoy

- downloading role from https://github.com/bennojoy/ntp/archive/master.tar.gz

- extracting bennojoy.ntp to /Users/samuel.kim/dev/commerce/111/roles/bennojoy.ntp

- bennojoy.ntp (master) was installed successfully

'Ansible-Puppet-Chef' 카테고리의 다른 글

ansible-vault 간단 커맨드  (0) 2019.01.19
[ansible] copy mode 주의사항  (0) 2019.01.14
[ansible] ubuntu 16에 no_proxy가 안먹는 이슈가  (0) 2019.01.09
ansible 설치 (virtualenv)  (0) 2018.12.18
[ansible] lineinfile  (0) 2018.07.05
Posted by '김용환'
,



ubuntu 16에 no_proxy가 안먹는 이슈가 있을 수 있다. 


https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1575877



$ vi /etc/profile


setproxy() {

...

}





따라서 필요하다면 apt-get update와 install을 아래와 같이 설치해야 할 수도 있다.



- name: Update cache

  shell: "source /etc/profile && setproxy sudo -E apt-get update"

  args:

    chdir: /kakao/source

    executable: /bin/bash


- name: Install Nginx

  shell: "source /etc/profile && setproxy sudo -E apt-get install nginx"

  args:

    chdir: /kakao/source

    executable: /bin/bash






'Ansible-Puppet-Chef' 카테고리의 다른 글

[ansible] copy mode 주의사항  (0) 2019.01.14
ansible-galaxy  (0) 2019.01.14
ansible 설치 (virtualenv)  (0) 2018.12.18
[ansible] lineinfile  (0) 2018.07.05
[ansible] 배포될 서버의 호스트명 얻는 방법  (0) 2018.04.02
Posted by '김용환'
,



앤서블 설치 방법


1. 패키지 관리자 (brew나 pip 등)를 사용한다.


$ sudo pip install ansible



2. virtualenv에 연동할 수 있다.


$ wget https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py 

$ python get-pipsi.py 

$ pipsi install ansible





'Ansible-Puppet-Chef' 카테고리의 다른 글

ansible-galaxy  (0) 2019.01.14
[ansible] ubuntu 16에 no_proxy가 안먹는 이슈가  (0) 2019.01.09
[ansible] lineinfile  (0) 2018.07.05
[ansible] 배포될 서버의 호스트명 얻는 방법  (0) 2018.04.02
[ansible] become  (0) 2018.02.01
Posted by '김용환'
,




ansible에 lineinfile(https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html)이라는 모듈이 있다.



- name: replace config

  become: true

  lineinfile:

    path: /usr/local/zookeeper/conf/zoo.conf

    regexp: '^#maxClientCnxns'

    line: 'maxClientCnxns'






Posted by '김용환'
,


ansible 설정 파일 배포시 배포 서버의 host 이름을 얻고 싶다면 다음과 같이 ansible_fqdn을 사용해야 한다. 



-Djava.rmi.server.hostname={{ ansible_fqdn }}"




{{ host }}, {{ ansible_eth0.ipv4.address }} 는 안된다..ㅡ.ㅡ;;


Posted by '김용환'
,



ansible의 become은 sudo를 사용할 수 없이 실제 해당 유저로 로그인함을 의미한다.


http://docs.ansible.com/ansible/latest/become.html



ansible 예제처럼 특정 사용자로 인증 후 사용될 수 있다.


- name: Run a command as the apache user
  command: somecommand
  become: true
  become_user: apache




만약 root로 접근하고 싶다면, 미리 장비에서 root로 접근할 수 있는 설정이 되어 있어야 잘 동작한다.


www@aaa~$ sudo -i

root@aaa:~#



다음은 playbook 예제이다.




- name: create /home/www

  become: yes

  become_method: sudo

  file: path=/home/www state=directory owner=www group=www




- hosts: webservers

  tasks:

    - service: name=nginx state=started

      become: yes

      become_method: sudo



Posted by '김용환'
,




ansible-playbook을 실행하다가 ERROR! Specified --limit does not match any hosts 에러가 발생했다.


$ ansible-playbook -i test-stats docker.yml 


호스트 설정이 빠져서 발생한 것이니. host 설정을 살펴본다.


[docker] 

abc.test01.i.google.com



Posted by '김용환'
,


ansible 프로젝트 이름은.. 노래 음악이다.



https://github.com/ansible/ansible/blob/devel/RELEASES.txt

Posted by '김용환'
,


capistrano에서 서버 팜에 대해 console 커맨드를 실행할 수 있다. 


http://capistranorb.com/documentation/advanced-features/console/


레시피 파일에 간단히 추가하면 된다. 


require 'capistrano/console'



이제 실행해보자. 

$ cap alpha console
..
capistrano console - enter command to execute on alpha
alpha> 



아래와 같이 코드를 실행하면 다음과 같다. 


alpha>  echo $(hostname && uname -r )


abc.google.com 2.6.32-431.el6.x86_64





Posted by '김용환'
,