目录
- Ansible命令格式
- Ansible常用模块
- Ansible模块如何搜索
- Ansible模块保存位置
一、 Ansible命令格式:
Ansible(比喻为工人) + Servers (目标机器:单个机器或者机器组) + Module names (根据要干的活,选择特定的工具箱) + commands scripts and programming (顺序执行的阐述性,生物行为编程。根据要达到的目的。如何一步一步执行操作命令,有容错,有判断。像是一个简洁的编程块)
例子: ansible labservers -m copy -a 'content="I am smart ansbile! \n" backup=yes dest=/data/name mode=666'
ansible 机器组 copy模块 先准备内容,备份原始文件,覆盖目标文件名,修改目标文件权限。
我们还可以添加 src,md5sum,gid,group,uid,owner,size,state 等等参数。每个命令以“=” 传参数值,如果有的话。每个命令之间以空格来分割。
我们也可以把这些命令按行来写入YAML扩展的PlayBook文件中,作为统一的模板,加快开发,或者运维的效率。
例如:
copy:
src: /srv/myfiles/foo.conf
dest: /etc/foo.conf
owner: foo
group: foo
mode: '0644'
二、Ansible常用模块:
Ansible 根据不同的操作对象,利用Python语言的健壮性和可扩展性,衍生出了很多功能模块。不但支持常规的系统操作,而且对流行的云环境也在无缝衔接。
cloud 公有云,虚拟化等。
commands 常用命令
database mysql,mssql,pq,mongodb,proxysql,influxdb,postgresql.
identity cyberark,ipa,keycloak,onepassword,opendj.
inventory 主机列表维护:添加主机,主机分组等。类似Windows的RDG文件。
monitoring 各种监控,通过各种设备或者系统日志,监控系统健康,部署上线,系统通信等等。
network 各种网络设备,网络终端:交换机,路由器,防火墙,LB设备等。
packaging 按编程语言和系统类型分两种。编程语言:pip,npm,yarn,pear,maven_artifact,gem,bower等;系统:yum,rpm,slackpkg,apk,dnf等。
remote_management 远程管理:ipmi,redfish,stacki,ucs,onwview,manageiq,lxca,intersight,imc,hpilo,foreman,dellemc,cpm,cobbler.
storage 按存储分:emc,glusterfs,hpe3par,ibm,infinidat,netapp,purestorage,vexata,zfs.
utilities
windows Windows系统管理:有域,用户,权限,网络,存储,日志,功能等等相关的操作管理。一个Py文件,对应一个powershell转换的文件。
clustering 集群管理:k8s,openshift,pacemake_cluster,znode,etcd3,consul.
crypto 加密管理:acme,entrust,openssh,openssl,luks_device,get_certificate.
files 文件管理:acl,archive,assemble,blockinfile,copy,fetch,file,find,ini_file,iso_extract,lineinfile,patch,read_csv,replace,state,synchronize,tempfile,template,unarchive,xattr,xml.
messaging rabbitmq 消息队列
net_tools 网络管理:get_url,uri,slurp,cloudflare_dns,dnsimple,dnsmadeeasy,haproxy,ip_netns,netbox,nios,nmcli,snmp_facts.
notification 通知:邮件,短消息,会话等。
source_control 版本控制:git,gitlab,hg,subversion,bzr,bitbucket.
system 系统管理:aix_devices,authorized_key,dconf,getent,java_keystore,make, openwrt_init,puppet, sefcontext, setup,timezone,
aix_filesystem,awall,debconf,group, kernel_blacklist,mksysb, osx_defaults,selinux_permissive,solaris_zone,ufw,aix_inittab,beadm,facter, hostname,known_hosts,modprobe,pamd, _python_requirements_facts,selinux,svc,user,
aix_lvg,capabilities,filesystem,listen_ports_facts,mount,pam_limits,python_requirements_info,selogin,sysctl, vdo,aix_lvol, cron, firewalld,interfaces_file,locale_gen, nosh, parted, reboot, seport, syspatch, xfconf,
alternatives,cronvar,gather_facts,iptables,lvg,ohai, pids, runit,service_facts,systemd,xfs_quota,at, crypttab, gconftool2,java_cert, lvol, open_iscsi,ping, seboolean,service,sysvinit
web_infrastructure 互联网架构类型管理:ansible,django,gunicorn,jenkins,nginx,rundeck,apache,deploy,ejabberd,htpasswd,jboss,jira,sophos,taiga.
三、Ansible模块如何搜索
Ansible支持的模块很多,支持的命令很多。不能一一记得明白,所以,可以通过以下命令查询,参考。迅速上手命令使用的方法。
列出所有的Ansible模块: ansible-doc -l
查看指定模块的说明文档: ansible-doc mysql_db
搜索指定模块中的某一个特定功能关键字: ansible-doc mysql_db | grep login
四、Ansible模块保存位置
根据不同的操作系统,不同的Python系统版本,Ansible程序安装的模式不同,其模块保存的路径也不尽相同。但是我们可以根据在查询模块命令使用的时候找到模块默认的安装路径。
例如: [root@ansible modules]# ansible-doc get_url
> GET_URL (/usr/lib/python3.6/site-packages/ansible/modules/net_tools/basics/get_url.py)
我们可以看到,此系统的Python版本是3.6, 安装路径在“/usr/lib/python3.6/site-packages/ansible/modules” 目录下。