Ansible学习——组件之Ad-Hoc day5

Ad-Hoc

ad hoc 临时的,在ansible中是指需要快速执行,并且不需要保存的命令。其实就是执行简单的命令——一条命令。对于复杂的命令则为 playbook。

列出ansible支持的模块:

ansible-doc命令:
获取模块列表,及模块使用格式;
-l:获取列表
-s module_name:获取指定模块的使用信息

[root@master ~]# ansible-doc -l
[root@master ~]# ansible-doc yum
[root@master ~]# ansible-doc -s yum
执行命令

-m shell
-f 2 指定定要使用的并行进程数,默认为5个。
[root@master ~]# grep forks /etc/ansible/ansible.cfg

forks = 5

[root@master ~]# ansible all -m shell -a 'hostname' -o -f 3
192.168.2.37 | SUCCESS | rc=0 | (stdout) galera4
web1 | SUCCESS | rc=0 | (stdout) web1
web2 | SUCCESS | rc=0 | (stdout) web2
web3 | SUCCESS | rc=0 | (stdout) web3
复制文件

-m copy

ansible all -m copy -a 'src=/etc/hosts dest=/etc/hosts owner=root group=root mode=644 backup=yes' -o

backup=yes
被控制节点上如果有文件,则会先备份再拷贝:
[root@web1 ~]# cat /etc/hosts.25856.2018-02-04@14:15:43~

src=/etc/hosts //指定的是ansible机器上的文件

用户管理

用户管理
-m user

添加用户:

    [root@master ~]# echo '123' | openssl passwd -1 -stdin
    $1$hXe3alXf$4VGhWAbRGA6tm4NMJznSf1
    [root@master ~]# ansible web1 -m user -a 'name=liudehua password="$1$hXe3alXf$4VGhWAbRGA6tm4NMJznSf1"' -o

使用变量需要用双引:

    [root@master ~]# pass=`echo '1' | openssl passwd -1 -stdin`
    [root@master ~]# ansible web1 -m user -a "name=liudehua password=$pass" -o

使用命令替换需要用双引:

    [root@master ~]# ansible web1 -m user -a "name=liudehua password=`echo '1234' | openssl passwd -1 -stdin`" -o

删除用户:

[root@master ~]# ansible web1 -m user -a "name=liudehua state=absent" -o
软件包管理

-m yum
删除软件:

    [root@master ~]# ansible web1 -m yum  -a 'name=httpd state=removed'

安装软件:

[root@master ~]# ansible web1 -m yum  -a 'name=httpd state=latest'
服务管理

-m service

[root@master ~]# ansible webservers -m service -a 'name=httpd state=started enabled=yes' -f 3 -o

你可能感兴趣的:(Ansible学习——组件之Ad-Hoc day5)