设为首页 收藏本站
查看: 1028|回复: 0

[经验分享] Ansible 一步一步从入门到精通(三)

[复制链接]

尚未签到

发表于 2018-7-30 07:43:23 | 显示全部楼层 |阅读模式
  一:构建测试环境,如下
  安装上一篇博客的方法配置3台服务器
  我的地址分别是:
  10.0.0.130(app1)
  10.0.0.131(app2)
  10.0.0.141(db)
DSC0000.jpg

  配置资源文件
[example]  
10.0.0.132
  

  
[app]
  
10.0.0.130
  
10.0.0.131
  

  
[db]
  
10.0.0.141
  

  
[multi:children]
  
app
  
db
  二:AD-HOC命令使用
  查看每个服务器的主机名
$ ansible multi -a "hostname"  使用一个线程执行命令,相当于顺序在每个服务器上运行(默认5个线程执行)
$ ansible multi -a "hostname" -f 1  查看你的环境情况:
  查看磁盘使用情况
$ ansible multi -a "df -h"  查看内存使用情况
$ ansible multi -a "free -m"  查看时间是否准确
$ ansible multi -a "date"  如果时间不一致,可以使用ntpdate 同步一下
  $ ansoble multi -a "ntpdate cn.pool.ntp.org"
  三:配置两台应用服务器
  前提是安装好epel源和centos base源(可以使用阿里云的镜像源)
$ ansible app -m yum -a "name=MySQL-python state=present"  
$ ansible app -m yum -a "name=python-setuptools state=present"
  
$ ansible app -m easy_install -a "name=django"
  测试django是否安装正确
root@~#  ansible app -a "python -c 'import django; print django.get_version()'"  
10.0.0.131 | success | rc=0 >>
  
1.10
  

  
10.0.0.130 | success | rc=0 >>
  
1.10
  四:配置数据库服务器
$ ansible db -m yum -a "name=mysql-server state=present"  
$ ansible db -m service -a "name=mysqld state=started enabled=yes"
  配置数据库用户django,并且赋予权限
$ ansible db  -m yum -a "name=MySQL-python state=present"  
$ ansible db  -m mysql_user -a "name=django host=% password=12345 \
  
priv=*.*:ALL state=present
  五:限制命令只在一个服务器上生效
$ ansible app  -a "service ntpd restart" --limit "10.0.0.132"# Limit hosts with a simple pattern (asterisk is a wildcard).  
$ ansible app  -a "service ntpd restart" --limit "*.4"
  
#以4结尾的ip地址,将会执行命令
# Limit hosts with a regular expression (prefix with a tilde).  
$ ansible app  -a "service ntpd restart" --limit ~".*\.4"
  
#使用正则表达式匹配主机
  六:管理系统用户和组
  系统添加admin组
$ ansible app  -m group -a "name=admin state=present"  系统添加jwh566用户
$ ansible app  -m user -a "name=jwh5566 group=admin createhome=yes"  删除系统用户
$ ansible app  -m user -a "name=jwh5566 state=absent remove=yes"  七:管理文件和目录
  获取文件的信息,权限,所有者等
$ ansible multi -m stat -a "path=/etc/environment"  复制文件到服务器
$ ansible multi -m copy -a "src=/etc/hosts dest=/tmp/hosts"  从服务器接收文件(接收到控制机)
$ ansible multi  -m fetch -a "src=/etc/hosts dest=/tmp"  创建目录
$ ansible multi -m file -a "dest=/tmp/test mode=644 state=directory"  创建符号链接
$ ansible multi -m file -a "src=/src/symlink dest=/dest/symlink \  
owner=root group=root state=link"
  删除目录和文件
$ ansible multi -m file -a "dest=/tmp/test state=absent"  八:运行后台任务
  -B <seconds> 指定运行任务的最大时间
  -P <seconds> 指定多久时间去一次服务器查看任务执行的状态
  异步更新服务器(根据系统情况,可能需要很长时间)
$ ansible multi  -B 3600 -a "yum -y update"  
    background launch...
  

  
    10.0.0.132 | success >> {
  
    "ansible_job_id": "763350539037",
  
    "results_file": "/root/.ansible_async/763350539037",
  
    "started": 1
  如果说后台任务还在运行,使用下面的命令查看运行状态
$ ansible multi -m async_status -a "jid=763350539037"  九:检查日志文件
$ ansible multi  -a "tail /var/log/messages"  如果需要grep,需要使用shell模块
root@~#  ansible multi  -m shell -a "tail /var/log/messages | \  
grep ansible-command | wc -l"
  
10.0.0.131 | success | rc=0 >>
  
2
  

  
10.0.0.130 | success | rc=0 >>
  
2
  

  
10.0.0.141 | success | rc=0 >>
  
6
  这个命令显示每台服务器分别执行了几次ansible命令
  十:管理crontab 任务
$ ansible multi  -m cron -a "name='daily-cron-all-servers' \  
hour=4 job='/path/to/daily-script.sh'"
  可以使用这个配置ntp 任务
  删除crontab任务
$ ansible multi  -m cron -a "name='daily-cron-all-servers' state=absent"  总结:
  第三章,到此为止,你已经能够配置一个常用的基础架构,并且能够熟练使用常用的模块,
  下一章,将会深入介绍playbook的使用。 DSC0001.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-543277-1-1.html 上篇帖子: ansible管理nginx配置文件 下篇帖子: Ansible 一步一步从入门到精通(四)上
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表