今天在学习阿里云提供的免费ansible视频课程,特此作个笔记,虽然内容比较基础,可是挺重要的内容。node
/etc/ansible/ansible.cfgnginx
remote_tmp 远程临时目录,默认为~/.ansible/tmpshell
local_tmp 本地临时目录,默认为~/.ansible/tmp缓存
forks 并发执行的数量,默认为5并发
host_key_checking = False 是否验证对方的公钥,建议取消注释app
log_path=/var/log/ansible.log 建议开启ansible的执行日志ssh
ansible --help学习
ansible-docfetch
ansible-doc -l 列出可用模块ui
ansible-doc ping 查看模块的文档
ansible-doc -s ping 大体了解模块的文档
ansible <host-pattern> [-m module_name] [-a args]
ansible group1 --list
ansible group -u user1 -k -m command -a 'ls /root' -b
ssh-keygen
ssh-copy-id 192.168.30.101
ansible al -m ping ansible group1 -m ping ansible *roup1 -m ping ansible 'group1:&group2' -m ping ansible 'group1:!group2' -m ping
ansibe all -m ping -vvv 查看执行过程
加载本身的配置文件,例如ansible.cfg
加载本身的模块文件
生成临时的py文件,并复制到远程
给文件加+x权限
执行并返回结果
删除临时的py文件,sleep 0 退出
执行状态:
绿色:执行成功并不须要作改变
黄色:执行成功并作了修改
ansible all -m command -a 'ifconfig'
ansible all -m command -a 'chdir=/data test.sh'
ansible all -m shell -a 'chdir=/data test.sh'
ansible all -m script -a '/root/ansible/host.sh'
ansible all -m copy -a 'src=/root/ansible/file1 dest=/etc/cc/file1 backup=yes mode=0755'
注意:若是在远程机器上执行copy,至关于在远端机器本机执行cp命令,remote_src: true。
对于asible 2.6,只支持copy单个文件,不容许递归copy目录及下面的文件,会抛出以下错误。
对于ansible 2.8 已经支持递归复制。
TASK [cp files below folder4 to bak1] ************************************************************* ok: [localhost] => (item=subfile1) ok: [localhost] => (item=subfile2) failed: [localhost] (item=subfolder1) => {"changed": false, "item": "subfolder1", "msg": "Remote co py does not support recursive copy of directory: /apps/ansible-test/folder4/subfolder1"} to retry, use: --limit @/apps/ansible-test/test-cp.retry PLAY RECAP **************************************************************************************** localhost : ok=3 changed=1 unreachable=0 failed=1
ansible all -m fetch -a 'src=/var/log/message des=/data/'
ansible all -m shell -a 'tar -zcvf log.tar.gz /var/log/*.log'
ansible all -m file -a 'name=/data/file1.txt status=touch'
ansible all -m shell -a 'ls -l /data'
ansible all -m file -a 'name=/data/file1.txt status=absent'
ansible all -m file -a 'name=/data/file1 status=directory'
ansible all -m file -a 'name=/data/file1 status=absent'
ansible all -m file -a 'src=/etc/fstab dest=/data/fatab.link status=link'
ansible all -m file -a 'dest=/data/fatab.link status=absent'
ansible ip1 -m hostname -a 'name=node1'
ansible all -m cron -a 'minute=* weekday=1,3,5 job="/usr/bin/wall warning" name=warning'
ansible all -m cron -a 'disabled=true job="/usr/bin/wall warning" name=warning'
ansible all -m cron -a 'disabled=false job="/usr/bin/wall warning" name=warning'
ansible all -m cron -a ' job="/usr/bin/wall warning" name=warning status=absent'
ansible all -m yum -a 'name=vsftpd,httpd,'
ansible all -m yum -a 'list=installed'
ansible all -m copy 'src=/data/ssss.rpm dest=/root/' ansible all -m yum -a 'name=/root/ssss.rpm'
ansible all -m yum -a 'name=dstat update_cache=yes'
ansible all -m service -a 'name=vsftpd state=started enabled=yes'
ansible all -m user -a 'name=njs shell=/sbin/nologin system=yes home=/var/njs groups=root,bin uid=8888 comment=nginx'
ansible all -m user -a 'name=njs status=absent'
ansible all -m group -a 'name=njs system=yes gid=8080'
ansible all -m group -a 'name=njs status=absend'