ansible

一、ansible 离线安装

二、ansible yum 安装

1、配置yum源
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache

yum list | grep ansible

ansible --version

rpm -ql ansible # 查看软件的安装存放路径

1、 连接远程主机认证

ssh 密码认证
[webservers]
192.168.1.61:22 ansible_ssh_user=root ansible_ssh_pass=‘1’
192.168.1.62:22 ansible_ssh_user=root ansible_ssh_pass=‘1’
[web]
192.168.1.21 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=‘1’
192.168.1.22 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=‘1’

ssh 秘钥认证
[webservers]
10.206.240.111:22 ansible_ssh_user=root ansible_ssh_key=/root/.ssh/id_rsa
10.206.240.112:22 ansible_ssh_user=root

也可以ansible.cfg在配置文件中指定:
[defaults]
private_key_file = /root/.ssh/id_rsa # 默认路径

2、常用选项

选项 描述
-C, --check 运行检查,不执行任何操作
-e EXTRA_VARS,–extra-vars=EXTRA_VARS 设置附加变量 key=value
-u REMOTE_USER, --user=REMOTE_USER SSH连接用户,默认None
-k, --ask-pass SSH连接用户密码
-b, --become 提权,默认root
-K, --ask-become-pass 提权密码

3、命令行使用

ansible all -m ping
ansible all -m shell -a “ls /root” -u root -k
ansible webservers -m copy –a “src=/etc/hosts dest=/tmp/hosts”
ansible webservers -m shell -a “ls /root ;touch /tmp/a.txt ;ls /tmp”
ansible webservers -m copy -a “src=/etc/hosts dest=/tmp/hosts”
ansible webservers -m shell -a "ls -la /tmp/hosts "
ansible webservers -m shell -a "cat /tmp/hosts "

4、模块查看

查看模块
ansible-doc -l

模块帮助信息查看
ansible-doc 模块名称
例如: ansible-doc file 查看文件的模块的帮助信息
输入EXAMPLES 查看示例

5、模块使用

command 模块

思考:command 和shell模块的区别
最大区别是command 是不能使用管道符

copy模块

ansible webservers -m copy -a “src=/etc/hosts dest=/tmp/hosts”
ansible webservers -m shell -a "ls -la /tmp/hosts "
ansible webservers -m shell -a "cat /tmp/hosts "
ansible webservers -m copy -a “src=/etc/hosts dest=/etc/hosts mode=644”
ansible webservers -m copy -a “src=/root/test/hosts dest=/tmp/hosts backup=yes”

  • 这个backup规则,是有命名规则的

1、使用copy模块进行对yum源配置进行同步
ansible web -m copy -a “src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/ owner=root group=root mode=0644 backup=yes”

2、往一个文件里写入内容
ansible web -m copy -a ‘content=“king.123” dest=/etc/rsync.pass owner=root group=root mode=0644 backup=yes’

3、验证sudo是否正确

systemd 模块

1、关闭防火墙 firewalld
ansible web -m systemd -a ‘name=firewalld state=stopped enabled=no’
2、启动防火墙firewalld
ansible web -m systemd -a ‘name=firewalld state=started enabled=yes’

file模块

1、创建目录
ansible web -m file -a ‘path=/data owner=root group=root mode=‘0644’ recurse=yes’
2、创建文件
ansible web -m file -a 'path=/data/boot state=touch owner=root group=root mode=‘0755’ ’

group 和 user 模块

1、创建组
ansible web -m group -a ‘name=www gid=666 state=present’
2、删除组
ansible web -m group -a ‘name=www gid=666 state=absent’

3、创建一个系统组
ansible web -m group -a ‘name=mysq

你可能感兴趣的:(运维自动化,ansible)