ansible基本操作
ansible基本操作
?
ansible模塊
1、主機連通性測試
ansible qf -m???ping
?
2、command模塊??,默認就是command模塊
?
3、shell模塊
ansible qf??-m??shell??-a??'cat??/etc/passwd | grep "root"'
?
4.copy模塊
====================
- hosts: qf
??vars:
????IP:?"{{ ansible_ens33['ipv4']['address'] }}"
??tasks:
??-?name: 將原有的hosts文件備份
????shell:?mv /etc/hosts /etc/hosts_bak
??-?name: 將ansible端的hosts復制到各自機器上
????copy:?src=/root/hosts dest=/etc/ owner=root group=root mode=0644
??-?name: 將新的hosts文件后面追加各自機器內網和hostname
????lineinfile:?dest=/etc/hosts line="{{ IP }} {{ ansible_hostname }} "
=======================
??-?name: copy {{ rpmname }}.conf???
????copy:?src=/tmp/{{ rpmname }}.conf.j2 dest=/etc/{{ rpmname }}/{{ rpmname }}.conf??backup=yes
ansible qf -m copy??-a??'content="jfsakf\n" dest=/data/name mode=666'
?
5.file模塊
ansible qf -m??file -a 'path=/data/app state=directory'
??-?name: 創建目錄
????file:?path=/data/a state=directory
???????file: path=/data/a state=absent??//刪除
6.fetch模塊
ansible qf -m fetch -a 'src=/data/hello.txt dest=/data'??//只能是文件
?
7.cron計劃任務模塊??????
ansible qf -m cron -a 'name="ntp update every 5 min" minute=*/5 job="/sbin/ntpdate 172.17.0.1 &> /dev/null"'??????
ansible qf -m cron -a 'name="df everyday" hour=15 job="df -lh >> /tmp/disk_total &> /dev/null" state=absent'
??????
8.yum模塊
name=??#所安裝的包的名稱
state =??#present--->安裝, latest--->安裝最新的, absent---> 卸載軟件。
??-?name: install httpd
????yum:?name=httpd state=present
?
9.service模塊
ansible qf -m service -a 'name=nginx state=started enabled=true'
- name: start {{ rpmname }} service
??????service:?name={{ rpmname }} state=started//stopped//restarted
????????
10.user模塊
ansible qf -m user -a 'name=keer uid=11111'
?
11.group模塊
ansible qf -m group -a 'name=sanguo gid=12222'
?
12.script模塊
vim??/tmp/df.sh
chmod??-v??+x??df.sh
ansible web -m script -a '/tmp/df.sh'
?
13.setup模塊
ansible web -m setup -a 'filter="*mem*"'???#查看內存
========================
安裝mariadb服務
---
- hosts: qf
??remote_user:?root
??tasks:
????-?name: install mariadb-server package
??????yum:?name=mariadb-server state=present
????-?name: starting mariadb-server service
??????service:?name=mariadb state=started
============================
---
- hosts: qf
??remote_user:?root
??vars:
????-?rpmname: nginx
??????nginxport:?8080
??tasks:
????-?name: install {{ rpmname }}
??????yum:?name={{ rpmname }} state=present
????-?name: copy {{ rpmname }}.conf
??????template:?src=/tmp/{{ rpmname }}.conf.j2 dest=/etc/{{ rpmname }}/{{ rpmname }}.conf backup=yes
??????notify:?reload
??????tags:?reload{{ rpmname }}
????-?name: start {{ rpmname }} service
??????service:?name={{ rpmname }} state=started
??????tags:?start{{ rpmname }}
?
??handlers:
????-?name: reload
??????service:?name={{ rpmname }} state=restarted
????????
ansible-playbook nginx.yml???&&???ansible qf -m??shell??-a??'ss -tunlp|grep :80'
ansible??qf??-m??shell??-a??'systemctl??stop??nginx'????ansible qf -m??shell??-a??'ss -tunlp|grep :80'
ansible-playbook??nginx.yml??-t??startnginx
===============================================
---
- hosts: qf
??vars:
????IP:?"{{ ansible_ens33['ipv4']['address'] }}"
??tasks:
??-?name: 將原有的hosts文件備份
????shell:?mv /etc/hosts /etc/hosts_bak
??-?name: 將ansible端的hosts復制到各自機器上
????copy:?src=/root/hosts dest=/etc/ owner=root group=root mode=0644
??-?name: 將新的hosts文件后面追加各自機器內網和hostname
????lineinfile:?dest=/etc/hosts line="{{ IP }} {{ ansible_hostname }} "
===========================??????
---
- hosts: qf
??remote_user:?root
??tasks:
????-?name: install {{ rpmname }}
??????yum:?name={{ rpmname }} state=present
????-?name: copy {{ rpmname }}.conf
??????template:?src=/tmp/{{ rpmname }}.conf.j2 dest=/etc/{{ rpmname }}/{{ rpmname }}.conf backup=yes
??????notify:?reload
??????tags:?reload{{ rpmname }}
????-?name: start {{ rpmname }} service
??????service:?name={{ rpmname }} state=started
??????tags:?start{{ rpmname }}
?
??handlers:
????-?name: reload
??????service:?name={{ rpmname }} state=restarted
cp??/etc/keepalived/keepalived.conf??/tmp/keepalived.conf.j2
ansible-playbook??nginx.yml??-e??rpmname=keepalived
=================================??????
template模板
---
- hosts: qf
??tasks:
??-?name: install conf file to centos7
????shell:?cat /etc/redhat-release > /root/aa.txt
????when:?ansible_distribution_major_version == "7"
??-?name: install conf file to centos6
????template:?src=files/nginx.cong.c6.j2
????when:?ansible_distribution_major_version == "6"
??-?name: install web packages
????yum:
??????name:?[ 'tcpdump', 'net-tools' ]
??????state:?present
??-?name: add some groups
????group:?name={{ item }} state=present
????with_items:
??????-?group11
??????-?group12
??????-?group13
??-?name: add some users
????user:?name={{ item.name }} group={{ item.group }} state=present
????with_items:
??????-?{ name: 'user11', group: 'group11' }
??????-?{ name: 'user12', group: 'group12' }
??????-?{ name: 'user13', group: 'group13' }
============================================
[root@server tmp]# vim nginx.conf.j2
????worker_processes??{{?ansible_processor_vcpus }};
????listen???????{{?nginxport }};??????
---
- hosts: qf
??remote_user:?root
??vars:
????-?rpmname: nginx
?????????nginxport: 8888
??tasks:
????-?name: install {{ rpmname }}
??????yum:?name={{ rpmname }} state=present
????-?name: copy {{ rpmname }}.conf
??????template:?src=/etc/{{ rpmname }}/{{ rpmname }}.conf dest=/etc/{{ rpmname }}/{{ rpmname }}.conf.bak backup=yes
??????notify:?reload
??????tags:?reload{{ rpmname }}
????-?name: start {{ rpmname }} service
??????service:?name={{ rpmname }} state=started
??????tags:?start{{ rpmname }}
?
??handlers:
????-?name: reload
??????service:?name={{ rpmname }} state=restarted
~
=============================================
roles???????角色定制
[root@node12 roles]# tree
.
└── nginx
????├──?files
????├──?handlers
????│???└── main.yml
????├──?tasks
????│???└── main.yml
????├──?templates
????│???└── nginx.cong.j2
????└──?vars
????????└──?main.yml
==================================?????????????
vim handlers/main.yml????//觸發器
---
??-?name: reload
????service:?name=nginx state=restarted
========================================??????
vim??tasks/main.yml
---
??-?name: install {{ rpmname }}
????yum:?name={{ rpmname }} state=present
??-?name: copy {{ rpmname }}.conf
????template:?src={{ rpmname }}.conf.j2 dest=/etc/{{ rpmname }}/{{ rpmname }}.conf backup=yes
????notify:?reload
????tags:?reload{{ rpmname }}
??-?name: start {{ rpmname }} service
????service:?name={{ rpmname }} state=started
????tags:?start{{ rpmname }}
=========================================
vim vars/main.yml????//變量
---
nginxport: 9999
rpmname: nginx
========================================
vim??templates/nginx.conf.j2???//模板??//源文件???從nginx配置文件中復制過來的
?
=======
在roles統計目錄
vim??/nginx_test.yml
---
- hosts: qf
??roles:
????-?nginx
ansible-playbook nginx_test.yml
?
=============================================
轉載于:https://blog.51cto.com/14181888/2379777
總結
以上是生活随笔為你收集整理的ansible基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习python第四天内容回顾
- 下一篇: 4月17日云栖精选夜读 | 在阿里做了五