1. 程式人生 > >ansible實踐4- 管理配置文件

ansible實踐4- 管理配置文件

ini 重啟nginx etc div 軟件包 nbsp cal Owner 關於

生產環境中大多時候是需要管理配置文件的,安裝軟件包只是在初始化環境的時候用一下。下面我們來寫個管理nginx配置文件的playbook mkdir -p /etc/ansible/nginx_config/roles/{new,old}/{files,handlers,vars,tasks} 其中new為更新時用到的,old為回滾時用到的,files下面為nginx.conf和vhosts目錄,handlers為重啟nginx服務的命令 關於回滾,需要在執行playbook之前先備份一下舊的配置,所以對於老配置文件的管理一定要嚴格,千萬不能隨便去修改線上機器的配置,並且要保證new/files下面的配置和線上的配置一致 先把nginx.conf和vhosts目錄放到files目錄下面 cd /usr/local/nginx/conf/ cp -r nginx.conf vhosts /etc/ansible/nginx_conf/roles/new/files/ vim /etc/ansible/nginx_config/roles/new/vars/main.yml //定義變量
nginx_basedir: /usr/local/nginx vim /etc/ansible/nginx_config/roles/new/handlers/main.yml //定義重新加載nginx服務 - name: restart nginx shell: /etc/init.d/nginx reload vim /etc/ansible/nginx_config/roles/new/tasks/main.yml //這是核心的任務 - name: copy conf file copy: src={{ item.src }} dest={{ nginx_basedir }}/{{ item.dest }} backup=yes owner=root group=root mode=0644
with_items: - { src: nginx.conf, dest: conf/nginx.conf } - { src: vhosts, dest: conf/ } notify: restart nginx vim /etc/ansible/nginx_config/update.yml // 最後是定義總入口配置 --- - hosts: testhost user: root roles: - new 執行: ansible-playbook /etc/ansible/nginx_config/update.yml 而回滾的backup.yml對應的roles為old rsync -av /etc/ansible/nginx_config/roles/new/ /etc/ansible/nginx_config/roles/old/ 回滾操作就是把舊的配置覆蓋,然後重新加載nginx服務

ansible實踐4- 管理配置文件