65、ansible實戰

1、安裝ansible

rpm -ivh https://mirrors.aliyun.com/epel/6Server/x86_64/Packages/e/epel-release-6-8.noarch.rpm

yum -y install ansible


ssh-keygen -t rsa -P ''

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]


2、ansible主機配置

grep -v ^# /etc/ansible/hosts |grep -v ^$

[web]

node1.ha.com

node2.ha.com

[mysql]

node3.ha.com

node4.ha.com


3、ansible簡單應用

查看命令幫助

ansible-doc -s group

檢測主機是否在線

ansible all -m ping

在遠程主機執行命令並返回結果[-m command]可省

ansible all [-m command]-a 'date'

複製文件

ansible mysql -m copy -a "src=/etc/sysconfig/network-scripts/ifcfg-eth0 dest=/tmp"

crontab計劃任務

ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="usr/sbin/ntpdate ntp2.aliyun.com"'

創建用戶組和用戶

ansible all -m group -a "gid=306 system=yes name=mysql"

ansible all -m user -a "group=mysql name=mysql uid=306 shell=/sbin/nologin"

刪除用戶和用戶組

ansible all -m user -a "state=absent name=mysql"

ansible all -m group -a "state=absent name=mysql"

yum安裝軟件

ansible all -m yum -a "state=present name=httpd"

啓動服務

ansible all -m service -a "state=started name=httpd enabled=yes"

停止服務

ansible all -m service -a "state=stopped name=httpd enabled=no"

yum卸載軟件

ansible web -m yum -a "state=removed name=httpd"


4、ansible高級應用ansible-playbook

安裝httpd,通過控制機複製配置文件到被控制機,並重啓被控制器上的httpd服務

cat httpd.yaml 

- hosts : all

  remote_user : root

  tasks :

  - name : ensure apache latest version

    yum  : state=latest name=httpd

  - name : apache configure file

    copy : src=/root/httpd.conf dest=/etc/httpd/conf/httpd.conf force=yes

    notify :

    - restart httpd

  handlers :

  - name : restart httpd

    service : name=httpd state=restarted


ansible-playbook httpd.yaml

ansible all -a 'rpm -q httpd'


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章